From d5f920e9b9c4044007dd2d60a87a0da2de87f000 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Fri, 24 May 2024 11:45:32 -0300 Subject: [PATCH] Address issues of first design review less round buttons, fixed outline buttons, fixed dialogs --- .../briar/android/activity/BriarActivity.java | 6 ++++-- .../briar/android/blog/BlogFragment.java | 7 ++++--- .../blog/RssFeedDeleteFeedDialogFragment.java | 7 ++++--- .../blog/RssFeedImportFailedDialogFragment.java | 7 ++++--- .../add/remote/PendingContactListActivity.java | 4 ++-- .../conversation/ConversationActivity.java | 14 +++++++------- .../briar/android/forum/ForumActivity.java | 5 +++-- .../fragment/ScreenFilterDialogFragment.java | 7 ++++--- .../android/hotspot/AbstractConditionManager.java | 6 ++++-- .../briar/android/login/LoginUtils.java | 6 ++++-- .../briar/android/login/PasswordFragment.java | 7 +++++-- .../android/mailbox/ErrorWizardFragment.java | 6 +++--- .../briar/android/mailbox/MailboxActivity.java | 7 ++++--- .../android/mailbox/MailboxStatusFragment.java | 6 ++++-- .../android/panic/PanicPreferencesFragment.java | 7 ++++--- .../privategroup/conversation/GroupActivity.java | 15 ++++++++------- .../reveal/RevealContactsActivity.java | 6 ++++-- .../settings/ConfirmAvatarDialogFragment.java | 4 ++-- .../briar/android/settings/DisplayFragment.java | 7 ++++--- .../briar/android/util/PermissionUtils.java | 15 ++++++++------- .../briarproject/briar/android/util/UiUtils.java | 4 ++-- .../src/main/res/layout/fragment_contact_list.xml | 3 +-- briar-android/src/main/res/layout/power_view.xml | 4 ++-- briar-android/src/main/res/values/color.xml | 6 ++++-- briar-android/src/main/res/values/styles.xml | 4 +++- briar-android/src/main/res/values/themes.xml | 2 +- 26 files changed, 99 insertions(+), 73 deletions(-) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java index ed349038b..456339ffd 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java @@ -7,6 +7,8 @@ import android.view.Window; import android.widget.CheckBox; import android.widget.Toast; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.android.dontkillmelib.wakelock.AndroidWakeLockManager; import org.briarproject.bramble.api.system.Wakeful; import org.briarproject.briar.R; @@ -177,8 +179,8 @@ public abstract class BriarActivity extends BaseActivity { } protected void showDozeDialog(@StringRes int message) { - AlertDialog.Builder b = - new AlertDialog.Builder(this, R.style.BriarDialogTheme); + MaterialAlertDialogBuilder b = + new MaterialAlertDialogBuilder(this, R.style.BriarDialogTheme); b.setMessage(message); b.setView(R.layout.checkbox); b.setPositiveButton(R.string.fix, diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogFragment.java index d77e847e8..439a59f63 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogFragment.java @@ -10,6 +10,8 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Toast; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.bramble.api.sync.GroupId; import org.briarproject.briar.R; import org.briarproject.briar.android.activity.ActivityComponent; @@ -27,7 +29,6 @@ import javax.inject.Inject; import androidx.annotation.Nullable; import androidx.annotation.UiThread; -import androidx.appcompat.app.AlertDialog; import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView.LayoutManager; @@ -220,8 +221,8 @@ public class BlogFragment extends BaseFragment } private void showDeleteDialog() { - AlertDialog.Builder builder = new AlertDialog.Builder(requireContext(), - R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder( + requireContext(), R.style.BriarDialogTheme); builder.setTitle(getString(R.string.blogs_remove_blog)); builder.setMessage( getString(R.string.blogs_remove_blog_dialog_message)); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/RssFeedDeleteFeedDialogFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/RssFeedDeleteFeedDialogFragment.java index 611ac6f55..b208970d9 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/blog/RssFeedDeleteFeedDialogFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/RssFeedDeleteFeedDialogFragment.java @@ -4,6 +4,8 @@ import android.app.Dialog; import android.content.Context; import android.os.Bundle; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.bramble.api.sync.GroupId; import org.briarproject.briar.R; import org.briarproject.briar.android.activity.BaseActivity; @@ -13,7 +15,6 @@ import org.briarproject.nullsafety.ParametersNotNullByDefault; import javax.inject.Inject; import androidx.annotation.Nullable; -import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.DialogFragment; import androidx.lifecycle.ViewModelProvider; @@ -51,8 +52,8 @@ public class RssFeedDeleteFeedDialogFragment extends DialogFragment { public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { GroupId groupId = new GroupId( requireNonNull(requireArguments().getByteArray(GROUP_ID))); - AlertDialog.Builder builder = new AlertDialog.Builder(requireActivity(), - R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder( + requireActivity(), R.style.BriarDialogTheme); builder.setTitle(getString(R.string.blogs_rss_remove_feed)); builder.setMessage( getString(R.string.blogs_rss_remove_feed_dialog_message)); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/RssFeedImportFailedDialogFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/RssFeedImportFailedDialogFragment.java index a8f44f3d0..4b08c8ec4 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/blog/RssFeedImportFailedDialogFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/RssFeedImportFailedDialogFragment.java @@ -4,6 +4,8 @@ import android.app.Dialog; import android.content.Context; import android.os.Bundle; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.briar.R; import org.briarproject.briar.android.activity.BaseActivity; import org.briarproject.nullsafety.MethodsNotNullByDefault; @@ -12,7 +14,6 @@ import org.briarproject.nullsafety.ParametersNotNullByDefault; import javax.inject.Inject; import androidx.annotation.Nullable; -import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.DialogFragment; import androidx.lifecycle.ViewModelProvider; @@ -47,8 +48,8 @@ public class RssFeedImportFailedDialogFragment extends DialogFragment { @Override public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { - AlertDialog.Builder builder = - new AlertDialog.Builder(requireActivity(), + MaterialAlertDialogBuilder builder = + new MaterialAlertDialogBuilder(requireActivity(), R.style.BriarDialogTheme); builder.setMessage(R.string.blogs_rss_feeds_import_error); builder.setNegativeButton(R.string.cancel, null); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/PendingContactListActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/PendingContactListActivity.java index 2918935b9..87fd666fe 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/PendingContactListActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/PendingContactListActivity.java @@ -4,6 +4,7 @@ import android.content.DialogInterface.OnClickListener; import android.os.Bundle; import android.view.MenuItem; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.snackbar.Snackbar; import org.briarproject.bramble.api.contact.PendingContactId; @@ -21,7 +22,6 @@ import javax.annotation.Nullable; import javax.inject.Inject; import androidx.appcompat.app.ActionBar; -import androidx.appcompat.app.AlertDialog; import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.LinearLayoutManager; @@ -110,7 +110,7 @@ public class PendingContactListActivity extends BriarActivity // show warning dialog OnClickListener removeListener = (dialog, which) -> removePendingContact(item.getPendingContact().getId()); - AlertDialog.Builder builder = new AlertDialog.Builder( + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder( PendingContactListActivity.this, R.style.BriarDialogTheme); builder.setTitle( getString(R.string.dialog_title_remove_pending_contact)); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java index e0bbc3150..ad763eda9 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java @@ -19,6 +19,7 @@ import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.snackbar.Snackbar; import org.briarproject.bramble.api.FeatureFlags; @@ -101,7 +102,6 @@ import javax.inject.Inject; import androidx.activity.result.ActivityResultLauncher; import androidx.annotation.Nullable; import androidx.annotation.UiThread; -import androidx.appcompat.app.AlertDialog; import androidx.appcompat.widget.ActionMenuView; import androidx.appcompat.widget.Toolbar; import androidx.core.app.ActivityCompat; @@ -812,8 +812,8 @@ public class ConversationActivity extends BriarActivity } private void askToDeleteAllMessages() { - AlertDialog.Builder builder = - new AlertDialog.Builder(this, R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = + new MaterialAlertDialogBuilder(this, R.style.BriarDialogTheme); builder.setTitle(getString(R.string.dialog_title_delete_all_messages)); builder.setMessage( getString(R.string.dialog_message_delete_all_messages)); @@ -892,8 +892,8 @@ public class ConversationActivity extends BriarActivity } String msg = join(fails, "\n\n"); // show dialog - AlertDialog.Builder builder = - new AlertDialog.Builder(this, R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = + new MaterialAlertDialogBuilder(this, R.style.BriarDialogTheme); builder.setTitle( getString(R.string.dialog_title_not_all_messages_deleted)); builder.setMessage(msg); @@ -904,8 +904,8 @@ public class ConversationActivity extends BriarActivity private void askToRemoveContact() { DialogInterface.OnClickListener okListener = (dialog, which) -> removeContact(); - AlertDialog.Builder builder = - new AlertDialog.Builder(ConversationActivity.this, + MaterialAlertDialogBuilder builder = + new MaterialAlertDialogBuilder(ConversationActivity.this, R.style.BriarDialogTheme); builder.setTitle(getString(R.string.dialog_title_delete_contact)); builder.setMessage( diff --git a/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumActivity.java index 364d730b1..c601696f4 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumActivity.java @@ -7,6 +7,8 @@ import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.briar.R; import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.sharing.ForumSharingStatusActivity; @@ -20,7 +22,6 @@ import org.briarproject.nullsafety.ParametersNotNullByDefault; import javax.annotation.Nullable; import javax.inject.Inject; -import androidx.appcompat.app.AlertDialog; import androidx.appcompat.widget.Toolbar; import androidx.lifecycle.ViewModelProvider; @@ -128,7 +129,7 @@ public class ForumActivity extends private void showUnsubscribeDialog() { OnClickListener okListener = (dialog, which) -> viewModel.deleteForum(); - AlertDialog.Builder builder = new AlertDialog.Builder(this, + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this, R.style.BriarDialogTheme); builder.setTitle(getString(R.string.dialog_title_leave_forum)); builder.setMessage(getString(R.string.dialog_message_leave_forum)); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/fragment/ScreenFilterDialogFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/fragment/ScreenFilterDialogFragment.java index 2e2ed6bf2..8091b5a61 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/fragment/ScreenFilterDialogFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/fragment/ScreenFilterDialogFragment.java @@ -13,6 +13,8 @@ import android.view.View; import android.widget.CheckBox; import android.widget.TextView; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.briar.R; import org.briarproject.briar.android.activity.BaseActivity; import org.briarproject.briar.api.android.ScreenFilterMonitor; @@ -27,7 +29,6 @@ import java.util.Collection; import javax.annotation.Nullable; import javax.inject.Inject; -import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.DialogFragment; import static android.os.Build.VERSION.SDK_INT; @@ -75,8 +76,8 @@ public class ScreenFilterDialogFragment extends DialogFragment { public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { Activity activity = getActivity(); if (activity == null) throw new IllegalStateException(); - AlertDialog.Builder builder = new AlertDialog.Builder(activity, - R.style.BriarDialogThemeNoFilter); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder( + activity, R.style.BriarDialogThemeNoFilter); builder.setTitle(R.string.screen_filter_title); Bundle args = getArguments(); if (args == null) throw new IllegalStateException(); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/hotspot/AbstractConditionManager.java b/briar-android/src/main/java/org/briarproject/briar/android/hotspot/AbstractConditionManager.java index 435a486a8..06b6dd60d 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/hotspot/AbstractConditionManager.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/hotspot/AbstractConditionManager.java @@ -6,12 +6,13 @@ import android.content.Intent; import android.net.wifi.WifiManager; import android.widget.Toast; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.briar.R; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.StringRes; -import androidx.appcompat.app.AlertDialog; import androidx.core.util.Consumer; import androidx.fragment.app.FragmentActivity; @@ -73,7 +74,8 @@ abstract class AbstractConditionManager { void showRationale(Context ctx, @StringRes int title, @StringRes int body, Runnable onContinueClicked, Runnable onDismiss) { - AlertDialog.Builder builder = new AlertDialog.Builder(ctx); + MaterialAlertDialogBuilder builder = + new MaterialAlertDialogBuilder(ctx); builder.setTitle(title); builder.setMessage(body); builder.setNeutralButton(R.string.continue_button, diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/LoginUtils.java b/briar-android/src/main/java/org/briarproject/briar/android/login/LoginUtils.java index fe706bc84..048656bcc 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/login/LoginUtils.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/login/LoginUtils.java @@ -2,6 +2,8 @@ package org.briarproject.briar.android.login; import android.content.Context; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.briar.R; import org.briarproject.nullsafety.NotNullByDefault; @@ -13,8 +15,8 @@ import static org.briarproject.briar.android.util.UiUtils.getDialogIcon; class LoginUtils { static AlertDialog createKeyStrengthenerErrorDialog(Context ctx) { - AlertDialog.Builder builder = - new AlertDialog.Builder(ctx, R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = + new MaterialAlertDialogBuilder(ctx, R.style.BriarDialogTheme); builder.setIcon(getDialogIcon(ctx, R.drawable.alerts_and_states_error)); builder.setTitle(R.string.dialog_title_cannot_check_password); builder.setMessage(R.string.dialog_message_cannot_check_password); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordFragment.java index ceab9ce6d..5376cd996 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordFragment.java @@ -9,6 +9,7 @@ import android.view.ViewGroup; import android.widget.Button; import android.widget.ProgressBar; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.textfield.TextInputEditText; import com.google.android.material.textfield.TextInputLayout; @@ -154,9 +155,11 @@ public class PasswordFragment extends BaseFragment implements TextWatcher { } private void onForgottenPasswordClick() { - AlertDialog.Builder builder = new AlertDialog.Builder(requireContext(), - R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder( + requireContext(), R.style.BriarDialogTheme); builder.setTitle(R.string.dialog_title_lost_password); + builder.setBackgroundInsetStart(25); + builder.setBackgroundInsetEnd(25); builder.setMessage(R.string.dialog_message_lost_password); builder.setPositiveButton(R.string.cancel, null); builder.setNegativeButton(R.string.delete, diff --git a/briar-android/src/main/java/org/briarproject/briar/android/mailbox/ErrorWizardFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/mailbox/ErrorWizardFragment.java index c0f789fb2..11f06fd7c 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/mailbox/ErrorWizardFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/mailbox/ErrorWizardFragment.java @@ -11,6 +11,7 @@ import android.widget.RadioGroup; import android.widget.ScrollView; import com.google.android.material.animation.ArgbEvaluatorCompat; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import org.briarproject.briar.R; import org.briarproject.briar.android.view.BriarButton; @@ -24,7 +25,6 @@ import javax.inject.Inject; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import androidx.lifecycle.ViewModelProvider; @@ -148,8 +148,8 @@ public class ErrorWizardFragment extends Fragment { } private void onUnlinkButtonClicked(View v) { - AlertDialog.Builder builder = new AlertDialog.Builder(requireContext(), - R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder( + requireContext(), R.style.BriarDialogTheme); builder.setTitle(R.string.mailbox_status_unlink_dialog_title); builder.setMessage(R.string.mailbox_status_unlink_dialog_question); builder.setPositiveButton(R.string.cancel, diff --git a/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxActivity.java index 2ca96f426..5eb000f36 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxActivity.java @@ -5,6 +5,8 @@ import android.view.MenuItem; import android.widget.ProgressBar; import android.widget.Toast; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.bramble.api.mailbox.MailboxPairingState; import org.briarproject.bramble.api.mailbox.MailboxPairingState.ConnectionError; import org.briarproject.bramble.api.mailbox.MailboxPairingState.InvalidQrCode; @@ -31,7 +33,6 @@ import org.briarproject.nullsafety.ParametersNotNullByDefault; import javax.inject.Inject; import androidx.annotation.Nullable; -import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.lifecycle.ViewModelProvider; @@ -249,8 +250,8 @@ public class MailboxActivity extends BriarActivity { if (tellUserToWipeMailbox) { showFragment(getSupportFragmentManager(), new BlankFragment(), BlankFragment.TAG); - AlertDialog.Builder builder = - new AlertDialog.Builder(this, R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder( + this, R.style.BriarDialogTheme); builder.setTitle(R.string.mailbox_status_unlink_no_wipe_title); builder.setMessage(R.string.mailbox_status_unlink_no_wipe_message); builder.setNeutralButton(R.string.got_it, diff --git a/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxStatusFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxStatusFragment.java index 86510c4e8..278d06311 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxStatusFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxStatusFragment.java @@ -13,6 +13,8 @@ import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.bramble.api.mailbox.MailboxStatus; import org.briarproject.briar.R; import org.briarproject.briar.android.view.BriarButton; @@ -214,8 +216,8 @@ public class MailboxStatusFragment extends Fragment { } private void onUnlinkButtonClicked(boolean showWarning) { - AlertDialog.Builder builder = new AlertDialog.Builder(requireContext(), - R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder( + requireContext(), R.style.BriarDialogTheme); builder.setTitle(R.string.mailbox_status_unlink_dialog_title); String msg = getString(R.string.mailbox_status_unlink_dialog_question); if (showWarning) { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicPreferencesFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicPreferencesFragment.java index dde17a075..0a02f9b81 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicPreferencesFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicPreferencesFragment.java @@ -10,6 +10,8 @@ import android.net.Uri; import android.os.Bundle; import android.text.TextUtils; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.briar.R; import java.util.ArrayList; @@ -17,7 +19,6 @@ import java.util.logging.Logger; import javax.annotation.Nullable; -import androidx.appcompat.app.AlertDialog; import androidx.preference.ListPreference; import androidx.preference.PreferenceFragmentCompat; import androidx.preference.SwitchPreferenceCompat; @@ -201,8 +202,8 @@ public class PanicPreferencesFragment extends PreferenceFragmentCompat getActivity().finish(); }; - AlertDialog.Builder builder = new AlertDialog.Builder(getContext(), - R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder( + requireContext(), R.style.BriarDialogTheme); builder.setTitle(getString(R.string.dialog_title_connect_panic_app)); CharSequence app = getString(R.string.unknown_app); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java index 44742c5c7..23269b21c 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java @@ -6,6 +6,8 @@ import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.briar.R; import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.privategroup.creation.GroupInviteActivity; @@ -20,7 +22,6 @@ import org.briarproject.nullsafety.ParametersNotNullByDefault; import javax.annotation.Nullable; import javax.inject.Inject; -import androidx.appcompat.app.AlertDialog; import androidx.appcompat.widget.Toolbar; import androidx.lifecycle.ViewModelProvider; @@ -178,8 +179,8 @@ public class GroupActivity extends } private void showLeaveGroupDialog() { - AlertDialog.Builder builder = - new AlertDialog.Builder(this, R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder( + this, R.style.BriarDialogTheme); builder.setTitle(getString(R.string.groups_leave_dialog_title)); builder.setMessage(getString(R.string.groups_leave_dialog_message)); builder.setNegativeButton(R.string.dialog_button_leave, @@ -189,8 +190,8 @@ public class GroupActivity extends } private void showDissolveGroupDialog() { - AlertDialog.Builder builder = - new AlertDialog.Builder(this, R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder( + this, R.style.BriarDialogTheme); builder.setTitle(getString(R.string.groups_dissolve_dialog_title)); builder.setMessage(getString(R.string.groups_dissolve_dialog_message)); builder.setNegativeButton(R.string.groups_dissolve_button, @@ -206,8 +207,8 @@ public class GroupActivity extends } private void onGroupDissolved() { - AlertDialog.Builder builder = - new AlertDialog.Builder(this, R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder( + this, R.style.BriarDialogTheme); builder.setTitle(getString(R.string.groups_dissolved_dialog_title)); builder.setMessage(getString(R.string.groups_dissolved_dialog_message)); builder.setNeutralButton(R.string.ok, null); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/reveal/RevealContactsActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/reveal/RevealContactsActivity.java index 201eaba17..f163add4f 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/reveal/RevealContactsActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/reveal/RevealContactsActivity.java @@ -9,6 +9,8 @@ import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.bramble.api.contact.ContactId; import org.briarproject.bramble.api.db.DbException; import org.briarproject.bramble.api.sync.GroupId; @@ -26,7 +28,6 @@ import javax.annotation.Nullable; import javax.inject.Inject; import androidx.annotation.LayoutRes; -import androidx.appcompat.app.AlertDialog; @MethodsNotNullByDefault @ParametersNotNullByDefault @@ -105,7 +106,8 @@ public class RevealContactsActivity extends ContactSelectorActivity } private void showOnboardingDialog() { - new AlertDialog.Builder(this, R.style.OnboardingDialogTheme) + new MaterialAlertDialogBuilder(this, + R.style.OnboardingDialogTheme) .setMessage(getString(R.string.groups_reveal_dialog_message)) .setNeutralButton(R.string.got_it, (dialog, which) -> dialog.cancel()) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/settings/ConfirmAvatarDialogFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/settings/ConfirmAvatarDialogFragment.java index 72775dd20..452b862e8 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/settings/ConfirmAvatarDialogFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/settings/ConfirmAvatarDialogFragment.java @@ -10,6 +10,7 @@ import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.load.engine.DiskCacheStrategy; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import org.briarproject.briar.R; import org.briarproject.briar.android.activity.BaseActivity; @@ -20,7 +21,6 @@ import org.briarproject.nullsafety.ParametersNotNullByDefault; import javax.inject.Inject; import androidx.annotation.Nullable; -import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.DialogFragment; import androidx.fragment.app.FragmentActivity; import androidx.lifecycle.ViewModelProvider; @@ -86,7 +86,7 @@ public class ConfirmAvatarDialogFragment extends DialogFragment { ); int theme = R.style.BriarDialogTheme; - return new AlertDialog.Builder(activity, theme) + return new MaterialAlertDialogBuilder(activity, theme) .setView(view) .setTitle(R.string.dialog_confirm_profile_picture_title) .setNegativeButton(R.string.cancel, null) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/settings/DisplayFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/settings/DisplayFragment.java index 119a407c0..40aba199d 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/settings/DisplayFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/settings/DisplayFragment.java @@ -1,9 +1,10 @@ package org.briarproject.briar.android.settings; -import android.app.AlertDialog; import android.content.Intent; import android.os.Bundle; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.briar.R; import org.briarproject.briar.android.Localizer; import org.briarproject.briar.android.util.UiUtils; @@ -101,8 +102,8 @@ public class DisplayFragment extends PreferenceFragmentCompat { private boolean onLanguageChanged(Preference preference, Object newValue) { ListPreference language = (ListPreference) preference; if (!language.getValue().equals(newValue)) { - AlertDialog.Builder builder = - new AlertDialog.Builder(getActivity()); + MaterialAlertDialogBuilder builder = + new MaterialAlertDialogBuilder(requireContext()); builder.setTitle(R.string.pref_language_title); builder.setMessage(R.string.pref_language_changed); builder.setPositiveButton(R.string.sign_out_button, (d, i) -> { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/util/PermissionUtils.java b/briar-android/src/main/java/org/briarproject/briar/android/util/PermissionUtils.java index d1c6432a8..51c33ea94 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/util/PermissionUtils.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/util/PermissionUtils.java @@ -6,6 +6,8 @@ import android.content.Intent; import android.location.LocationManager; import android.net.Uri; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.briar.R; import org.briarproject.nullsafety.MethodsNotNullByDefault; import org.briarproject.nullsafety.ParametersNotNullByDefault; @@ -16,7 +18,6 @@ import androidx.activity.result.ActivityResultLauncher; import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; import androidx.annotation.StringRes; -import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.FragmentActivity; import static android.Manifest.permission.BLUETOOTH_ADVERTISE; @@ -108,8 +109,8 @@ public class PermissionUtils { } public static void showLocationDialog(Context ctx, boolean forBluetooth) { - AlertDialog.Builder builder = - new AlertDialog.Builder(ctx, R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = + new MaterialAlertDialogBuilder(ctx, R.style.BriarDialogTheme); builder.setTitle(R.string.permission_location_setting_title); if (forBluetooth) { builder.setMessage(R.string.permission_location_setting_body); @@ -136,8 +137,8 @@ public class PermissionUtils { public static void showDenialDialog(FragmentActivity ctx, @StringRes int title, @StringRes int body, Runnable onDenied) { - AlertDialog.Builder builder = - new AlertDialog.Builder(ctx, R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = + new MaterialAlertDialogBuilder(ctx, R.style.BriarDialogTheme); builder.setTitle(title); builder.setMessage(body); builder.setPositiveButton(R.string.ok, getGoToSettingsListener(ctx)); @@ -148,8 +149,8 @@ public class PermissionUtils { public static void showRationale(FragmentActivity ctx, @StringRes int title, @StringRes int body, @Nullable Runnable onOk) { - AlertDialog.Builder builder = - new AlertDialog.Builder(ctx, R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = + new MaterialAlertDialogBuilder(ctx, R.style.BriarDialogTheme); builder.setTitle(title); builder.setMessage(body); builder.setNeutralButton(R.string.continue_button, (dialog, which) -> { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/util/UiUtils.java b/briar-android/src/main/java/org/briarproject/briar/android/util/UiUtils.java index 19b92a574..a601feeac 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/util/UiUtils.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/util/UiUtils.java @@ -28,6 +28,7 @@ import android.view.inputmethod.InputMethodManager; import android.widget.TextView; import android.widget.Toast; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.textfield.TextInputLayout; import org.briarproject.bramble.api.contact.Contact; @@ -52,7 +53,6 @@ import androidx.annotation.ColorRes; import androidx.annotation.DrawableRes; import androidx.annotation.Nullable; import androidx.annotation.UiThread; -import androidx.appcompat.app.AlertDialog; import androidx.core.content.ContextCompat; import androidx.core.hardware.fingerprint.FingerprintManagerCompat; import androidx.core.text.HtmlCompat; @@ -322,7 +322,7 @@ public class UiUtils { } public static void showOnboardingDialog(Context ctx, String text) { - new AlertDialog.Builder(ctx, R.style.OnboardingDialogTheme) + new MaterialAlertDialogBuilder(ctx, R.style.OnboardingDialogTheme) .setMessage(text) .setNeutralButton(R.string.got_it, (dialog, which) -> dialog.cancel()) diff --git a/briar-android/src/main/res/layout/fragment_contact_list.xml b/briar-android/src/main/res/layout/fragment_contact_list.xml index d4575794b..b1a01ae7f 100644 --- a/briar-android/src/main/res/layout/fragment_contact_list.xml +++ b/briar-android/src/main/res/layout/fragment_contact_list.xml @@ -18,8 +18,7 @@ app:fab_fabDrawable="@drawable/ic_action_add" app:fab_fabRippleColor="@android:color/transparent" app:fab_menu="@menu/contact_list_actions" - app:fab_miniFabTextBackground="@color/briar_accent" - app:fab_miniFabTextColor="@android:color/white" + app:fab_miniFabTextBackground="?attr/colorPrimary" app:layout_anchorGravity="bottom|right|end" app:layout_behavior="org.briarproject.briar.android.view.SnackbarAwareBehavior" /> diff --git a/briar-android/src/main/res/layout/power_view.xml b/briar-android/src/main/res/layout/power_view.xml index 693070293..4170dbd08 100644 --- a/briar-android/src/main/res/layout/power_view.xml +++ b/briar-android/src/main/res/layout/power_view.xml @@ -36,7 +36,7 @@