Merge branch '2400-outline-buttons' into 'master'

Use outlined button style

Closes #2400

See merge request briar/briar!1746
This commit is contained in:
akwizgran
2022-12-07 16:54:34 +00:00
15 changed files with 210 additions and 128 deletions

View File

@@ -16,13 +16,12 @@ import org.briarproject.nullsafety.ParametersNotNullByDefault;
import javax.inject.Inject;
import androidx.annotation.Nullable;
import androidx.core.widget.NestedScrollView;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.lifecycle.ViewModelProvider;
import static android.view.View.FOCUS_DOWN;
import static org.briarproject.briar.android.AppModule.getAndroidComponent;
import static org.briarproject.briar.android.util.UiUtils.hideViewOnSmallScreen;
@MethodsNotNullByDefault
@ParametersNotNullByDefault
@@ -35,8 +34,6 @@ public class OfflineFragment extends Fragment {
protected MailboxViewModel viewModel;
private NestedScrollView scrollView;
@Override
public void onAttach(Context context) {
super.onAttach(context);
@@ -54,7 +51,6 @@ public class OfflineFragment extends Fragment {
View v = inflater
.inflate(R.layout.fragment_offline, container, false);
scrollView = (NestedScrollView) v;
Button checkButton = v.findViewById(R.id.checkButton);
checkButton.setOnClickListener(view -> {
Intent i = new Intent(requireContext(), TransportsActivity.class);
@@ -69,8 +65,7 @@ public class OfflineFragment extends Fragment {
@Override
public void onStart() {
super.onStart();
// Scroll down in case the screen is small, so the button is visible
scrollView.post(() -> scrollView.fullScroll(FOCUS_DOWN));
hideViewOnSmallScreen(requireView().findViewById(R.id.iconView));
}
protected void onTryAgainClicked() {

View File

@@ -0,0 +1,7 @@
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?attr/colorControlHighlight">
<item
android:id="@android:id/mask"
android:drawable="@drawable/button_outline_mask" />
<item android:drawable="@drawable/button_outline_background" />
</ripple>

View File

@@ -0,0 +1,19 @@
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetLeft="4dp"
android:insetTop="6dp"
android:insetRight="4dp"
android:insetBottom="6dp">
<shape
android:shape="rectangle">
<corners android:radius="2dp" />
<solid android:color="@android:color/transparent" />
<stroke
android:width="1dp"
android:color="@color/briar_button_outline" />
<padding
android:bottom="4dp"
android:left="8dp"
android:right="8dp"
android:top="4dp" />
</shape>
</inset>

View File

@@ -0,0 +1,19 @@
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetLeft="4dp"
android:insetTop="6dp"
android:insetRight="4dp"
android:insetBottom="6dp">
<shape
android:shape="rectangle">
<corners android:radius="2dp" />
<solid android:color="@android:color/white" />
<stroke
android:width="1dp"
android:color="@android:color/white" />
<padding
android:bottom="4dp"
android:left="8dp"
android:right="8dp"
android:top="4dp" />
</shape>
</inset>

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:bottom="6dp"
android:left="4dp"
android:right="4dp"
android:top="6dp">
<shape android:shape="rectangle">
<corners android:radius="2dp" />
<solid android:color="@android:color/transparent" />
<stroke
android:width="1dp"
android:color="@color/briar_button_outline" />
</shape>
</item>
</layer-list>

View File

@@ -56,9 +56,7 @@
<Button
android:id="@+id/feedbackButton"
style="@style/BriarButtonFlat.Positive"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/BriarButtonOutline.Neutral"
android:layout_marginTop="16dp"
android:text="@string/send_feedback"
app:layout_constraintEnd_toEndOf="parent"

View File

@@ -30,9 +30,7 @@
<Button
android:id="@+id/fallbackButton"
style="@style/BriarButtonFlat.Positive"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/BriarButtonOutline.Neutral"
android:layout_marginTop="16dp"
android:text="@string/hotspot_help_fallback_button"
app:layout_constraintEnd_toEndOf="parent"

View File

@@ -62,13 +62,12 @@
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="6dp"
android:layout_marginBottom="1dp"
android:gravity="center"
android:text="@string/hotspot_no_peers_connected"
app:layout_constraintTop_toBottomOf="@+id/coordinatorLayout"
app:layout_constraintBottom_toTopOf="@+id/connectedButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/coordinatorLayout" />
<Button
android:id="@+id/connectedButton"
@@ -76,8 +75,8 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="1dp"
android:layout_marginBottom="1dp"
android:layout_marginTop="6dp"
android:drawablePadding="8dp"
android:text="@string/hotspot_button_connected"
app:drawableLeftCompat="@drawable/ic_check_white"
app:drawableStartCompat="@drawable/ic_check_white"
@@ -85,16 +84,16 @@
app:layout_constraintBottom_toTopOf="@+id/stopButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/connectedView"
tools:visibility="visible" />
<Button
android:id="@+id/stopButton"
style="@style/BriarButtonFlat.Negative"
android:layout_width="wrap_content"
style="@style/BriarButtonOutline.Negative"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="6dp"
android:layout_marginBottom="2dp"
android:drawablePadding="8dp"
android:text="@string/hotspot_button_stop_sharing"
app:drawableLeftCompat="@drawable/ic_portable_wifi_off"
@@ -103,6 +102,7 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/connectedButton"
tools:visibility="visible" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -79,10 +79,11 @@
<org.briarproject.briar.android.view.BriarButton
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
app:buttonStyle="@style/BriarButtonFlat.Negative"
android:layout_marginHorizontal="16dp"
app:buttonStyle="@style/BriarButtonOutline.Negative"
app:text="@string/mailbox_status_unlink_button" />
</LinearLayout>

View File

@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
tools:context=".android.mailbox.MailboxActivity">
@@ -75,10 +75,11 @@
<org.briarproject.briar.android.view.BriarButton
android:id="@+id/button1_1_1"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
app:buttonStyle="@style/BriarButtonFlat.Negative"
android:layout_marginHorizontal="16dp"
app:buttonStyle="@style/BriarButtonOutline.Negative"
app:text="@string/mailbox_status_unlink_button" />
</LinearLayout>
@@ -100,10 +101,11 @@
<org.briarproject.briar.android.view.BriarButton
android:id="@+id/button1_1_2"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
app:buttonStyle="@style/BriarButtonFlat.Negative"
android:layout_marginHorizontal="16dp"
app:buttonStyle="@style/BriarButtonOutline.Negative"
app:text="@string/mailbox_status_unlink_button" />
</LinearLayout>
@@ -125,10 +127,11 @@
<org.briarproject.briar.android.view.BriarButton
android:id="@+id/button1_1_3"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
app:buttonStyle="@style/BriarButtonFlat.Positive"
android:layout_marginHorizontal="16dp"
app:buttonStyle="@style/BriarButtonOutline.Positive"
app:text="@string/mailbox_status_check_button" />
</LinearLayout>

View File

@@ -32,7 +32,8 @@
android:id="@+id/statusTitleView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="16dp"
android:gravity="center"
android:textAppearance="@style/TextAppearance.MaterialComponents.Headline6"
app:layout_constrainedWidth="true"
@@ -47,62 +48,65 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_marginBottom="16dp"
android:layout_marginTop="16dp"
android:gravity="center"
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
android:visibility="gone"
app:layout_constrainedWidth="true"
app:layout_constraintBottom_toTopOf="@+id/checkButton"
app:layout_constraintBottom_toTopOf="@+id/statusInfoView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/statusTitleView"
tools:text="@string/mailbox_status_mailbox_too_old_message"
tools:visibility="visible" />
<org.briarproject.briar.android.view.BriarButton
android:id="@+id/checkButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
app:buttonStyle="@style/BriarButtonFlat.Neutral"
app:layout_constraintBottom_toTopOf="@+id/statusInfoView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/statusMessageView"
app:text="@string/mailbox_status_check_button" />
<TextView
android:id="@+id/statusInfoView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="16dp"
android:gravity="center"
app:layout_constraintBottom_toTopOf="@+id/unlinkButton"
app:layout_constraintBottom_toTopOf="@+id/checkButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/checkButton"
app:layout_constraintTop_toBottomOf="@+id/statusMessageView"
tools:text="@string/mailbox_status_connected_info" />
<org.briarproject.briar.android.view.BriarButton
android:id="@+id/checkButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="16dp"
app:buttonStyle="@style/BriarButtonOutline.Neutral"
app:layout_constraintBottom_toTopOf="@+id/wizardButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/statusInfoView"
app:text="@string/mailbox_status_check_button" />
<Button
android:id="@+id/wizardButton"
style="@style/BriarButtonFlat.Positive"
android:layout_width="wrap_content"
style="@style/BriarButtonOutline.Neutral"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="6dp"
android:text="@string/mailbox_error_wizard_button"
android:visibility="gone"
app:drawableTint="@color/briar_button_text_positive"
app:layout_constraintBottom_toTopOf="@+id/unlinkButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/statusInfoView"
app:layout_constraintTop_toBottomOf="@+id/checkButton"
app:layout_constraintVertical_bias="0.0"
tools:visibility="visible" />
<Button
android:id="@+id/unlinkButton"
style="@style/BriarButtonFlat.Negative"
android:layout_width="wrap_content"
style="@style/BriarButtonOutline.Negative"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:text="@string/mailbox_status_unlink_button"

View File

@@ -1,81 +1,82 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
android:orientation="vertical">
<androidx.constraintlayout.widget.ConstraintLayout
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="0dp"
android:layout_weight="1">
<ImageView
android:id="@+id/iconView"
android:layout_width="@dimen/hero_square"
android:layout_height="@dimen/hero_square"
android:layout_marginHorizontal="@dimen/margin_xlarge"
android:layout_marginTop="@dimen/margin_xlarge"
app:layout_constraintBottom_toTopOf="@+id/titleView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.25"
app:layout_constraintVertical_chainStyle="packed"
app:srcCompat="@drawable/transport_tor"
app:tint="@color/briar_red_500"
tools:ignore="ContentDescription" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/titleView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/margin_xlarge"
android:layout_marginTop="@dimen/margin_xlarge"
android:gravity="center"
android:text="@string/offline"
android:textAppearance="@style/TextAppearance.MaterialComponents.Headline5"
app:layout_constraintBottom_toTopOf="@+id/textView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/iconView" />
<ImageView
android:id="@+id/iconView"
android:layout_width="@dimen/hero_square"
android:layout_height="@dimen/hero_square"
android:layout_marginHorizontal="@dimen/margin_xlarge"
android:layout_marginTop="@dimen/margin_xlarge"
app:layout_constraintBottom_toTopOf="@+id/titleView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.25"
app:layout_constraintVertical_chainStyle="packed"
app:srcCompat="@drawable/transport_tor"
app:tint="@color/briar_red_500"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/textView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/margin_xlarge"
android:layout_marginTop="@dimen/margin_xlarge"
android:layout_marginBottom="@dimen/margin_large"
android:text="@string/tor_offline_description"
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
app:layout_constraintBottom_toTopOf="@+id/checkButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/titleView" />
<TextView
android:id="@+id/titleView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/margin_xlarge"
android:layout_marginTop="@dimen/margin_xlarge"
android:gravity="center"
android:text="@string/offline"
android:textAppearance="@style/TextAppearance.MaterialComponents.Headline5"
app:layout_constraintBottom_toTopOf="@+id/textView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/iconView" />
<Button
android:id="@+id/checkButton"
style="@style/BriarButtonFlat.Neutral"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_large"
android:text="@string/tor_offline_button_check"
app:layout_constraintBottom_toTopOf="@+id/button"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/textView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_large"
android:layout_marginHorizontal="@dimen/margin_xlarge"
android:text="@string/tor_offline_description"
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/titleView" />
<Button
android:id="@+id/button"
style="@style/BriarButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_large"
android:text="@string/try_again_button"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
</androidx.core.widget.NestedScrollView>
<Button
android:id="@+id/checkButton"
style="@style/BriarButtonOutline.Neutral"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:text="@string/tor_offline_button_check" />
<Button
android:id="@+id/button"
style="@style/BriarButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="6dp"
android:text="@string/try_again_button" />
</LinearLayout>

View File

@@ -80,6 +80,7 @@
<color name="briar_button_text_neutral">@color/briar_night_500</color>
<color name="briar_button_text_negative">@color/briar_red_500</color>
<color name="briar_button_text_disabled">#28000000</color>
<color name="briar_button_outline">@android:color/secondary_text_dark</color>
<color name="thread_indicator">@color/briar_gray_500</color>
<color name="thread_item_background">@color/window_background</color>

View File

@@ -74,5 +74,4 @@
<dimen name="blogs_avatar_comment_size">20dp</dimen>
<dimen name="text_input_height">42dp</dimen>
</resources>

View File

@@ -44,19 +44,20 @@
<item name="android:textColor">@color/button_text</item>
</style>
<style name="BriarButtonFlat.Negative" parent="Widget.AppCompat.Button.Borderless">
<style name="BriarButtonFlat" parent="Widget.AppCompat.Button.Borderless">
<item name="android:textSize">@dimen/text_size_medium</item>
</style>
<style name="BriarButtonFlat.Negative" parent="BriarButtonFlat">
<item name="android:textColor">@color/briar_button_text_negative</item>
<item name="android:textSize">@dimen/text_size_medium</item>
</style>
<style name="BriarButtonFlat.Positive" parent="Widget.AppCompat.Button.Borderless">
<style name="BriarButtonFlat.Positive" parent="BriarButtonFlat">
<item name="android:textColor">@color/briar_button_text_positive</item>
<item name="android:textSize">@dimen/text_size_medium</item>
</style>
<style name="BriarButtonFlat.Neutral" parent="Widget.AppCompat.Button.Borderless">
<style name="BriarButtonFlat.Neutral" parent="BriarButtonFlat">
<item name="android:textColor">@color/briar_button_text_neutral</item>
<item name="android:textSize">@dimen/text_size_medium</item>
</style>
<style name="BriarButtonFlat.Positive.Tiny" parent="BriarButtonFlat.Positive">
@@ -65,6 +66,26 @@
<item name="android:minWidth">@dimen/button_size</item>
</style>
<style name="BriarButtonOutline" parent="Widget.AppCompat.Button.Borderless">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textSize">@dimen/text_size_medium</item>
<item name="android:background">@drawable/button_outline</item>
<item name="android:padding">@dimen/margin_large</item>
</style>
<style name="BriarButtonOutline.Negative" parent="BriarButtonOutline">
<item name="android:textColor">@color/briar_button_text_negative</item>
</style>
<style name="BriarButtonOutline.Positive" parent="BriarButtonOutline">
<item name="android:textColor">@color/briar_button_text_positive</item>
</style>
<style name="BriarButtonOutline.Neutral" parent="BriarButtonOutline">
<item name="android:textColor">@color/briar_button_text_neutral</item>
</style>
<style name="Divider">
<item name="android:background">@color/divider</item>
</style>