From 7ea9fc0c3bf4584cb9e4669c755148df7fb5fafb Mon Sep 17 00:00:00 2001 From: Nicholas Tinsley Date: Thu, 25 May 2023 18:17:37 -0400 Subject: [PATCH] Update AlertDialogs to MaterialAlertDialogs. Addresses #12949. --- .../securesms/DeviceProvisioningActivity.java | 4 ++- .../securesms/GroupMembersDialog.java | 4 ++- .../securesms/InviteActivity.java | 4 ++- .../PlayServicesProblemFragment.java | 3 ++- .../securesms/backup/BackupDialog.java | 2 +- .../webrtc/CallParticipantView.java | 5 ++-- ...OffContactJoinedNotificationsActivity.java | 22 ++++++++-------- .../conversation/ConversationItem.java | 2 +- .../delete/DeleteAccountFragment.java | 6 ++--- .../DeviceTransferFragment.java | 23 +++++++++-------- .../DeviceTransferSetupFragment.java | 25 ++++++++++--------- .../securesms/groups/ui/GroupLimitDialog.java | 7 +++--- .../InviteRevokeConfirmationDialog.java | 6 +++-- .../dialogs/GroupInviteSentDialog.java | 4 ++- .../dialogs/GroupMentionSettingDialog.java | 5 ++-- .../dialogs/GroupRightsDialog.java | 4 ++- .../GroupsV1MigrationSuggestionsDialog.java | 6 +++-- .../InsightsDashboardDialogFragment.java | 4 +-- .../logsubmit/SubmitDebugLogActivity.java | 24 ++++++++++-------- .../megaphone/ClientDeprecatedActivity.java | 4 +-- .../payments/CanNotSendPaymentDialog.java | 4 ++- .../backup/PaymentsRecoveryPasteFragment.java | 4 ++- .../PaymentsRecoveryPhraseFragment.java | 6 ++--- .../confirm/ConfirmPaymentFragment.java | 2 +- .../preferences/PaymentsHomeFragment.java | 2 +- .../transfer/PaymentsTransferFragment.java | 9 ++++--- .../viewholder/InfoCardViewHolder.java | 5 ++-- .../securesms/pin/PinOptOutDialog.java | 6 +++-- .../pin/PinRestoreEntryFragment.java | 11 ++++---- .../AdvancedPinPreferenceFragment.java | 5 ++-- .../spoofing/ReviewCardDialogFragment.java | 5 ++-- .../fragments/RestoreBackupFragment.java | 9 ++++--- .../securesms/sharing/MultiShareDialogs.java | 7 +++--- .../securesms/util/FragmentDialogs.kt | 4 +-- .../util/views/SimpleProgressDialog.java | 4 ++- .../devicetransfer/app/MainActivity.java | 14 ++++++----- 36 files changed, 151 insertions(+), 110 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/DeviceProvisioningActivity.java b/app/src/main/java/org/thoughtcrime/securesms/DeviceProvisioningActivity.java index 8b76ca114e..a4de055d79 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/DeviceProvisioningActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/DeviceProvisioningActivity.java @@ -6,6 +6,8 @@ import android.view.Window; import androidx.appcompat.app.AlertDialog; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.signal.core.util.logging.Log; public class DeviceProvisioningActivity extends PassphraseRequiredActivity { @@ -20,7 +22,7 @@ public class DeviceProvisioningActivity extends PassphraseRequiredActivity { @Override protected void onCreate(Bundle bundle, boolean ready) { - AlertDialog dialog = new AlertDialog.Builder(this) + AlertDialog dialog = new MaterialAlertDialogBuilder(this) .setTitle(getString(R.string.DeviceProvisioningActivity_link_a_signal_device)) .setMessage(getString(R.string.DeviceProvisioningActivity_it_looks_like_youre_trying_to_link_a_signal_device_using_a_3rd_party_scanner)) .setPositiveButton(R.string.DeviceProvisioningActivity_continue, (dialog1, which) -> { diff --git a/app/src/main/java/org/thoughtcrime/securesms/GroupMembersDialog.java b/app/src/main/java/org/thoughtcrime/securesms/GroupMembersDialog.java index 10ce21803a..bd42e63ff3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/GroupMembersDialog.java +++ b/app/src/main/java/org/thoughtcrime/securesms/GroupMembersDialog.java @@ -5,6 +5,8 @@ import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.FragmentActivity; import androidx.lifecycle.LiveData; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.thoughtcrime.securesms.groups.LiveGroup; import org.thoughtcrime.securesms.groups.ui.GroupMemberEntry; import org.thoughtcrime.securesms.groups.ui.GroupMemberListView; @@ -26,7 +28,7 @@ public final class GroupMembersDialog { } public void display() { - AlertDialog dialog = new AlertDialog.Builder(fragmentActivity) + AlertDialog dialog = new MaterialAlertDialogBuilder(fragmentActivity) .setTitle(R.string.ConversationActivity_group_members) .setIcon(R.drawable.ic_group_24) .setCancelable(true) diff --git a/app/src/main/java/org/thoughtcrime/securesms/InviteActivity.java b/app/src/main/java/org/thoughtcrime/securesms/InviteActivity.java index 28f3fb541d..0d310ad11b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/InviteActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/InviteActivity.java @@ -21,6 +21,8 @@ import androidx.appcompat.app.AlertDialog; import androidx.appcompat.widget.Toolbar; import androidx.interpolator.view.animation.FastOutSlowInInterpolator; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.thoughtcrime.securesms.components.ContactFilterView; import org.thoughtcrime.securesms.components.ContactFilterView.OnFilterChangedListener; import org.thoughtcrime.securesms.contacts.ContactSelectionDisplayMode; @@ -217,7 +219,7 @@ public class InviteActivity extends PassphraseRequiredActivity implements Contac private class SmsSendClickListener implements OnClickListener { @Override public void onClick(View v) { - new AlertDialog.Builder(InviteActivity.this) + new MaterialAlertDialogBuilder(InviteActivity.this) .setTitle(getResources().getQuantityString(R.plurals.InviteActivity_send_sms_invites, contactsFragment.getSelectedContacts().size(), contactsFragment.getSelectedContacts().size())) diff --git a/app/src/main/java/org/thoughtcrime/securesms/PlayServicesProblemFragment.java b/app/src/main/java/org/thoughtcrime/securesms/PlayServicesProblemFragment.java index 9864872fc1..bffa76f3ac 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/PlayServicesProblemFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/PlayServicesProblemFragment.java @@ -28,6 +28,7 @@ import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.DialogFragment; import com.google.android.gms.common.GoogleApiAvailability; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; public class PlayServicesProblemFragment extends DialogFragment { @@ -37,7 +38,7 @@ public class PlayServicesProblemFragment extends DialogFragment { Dialog dialog = GoogleApiAvailability.getInstance().getErrorDialog(getActivity(), code, 9111); if (dialog == null) { - return new AlertDialog.Builder(requireActivity()) + return new MaterialAlertDialogBuilder(requireActivity()) .setNegativeButton(android.R.string.ok, null) .setMessage(R.string.PlayServicesProblemFragment_the_version_of_google_play_services_you_have_installed_is_not_functioning) .create(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/BackupDialog.java b/app/src/main/java/org/thoughtcrime/securesms/backup/BackupDialog.java index ab426e0e49..bcd2778ab7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/BackupDialog.java +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/BackupDialog.java @@ -45,7 +45,7 @@ public class BackupDialog { @NonNull Runnable onBackupsEnabled) { String[] password = BackupUtil.generateBackupPassphrase(); - AlertDialog dialog = new AlertDialog.Builder(context) + AlertDialog dialog = new MaterialAlertDialogBuilder(context) .setTitle(R.string.BackupDialog_enable_local_backups) .setView(backupDirectorySelectionIntent != null ? R.layout.backup_enable_dialog_v29 : R.layout.backup_enable_dialog) .setPositiveButton(R.string.BackupDialog_enable_backups, null) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/CallParticipantView.java b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/CallParticipantView.java index a911f640af..f5a6ed3384 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/CallParticipantView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/CallParticipantView.java @@ -18,6 +18,7 @@ import androidx.core.widget.ImageViewCompat; import androidx.transition.TransitionManager; import com.bumptech.glide.load.engine.DiskCacheStrategy; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import org.signal.core.util.ThreadUtil; import org.thoughtcrime.securesms.R; @@ -272,7 +273,7 @@ public class CallParticipantView extends ConstraintLayout { } private void showBlockedDialog(@NonNull Recipient recipient) { - new AlertDialog.Builder(getContext()) + new MaterialAlertDialogBuilder(getContext()) .setTitle(getContext().getString(R.string.CallParticipantView__s_is_blocked, recipient.getShortDisplayName(getContext()))) .setMessage(R.string.CallParticipantView__you_wont_receive_their_audio_or_video) .setPositiveButton(android.R.string.ok, null) @@ -280,7 +281,7 @@ public class CallParticipantView extends ConstraintLayout { } private void showNoMediaKeysDialog(@NonNull Recipient recipient) { - new AlertDialog.Builder(getContext()) + new MaterialAlertDialogBuilder(getContext()) .setTitle(getContext().getString(R.string.CallParticipantView__cant_receive_audio_and_video_from_s, recipient.getShortDisplayName(getContext()))) .setMessage(R.string.CallParticipantView__this_may_be_Because_they_have_not_verified_your_safety_number_change) .setPositiveButton(android.R.string.ok, null) diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/TurnOffContactJoinedNotificationsActivity.java b/app/src/main/java/org/thoughtcrime/securesms/contacts/TurnOffContactJoinedNotificationsActivity.java index 0b2dbf7d33..4367966386 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/TurnOffContactJoinedNotificationsActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/TurnOffContactJoinedNotificationsActivity.java @@ -8,6 +8,8 @@ import android.content.Intent; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.database.MessageTable; import org.thoughtcrime.securesms.database.SignalDatabase; @@ -38,16 +40,16 @@ public class TurnOffContactJoinedNotificationsActivity extends AppCompatActivity protected void onResume() { super.onResume(); - new AlertDialog.Builder(this) - .setMessage(R.string.TurnOffContactJoinedNotificationsActivity__turn_off_contact_joined_signal) - .setPositiveButton(android.R.string.ok, (dialog, which) -> { - handlePositiveAction(dialog); - }) - .setNegativeButton(android.R.string.cancel, ((dialog, which) -> { - dialog.dismiss(); - finish(); - })) - .show(); + new MaterialAlertDialogBuilder(this) + .setMessage(R.string.TurnOffContactJoinedNotificationsActivity__turn_off_contact_joined_signal) + .setPositiveButton(android.R.string.ok, (dialog, which) -> { + handlePositiveAction(dialog); + }) + .setNegativeButton(android.R.string.cancel, ((dialog, which) -> { + dialog.dismiss(); + finish(); + })) + .show(); } private void handlePositiveAction(@NonNull DialogInterface dialog) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java index e00c19e46b..30a2fe2d13 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java @@ -2608,7 +2608,7 @@ public final class ConversationItem extends RelativeLayout implements BindableCo message = R.string.ConversationItem_click_to_approve_unencrypted_dialog_message; - AlertDialog.Builder builder = new AlertDialog.Builder(context); + AlertDialog.Builder builder = new MaterialAlertDialogBuilder(context); builder.setTitle(title); if (message > -1) builder.setMessage(message); diff --git a/app/src/main/java/org/thoughtcrime/securesms/delete/DeleteAccountFragment.java b/app/src/main/java/org/thoughtcrime/securesms/delete/DeleteAccountFragment.java index 52d1e72081..c04a2c3214 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/delete/DeleteAccountFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/delete/DeleteAccountFragment.java @@ -230,14 +230,14 @@ public class DeleteAccountFragment extends Fragment { Snackbar.make(requireView(), R.string.DeleteAccountFragment__no_number, Snackbar.LENGTH_SHORT).show(); break; case NOT_A_MATCH: - new AlertDialog.Builder(requireContext()) + new MaterialAlertDialogBuilder(requireContext()) .setMessage(R.string.DeleteAccountFragment__the_phone_number) .setPositiveButton(android.R.string.ok, (dialog, which) -> dialog.dismiss()) .setCancelable(true) .show(); break; case CONFIRM_DELETION: - new AlertDialog.Builder(requireContext()) + new MaterialAlertDialogBuilder(requireContext()) .setTitle(R.string.DeleteAccountFragment__are_you_sure) .setMessage(R.string.DeleteAccountFragment__this_will_delete_your_signal_account) .setNegativeButton(android.R.string.cancel, (dialog, which) -> dialog.dismiss()) @@ -289,7 +289,7 @@ public class DeleteAccountFragment extends Fragment { } private void showLocalDataDeletionFailedDialog() { - new AlertDialog.Builder(requireContext()) + new MaterialAlertDialogBuilder(requireContext()) .setMessage(R.string.DeleteAccountFragment__failed_to_delete_local_data) .setPositiveButton(R.string.DeleteAccountFragment__launch_app_settings, (dialog, which) -> { Intent settingsIntent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); diff --git a/app/src/main/java/org/thoughtcrime/securesms/devicetransfer/DeviceTransferFragment.java b/app/src/main/java/org/thoughtcrime/securesms/devicetransfer/DeviceTransferFragment.java index aee1d4a149..ee9e22e84e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/devicetransfer/DeviceTransferFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/devicetransfer/DeviceTransferFragment.java @@ -9,7 +9,8 @@ import androidx.activity.OnBackPressedCallback; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.StringRes; -import androidx.appcompat.app.AlertDialog; + +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; @@ -98,16 +99,16 @@ public abstract class DeviceTransferFragment extends LoggingFragment { } private void cancelActiveTransfer() { - new AlertDialog.Builder(requireContext()).setTitle(R.string.DeviceTransfer__stop_transfer) - .setMessage(R.string.DeviceTransfer__all_transfer_progress_will_be_lost) - .setPositiveButton(R.string.DeviceTransfer__stop_transfer, (d, w) -> { - EventBus.getDefault().unregister(transferModeListener); - DeviceToDeviceTransferService.stop(requireContext()); - EventBus.getDefault().removeStickyEvent(TransferStatus.class); - navigateAwayFromTransfer(); - }) - .setNegativeButton(android.R.string.cancel, null) - .show(); + new MaterialAlertDialogBuilder(requireContext()).setTitle(R.string.DeviceTransfer__stop_transfer) + .setMessage(R.string.DeviceTransfer__all_transfer_progress_will_be_lost) + .setPositiveButton(R.string.DeviceTransfer__stop_transfer, (d, w) -> { + EventBus.getDefault().unregister(transferModeListener); + DeviceToDeviceTransferService.stop(requireContext()); + EventBus.getDefault().removeStickyEvent(TransferStatus.class); + navigateAwayFromTransfer(); + }) + .setNegativeButton(android.R.string.cancel, null) + .show(); } protected void ignoreTransferStatusEvents() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/devicetransfer/DeviceTransferSetupFragment.java b/app/src/main/java/org/thoughtcrime/securesms/devicetransfer/DeviceTransferSetupFragment.java index 2b7a8358e8..ba9cd3f1c2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/devicetransfer/DeviceTransferSetupFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/devicetransfer/DeviceTransferSetupFragment.java @@ -23,6 +23,7 @@ import androidx.lifecycle.ViewModelProvider; import androidx.navigation.fragment.NavHostFragment; import com.google.android.material.button.MaterialButton; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; @@ -151,17 +152,17 @@ public abstract class DeviceTransferSetupFragment extends LoggingFragment { sasNumber.setText(String.format(Locale.US, "%07d", state.getAuthenticationCode())); //noinspection CodeBlock2Expr verifyNo.setOnClickListener(v -> { - new AlertDialog.Builder(requireContext()).setTitle(R.string.DeviceTransferSetup__the_numbers_do_not_match) - .setMessage(R.string.DeviceTransferSetup__if_the_numbers_on_your_devices_do_not_match_its_possible_you_connected_to_the_wrong_device) - .setPositiveButton(R.string.DeviceTransferSetup__stop_transfer, (d, w) -> { - EventBus.getDefault().unregister(this); - DeviceToDeviceTransferService.setAuthenticationCodeVerified(requireContext(), false); - DeviceToDeviceTransferService.stop(requireContext()); - EventBus.getDefault().removeStickyEvent(TransferStatus.class); - navigateAwayFromTransfer(); - }) - .setNegativeButton(android.R.string.cancel, null) - .show(); + new MaterialAlertDialogBuilder(requireContext()).setTitle(R.string.DeviceTransferSetup__the_numbers_do_not_match) + .setMessage(R.string.DeviceTransferSetup__if_the_numbers_on_your_devices_do_not_match_its_possible_you_connected_to_the_wrong_device) + .setPositiveButton(R.string.DeviceTransferSetup__stop_transfer, (d, w) -> { + EventBus.getDefault().unregister(this); + DeviceToDeviceTransferService.setAuthenticationCodeVerified(requireContext(), false); + DeviceToDeviceTransferService.stop(requireContext()); + EventBus.getDefault().removeStickyEvent(TransferStatus.class); + navigateAwayFromTransfer(); + }) + .setNegativeButton(android.R.string.cancel, null) + .show(); }); verifyYes.setOnClickListener(v -> { DeviceToDeviceTransferService.setAuthenticationCodeVerified(requireContext(), true); @@ -211,7 +212,7 @@ public abstract class DeviceTransferSetupFragment extends LoggingFragment { errorResolve.setOnClickListener(v -> viewModel.checkPermissions()); DeviceToDeviceTransferService.stop(requireContext()); cancelTakingTooLong(); - new AlertDialog.Builder(requireContext()).setTitle(R.string.DeviceTransferSetup__error_connecting) + new MaterialAlertDialogBuilder(requireContext()).setTitle(R.string.DeviceTransferSetup__error_connecting) .setMessage(getStatusTextForStep(step, false)) .setPositiveButton(R.string.DeviceTransferSetup__retry, (d, w) -> viewModel.checkPermissions()) .setNegativeButton(android.R.string.cancel, (d, w) -> { diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/GroupLimitDialog.java b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/GroupLimitDialog.java index 35f06b5893..add3f708ea 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/GroupLimitDialog.java +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/GroupLimitDialog.java @@ -3,7 +3,8 @@ package org.thoughtcrime.securesms.groups.ui; import android.content.Context; import androidx.annotation.NonNull; -import androidx.appcompat.app.AlertDialog; + +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.util.FeatureFlags; @@ -11,7 +12,7 @@ import org.thoughtcrime.securesms.util.FeatureFlags; public final class GroupLimitDialog { public static void showHardLimitMessage(@NonNull Context context) { - new AlertDialog.Builder(context) + new MaterialAlertDialogBuilder(context) .setTitle(R.string.ContactSelectionListFragment_maximum_group_size_reached) .setMessage(context.getString(R.string.ContactSelectionListFragment_signal_groups_can_have_a_maximum_of_d_members, FeatureFlags.groupLimits().getHardLimit())) .setPositiveButton(android.R.string.ok, null) @@ -19,7 +20,7 @@ public final class GroupLimitDialog { } public static void showRecommendedLimitMessage(@NonNull Context context) { - new AlertDialog.Builder(context) + new MaterialAlertDialogBuilder(context) .setTitle(R.string.ContactSelectionListFragment_recommended_member_limit_reached) .setMessage(context.getString(R.string.ContactSelectionListFragment_signal_groups_perform_best_with_d_members_or_fewer, FeatureFlags.groupLimits().getRecommendedLimit())) .setPositiveButton(android.R.string.ok, null) diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/invitesandrequests/invited/InviteRevokeConfirmationDialog.java b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/invitesandrequests/invited/InviteRevokeConfirmationDialog.java index c219af073c..758e40a5cf 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/invitesandrequests/invited/InviteRevokeConfirmationDialog.java +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/invitesandrequests/invited/InviteRevokeConfirmationDialog.java @@ -5,6 +5,8 @@ import android.content.Context; import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.recipients.Recipient; @@ -20,7 +22,7 @@ final class InviteRevokeConfirmationDialog { @NonNull Recipient invitee, @NonNull Runnable onRevoke) { - return new AlertDialog.Builder(context) + return new MaterialAlertDialogBuilder(context) .setMessage(context.getString(R.string.InviteRevokeConfirmationDialog_revoke_own_single_invite, invitee.getDisplayName(context))) .setPositiveButton(R.string.yes, (dialog, which) -> onRevoke.run()) @@ -36,7 +38,7 @@ final class InviteRevokeConfirmationDialog { int numberOfInvitations, @NonNull Runnable onRevoke) { - return new AlertDialog.Builder(context) + return new MaterialAlertDialogBuilder(context) .setMessage(context.getResources().getQuantityString(R.plurals.InviteRevokeConfirmationDialog_revoke_others_invites, numberOfInvitations, inviter.getDisplayName(context), diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/managegroup/dialogs/GroupInviteSentDialog.java b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/managegroup/dialogs/GroupInviteSentDialog.java index 0fbe188cf2..11914bc7b0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/managegroup/dialogs/GroupInviteSentDialog.java +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/managegroup/dialogs/GroupInviteSentDialog.java @@ -8,6 +8,8 @@ import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.lifecycle.LifecycleOwner; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.groups.ui.GroupMemberEntry; import org.thoughtcrime.securesms.groups.ui.GroupMemberListView; @@ -27,7 +29,7 @@ public final class GroupInviteSentDialog { return null; } - AlertDialog.Builder builder = new AlertDialog.Builder(context) + AlertDialog.Builder builder = new MaterialAlertDialogBuilder(context) .setTitle(context.getResources().getQuantityString(R.plurals.GroupManagement_invitation_sent, size, size)) // TODO: GV2 Need a URL for learn more // .setNegativeButton(R.string.GroupManagement_learn_more, (dialog, which) -> { diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/managegroup/dialogs/GroupMentionSettingDialog.java b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/managegroup/dialogs/GroupMentionSettingDialog.java index 650ed604a2..3b4fa92e83 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/managegroup/dialogs/GroupMentionSettingDialog.java +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/managegroup/dialogs/GroupMentionSettingDialog.java @@ -9,9 +9,10 @@ import android.widget.CheckedTextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.appcompat.app.AlertDialog; import androidx.core.util.Consumer; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.database.RecipientTable.MentionSetting; @@ -20,7 +21,7 @@ public final class GroupMentionSettingDialog { public static void show(@NonNull Context context, @NonNull MentionSetting mentionSetting, @Nullable Consumer callback) { SelectionCallback selectionCallback = new SelectionCallback(mentionSetting, callback); - new AlertDialog.Builder(context) + new MaterialAlertDialogBuilder(context) .setTitle(R.string.GroupMentionSettingDialog_notify_me_for_mentions) .setView(getView(context, mentionSetting, selectionCallback)) .setPositiveButton(android.R.string.ok, selectionCallback) diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/managegroup/dialogs/GroupRightsDialog.java b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/managegroup/dialogs/GroupRightsDialog.java index d59f3880a0..86881542f9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/managegroup/dialogs/GroupRightsDialog.java +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/managegroup/dialogs/GroupRightsDialog.java @@ -7,6 +7,8 @@ import androidx.annotation.NonNull; import androidx.annotation.StringRes; import androidx.appcompat.app.AlertDialog; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.groups.GroupAccessControl; @@ -23,7 +25,7 @@ public final class GroupRightsDialog { { rights = currentRights; - builder = new AlertDialog.Builder(context) + builder = new MaterialAlertDialogBuilder(context) .setTitle(type.message) .setSingleChoiceItems(type.choices, currentRights.ordinal(), (dialog, which) -> rights = GroupAccessControl.values()[which]) .setNegativeButton(android.R.string.cancel, (dialog, which) -> { diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/migration/GroupsV1MigrationSuggestionsDialog.java b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/migration/GroupsV1MigrationSuggestionsDialog.java index a7fa434502..b88a74e853 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/migration/GroupsV1MigrationSuggestionsDialog.java +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/migration/GroupsV1MigrationSuggestionsDialog.java @@ -7,7 +7,10 @@ import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.FragmentActivity; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.signal.core.util.concurrent.SignalExecutors; +import org.signal.core.util.concurrent.SimpleTask; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.database.SignalDatabase; @@ -21,7 +24,6 @@ import org.thoughtcrime.securesms.groups.MembershipNotSuitableForV2Exception; import org.thoughtcrime.securesms.groups.ui.GroupMemberListView; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientId; -import org.signal.core.util.concurrent.SimpleTask; import org.thoughtcrime.securesms.util.views.SimpleProgressDialog; import java.io.IOException; @@ -56,7 +58,7 @@ public final class GroupsV1MigrationSuggestionsDialog { } private void display() { - AlertDialog dialog = new AlertDialog.Builder(fragmentActivity) + AlertDialog dialog = new MaterialAlertDialogBuilder(fragmentActivity) .setTitle(fragmentActivity.getResources().getQuantityString(R.plurals.GroupsV1MigrationSuggestionsDialog_add_members_question, suggestions.size())) .setMessage(fragmentActivity.getResources().getQuantityString(R.plurals.GroupsV1MigrationSuggestionsDialog_these_members_couldnt_be_automatically_added, suggestions.size())) .setView(R.layout.dialog_group_members) diff --git a/app/src/main/java/org/thoughtcrime/securesms/insights/InsightsDashboardDialogFragment.java b/app/src/main/java/org/thoughtcrime/securesms/insights/InsightsDashboardDialogFragment.java index 2ca2855f67..bcabaeb806 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/insights/InsightsDashboardDialogFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/insights/InsightsDashboardDialogFragment.java @@ -13,13 +13,13 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.appcompat.app.AlertDialog; import androidx.appcompat.widget.Toolbar; import androidx.fragment.app.DialogFragment; import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.RecyclerView; import com.airbnb.lottie.LottieAnimationView; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import org.thoughtcrime.securesms.NewConversationActivity; import org.thoughtcrime.securesms.R; @@ -228,7 +228,7 @@ public final class InsightsDashboardDialogFragment extends DialogFragment { } private void handleInviteRecipient(final @NonNull Recipient recipient) { - new AlertDialog.Builder(requireContext()) + new MaterialAlertDialogBuilder(requireContext()) .setTitle(getResources().getQuantityString(R.plurals.InviteActivity_send_sms_invites, 1, 1)) .setMessage(getString(R.string.InviteActivity_lets_switch_to_signal, getString(R.string.install_url))) .setPositiveButton(R.string.InsightsDashboardFragment__send, (dialog, which) -> viewModel.sendSmsInvite(recipient)) diff --git a/app/src/main/java/org/thoughtcrime/securesms/logsubmit/SubmitDebugLogActivity.java b/app/src/main/java/org/thoughtcrime/securesms/logsubmit/SubmitDebugLogActivity.java index 4ce796bf2c..6cad324969 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/logsubmit/SubmitDebugLogActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/logsubmit/SubmitDebugLogActivity.java @@ -24,6 +24,8 @@ import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.thoughtcrime.securesms.BaseActivity; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.components.ProgressCard; @@ -270,17 +272,17 @@ public class SubmitDebugLogActivity extends BaseActivity implements SubmitDebugL } private void presentResultDialog(@NonNull String url) { - AlertDialog.Builder builder = new AlertDialog.Builder(this) - .setTitle(R.string.SubmitDebugLogActivity_success) - .setCancelable(false) - .setNeutralButton(android.R.string.ok, (d, w) -> finish()) - .setPositiveButton(R.string.SubmitDebugLogActivity_share, (d, w) -> { - ShareCompat.IntentBuilder.from(this) - .setText(url) - .setType("text/plain") - .setEmailTo(new String[] { "support@signal.org" }) - .startChooser(); - }); + AlertDialog.Builder builder = new MaterialAlertDialogBuilder(this) + .setTitle(R.string.SubmitDebugLogActivity_success) + .setCancelable(false) + .setNeutralButton(android.R.string.ok, (d, w) -> finish()) + .setPositiveButton(R.string.SubmitDebugLogActivity_share, (d, w) -> { + ShareCompat.IntentBuilder.from(this) + .setText(url) + .setType("text/plain") + .setEmailTo(new String[] { "support@signal.org" }) + .startChooser(); + }); String dialogText = getResources().getString(R.string.SubmitDebugLogActivity_copy_this_url_and_add_it_to_your_issue, url); SpannableString spannableDialogText = new SpannableString(dialogText); diff --git a/app/src/main/java/org/thoughtcrime/securesms/megaphone/ClientDeprecatedActivity.java b/app/src/main/java/org/thoughtcrime/securesms/megaphone/ClientDeprecatedActivity.java index c6b57088ed..f4f36bd404 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/megaphone/ClientDeprecatedActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/megaphone/ClientDeprecatedActivity.java @@ -2,7 +2,7 @@ package org.thoughtcrime.securesms.megaphone; import android.os.Bundle; -import androidx.appcompat.app.AlertDialog; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import org.signal.core.util.ThreadUtil; import org.thoughtcrime.securesms.PassphraseRequiredActivity; @@ -48,7 +48,7 @@ public class ClientDeprecatedActivity extends PassphraseRequiredActivity { } private void onDontUpdateClicked() { - new AlertDialog.Builder(this) + new MaterialAlertDialogBuilder(this) .setTitle(R.string.ClientDeprecatedActivity_warning) .setMessage(R.string.ClientDeprecatedActivity_your_version_of_signal_has_expired_you_can_view_your_message_history) .setPositiveButton(R.string.ClientDeprecatedActivity_dont_update, (dialog, which) -> { diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/CanNotSendPaymentDialog.java b/app/src/main/java/org/thoughtcrime/securesms/payments/CanNotSendPaymentDialog.java index b79c1a5c4c..58851062c6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/CanNotSendPaymentDialog.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/CanNotSendPaymentDialog.java @@ -6,6 +6,8 @@ import android.content.Context; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.thoughtcrime.securesms.R; /** @@ -22,7 +24,7 @@ public final class CanNotSendPaymentDialog { } public static void show(@NonNull Context context, @Nullable Runnable onSendAMessageClicked) { - AlertDialog.Builder builder = new AlertDialog.Builder(context) + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(context) .setTitle(R.string.CanNotSendPaymentDialog__cant_send_payment) .setMessage(R.string.CanNotSendPaymentDialog__to_send_a_payment_to_this_user); diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/backup/PaymentsRecoveryPasteFragment.java b/app/src/main/java/org/thoughtcrime/securesms/payments/backup/PaymentsRecoveryPasteFragment.java index b466d4306c..b8c1abf60b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/backup/PaymentsRecoveryPasteFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/backup/PaymentsRecoveryPasteFragment.java @@ -11,6 +11,8 @@ import androidx.appcompat.widget.Toolbar; import androidx.fragment.app.Fragment; import androidx.navigation.Navigation; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.util.navigation.SafeNavigation; import org.thoughtcrime.securesms.util.text.AfterTextChanged; @@ -53,7 +55,7 @@ public class PaymentsRecoveryPasteFragment extends Fragment { } private void showErrorDialog() { - new AlertDialog.Builder(requireContext()) + new MaterialAlertDialogBuilder(requireContext()) .setTitle(R.string.PaymentsRecoveryPasteFragment__invalid_recovery_phrase) .setMessage(getString(R.string.PaymentsRecoveryPasteFragment__make_sure, PaymentsConstants.MNEMONIC_LENGTH)) .setPositiveButton(android.R.string.ok, (dialog, which) -> dialog.dismiss()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/backup/phrase/PaymentsRecoveryPhraseFragment.java b/app/src/main/java/org/thoughtcrime/securesms/payments/backup/phrase/PaymentsRecoveryPhraseFragment.java index ff759c8dd7..5a5f734fc0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/backup/phrase/PaymentsRecoveryPhraseFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/backup/phrase/PaymentsRecoveryPhraseFragment.java @@ -1,7 +1,6 @@ package org.thoughtcrime.securesms.payments.backup.phrase; import android.app.AlarmManager; -import android.app.AlertDialog; import android.app.PendingIntent; import android.content.ClipData; import android.content.ClipboardManager; @@ -21,6 +20,7 @@ import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.annimon.stream.Stream; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import org.signal.core.util.PendingIntentFlags; import org.thoughtcrime.securesms.R; @@ -134,7 +134,7 @@ public class PaymentsRecoveryPhraseFragment extends Fragment { } private void confirmCopy(@NonNull List words) { - new AlertDialog.Builder(requireContext()) + new MaterialAlertDialogBuilder(requireContext()) .setTitle(R.string.PaymentsRecoveryPhraseFragment__copy_to_clipboard) .setMessage(R.string.PaymentsRecoveryPhraseFragment__if_you_choose_to_store) .setPositiveButton(R.string.PaymentsRecoveryPhraseFragment__copy, (dialog, which) -> copyWordsToClipboard(words)) @@ -149,7 +149,7 @@ public class PaymentsRecoveryPhraseFragment extends Fragment { Navigation.findNavController(requireView()).popBackStack(R.id.paymentsHome, false); break; case ERROR: - new AlertDialog.Builder(requireContext()) + new MaterialAlertDialogBuilder(requireContext()) .setTitle(R.string.PaymentsRecoveryPhraseFragment__invalid_recovery_phrase) .setMessage(R.string.PaymentsRecoveryPhraseFragment__make_sure_youve_entered_your_phrase_correctly_and_try_again) .setPositiveButton(android.R.string.ok, (dialog, which) -> dialog.dismiss()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/confirm/ConfirmPaymentFragment.java b/app/src/main/java/org/thoughtcrime/securesms/payments/confirm/ConfirmPaymentFragment.java index 8029e91870..8271867dbc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/confirm/ConfirmPaymentFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/confirm/ConfirmPaymentFragment.java @@ -125,7 +125,7 @@ public class ConfirmPaymentFragment extends BottomSheetDialogFragment { RecipientHasNotEnabledPaymentsDialog.show(requireContext()); break; case CAN_NOT_GET_FEE: - new AlertDialog.Builder(requireContext()) + new MaterialAlertDialogBuilder(requireContext()) .setMessage(R.string.ConfirmPaymentFragment__unable_to_request_a_network_fee) .setPositiveButton(android.R.string.ok, (dialog, which) -> { dialog.dismiss(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/PaymentsHomeFragment.java b/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/PaymentsHomeFragment.java index f8b0c1da02..a6059de917 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/PaymentsHomeFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/PaymentsHomeFragment.java @@ -319,7 +319,7 @@ public class PaymentsHomeFragment extends LoggingFragment { } private void showPaymentsDisabledDialog() { - new AlertDialog.Builder(requireActivity()) + new MaterialAlertDialogBuilder(requireActivity()) .setMessage(R.string.PaymentsHomeFragment__payments_not_available) .setPositiveButton(android.R.string.ok, null) .show(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/transfer/PaymentsTransferFragment.java b/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/transfer/PaymentsTransferFragment.java index 7844c5197c..3ead250b21 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/transfer/PaymentsTransferFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/transfer/PaymentsTransferFragment.java @@ -1,7 +1,6 @@ package org.thoughtcrime.securesms.payments.preferences.transfer; import android.Manifest; -import android.app.AlertDialog; import android.os.Bundle; import android.view.View; import android.view.inputmethod.EditorInfo; @@ -15,6 +14,8 @@ import androidx.lifecycle.ViewModelProvider; import androidx.navigation.NavDirections; import androidx.navigation.Navigation; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.LoggingFragment; import org.thoughtcrime.securesms.R; @@ -67,7 +68,7 @@ public final class PaymentsTransferFragment extends LoggingFragment { MobileCoinPublicAddress publicAddress = MobileCoinPublicAddress.fromBase58(base58Address); if (ownAddress.equals(publicAddress)) { - new AlertDialog.Builder(requireContext()) + new MaterialAlertDialogBuilder(requireContext()) .setTitle(R.string.PaymentsTransferFragment__invalid_address) .setMessage(R.string.PaymentsTransferFragment__you_cant_transfer_to_your_own_signal_wallet_address) .setPositiveButton(android.R.string.ok, null) @@ -82,7 +83,7 @@ public final class PaymentsTransferFragment extends LoggingFragment { return true; } catch (MobileCoinPublicAddress.AddressException e) { Log.w(TAG, "Address is not valid", e); - new AlertDialog.Builder(requireContext()) + new MaterialAlertDialogBuilder(requireContext()) .setTitle(R.string.PaymentsTransferFragment__invalid_address) .setMessage(R.string.PaymentsTransferFragment__check_the_wallet_address) .setPositiveButton(android.R.string.ok, null) @@ -103,7 +104,7 @@ public final class PaymentsTransferFragment extends LoggingFragment { } private void onCameraPermissionPermanentlyDenied() { - new AlertDialog.Builder(requireContext()) + new MaterialAlertDialogBuilder(requireContext()) .setTitle(R.string.Permissions_permission_required) .setMessage(R.string.PaymentsTransferFragment__signal_needs_the_camera_permission_to_capture_qr_code_go_to_settings) .setPositiveButton(R.string.PaymentsTransferFragment__settings, (dialog, which) -> requireActivity().startActivity(Permissions.getApplicationSettingsIntent(requireContext()))) diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/viewholder/InfoCardViewHolder.java b/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/viewholder/InfoCardViewHolder.java index 48533e0833..fa99952639 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/viewholder/InfoCardViewHolder.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/viewholder/InfoCardViewHolder.java @@ -1,6 +1,5 @@ package org.thoughtcrime.securesms.payments.preferences.viewholder; -import android.app.AlertDialog; import android.text.SpannableString; import android.text.Spanned; import android.text.TextPaint; @@ -15,6 +14,8 @@ import androidx.annotation.NonNull; import androidx.appcompat.content.res.AppCompatResources; import androidx.appcompat.widget.Toolbar; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.payments.preferences.PaymentsHomeAdapter; import org.thoughtcrime.securesms.payments.preferences.model.InfoCard; @@ -50,7 +51,7 @@ public class InfoCardViewHolder extends MappingViewHolder { toolbar.inflateMenu(R.menu.payment_info_card_overflow); toolbar.setOnMenuItemClickListener(item -> { if (item.getItemId() == R.id.action_hide) { - new AlertDialog.Builder(getContext()) + new MaterialAlertDialogBuilder(getContext()) .setMessage(R.string.payment_info_card_hide_this_card) .setPositiveButton(R.string.payment_info_card_hide, (dialog, which) -> { model.dismiss(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/pin/PinOptOutDialog.java b/app/src/main/java/org/thoughtcrime/securesms/pin/PinOptOutDialog.java index c366f24fb2..94c7398b98 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/pin/PinOptOutDialog.java +++ b/app/src/main/java/org/thoughtcrime/securesms/pin/PinOptOutDialog.java @@ -6,9 +6,11 @@ import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; import androidx.core.content.ContextCompat; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + +import org.signal.core.util.concurrent.SimpleTask; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.R; -import org.signal.core.util.concurrent.SimpleTask; import org.thoughtcrime.securesms.util.views.SimpleProgressDialog; public final class PinOptOutDialog { @@ -17,7 +19,7 @@ public final class PinOptOutDialog { public static void show(@NonNull Context context, @NonNull Runnable onSuccess) { Log.i(TAG, "show()"); - AlertDialog dialog = new AlertDialog.Builder(context) + AlertDialog dialog = new MaterialAlertDialogBuilder(context) .setTitle(R.string.PinOptOutDialog_warning) .setMessage(R.string.PinOptOutDialog_if_you_disable_the_pin_you_will_lose_all_data) .setCancelable(true) diff --git a/app/src/main/java/org/thoughtcrime/securesms/pin/PinRestoreEntryFragment.java b/app/src/main/java/org/thoughtcrime/securesms/pin/PinRestoreEntryFragment.java index a1af3fb44b..6b06d58699 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/pin/PinRestoreEntryFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/pin/PinRestoreEntryFragment.java @@ -15,12 +15,13 @@ import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.StringRes; -import androidx.appcompat.app.AlertDialog; import androidx.autofill.HintConstants; import androidx.core.view.ViewCompat; import androidx.lifecycle.ViewModelProvider; import androidx.navigation.Navigation; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.LoggingFragment; import org.thoughtcrime.securesms.MainActivity; @@ -119,7 +120,7 @@ public class PinRestoreEntryFragment extends LoggingFragment { private void presentTriesRemaining(PinRestoreViewModel.TriesRemaining triesRemaining) { if (triesRemaining.hasIncorrectGuess()) { if (triesRemaining.getCount() == 1) { - new AlertDialog.Builder(requireContext()) + new MaterialAlertDialogBuilder(requireContext()) .setTitle(R.string.PinRestoreEntryFragment_incorrect_pin) .setMessage(getResources().getQuantityString(R.plurals.PinRestoreEntryFragment_you_have_d_attempt_remaining, triesRemaining.getCount(), triesRemaining.getCount())) .setPositiveButton(android.R.string.ok, null) @@ -131,7 +132,7 @@ public class PinRestoreEntryFragment extends LoggingFragment { } else { if (triesRemaining.getCount() == 1) { helpButton.setVisibility(View.VISIBLE); - new AlertDialog.Builder(requireContext()) + new MaterialAlertDialogBuilder(requireContext()) .setMessage(getResources().getQuantityString(R.plurals.PinRestoreEntryFragment_you_have_d_attempt_remaining, triesRemaining.getCount(), triesRemaining.getCount())) .setPositiveButton(android.R.string.ok, null) .show(); @@ -191,7 +192,7 @@ public class PinRestoreEntryFragment extends LoggingFragment { } private void onNeedHelpClicked() { - new AlertDialog.Builder(requireContext()) + new MaterialAlertDialogBuilder(requireContext()) .setTitle(R.string.PinRestoreEntryFragment_need_help) .setMessage(getString(R.string.PinRestoreEntryFragment_your_pin_is_a_d_digit_code, KbsConstants.MINIMUM_PIN_LENGTH)) .setPositiveButton(R.string.PinRestoreEntryFragment_create_new_pin, ((dialog, which) -> { @@ -213,7 +214,7 @@ public class PinRestoreEntryFragment extends LoggingFragment { } private void onSkipClicked() { - new AlertDialog.Builder(requireContext()) + new MaterialAlertDialogBuilder(requireContext()) .setTitle(R.string.PinRestoreEntryFragment_skip_pin_entry) .setMessage(R.string.PinRestoreEntryFragment_if_you_cant_remember_your_pin) .setPositiveButton(R.string.PinRestoreEntryFragment_create_new_pin, (dialog, which) -> { diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/AdvancedPinPreferenceFragment.java b/app/src/main/java/org/thoughtcrime/securesms/preferences/AdvancedPinPreferenceFragment.java index 311ec4660f..719416bf0f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/preferences/AdvancedPinPreferenceFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/preferences/AdvancedPinPreferenceFragment.java @@ -7,6 +7,7 @@ import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.preference.Preference; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.snackbar.Snackbar; import org.thoughtcrime.securesms.R; @@ -73,13 +74,13 @@ public class AdvancedPinPreferenceFragment extends ListSummaryPreferenceFragment SignalStore.kbsValues().isV2RegistrationLockEnabled(); if (!enabled && hasRegistrationLock) { - new AlertDialog.Builder(requireContext()) + new MaterialAlertDialogBuilder(requireContext()) .setMessage(R.string.ApplicationPreferencesActivity_pins_are_required_for_registration_lock) .setCancelable(true) .setPositiveButton(android.R.string.ok, (d, which) -> d.dismiss()) .show(); } else if (!enabled && SignalStore.paymentsValues().mobileCoinPaymentsEnabled() && !SignalStore.paymentsValues().getUserConfirmedMnemonic()) { - new AlertDialog.Builder(requireContext()) + new MaterialAlertDialogBuilder(requireContext()) .setTitle(R.string.ApplicationPreferencesActivity_record_payments_recovery_phrase) .setMessage(R.string.ApplicationPreferencesActivity_before_you_can_disable_your_pin) .setPositiveButton(R.string.ApplicationPreferencesActivity_record_phrase, (dialog, which) -> { diff --git a/app/src/main/java/org/thoughtcrime/securesms/profiles/spoofing/ReviewCardDialogFragment.java b/app/src/main/java/org/thoughtcrime/securesms/profiles/spoofing/ReviewCardDialogFragment.java index 542bf28e81..d89de6e602 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/profiles/spoofing/ReviewCardDialogFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/profiles/spoofing/ReviewCardDialogFragment.java @@ -1,6 +1,5 @@ package org.thoughtcrime.securesms.profiles.spoofing; -import android.app.AlertDialog; import android.content.Intent; import android.os.Bundle; import android.provider.ContactsContract; @@ -15,6 +14,8 @@ import androidx.annotation.StringRes; import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.RecyclerView; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.components.FullScreenDialogFragment; import org.thoughtcrime.securesms.groups.BadGroupIdException; @@ -185,7 +186,7 @@ public class ReviewCardDialogFragment extends FullScreenDialogFragment { startActivity(contactEditIntent); break; case REMOVE_FROM_GROUP: - new AlertDialog.Builder(requireContext()) + new MaterialAlertDialogBuilder(requireContext()) .setMessage(getString(R.string.ReviewCardDialogFragment__remove_s_from_group, card.getReviewRecipient().getDisplayName(requireContext()))) .setPositiveButton(R.string.ReviewCardDialogFragment__remove, (dialog, which) -> { diff --git a/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/RestoreBackupFragment.java b/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/RestoreBackupFragment.java index bebf3863a9..8f60b1a217 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/RestoreBackupFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/RestoreBackupFragment.java @@ -27,16 +27,18 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; import androidx.annotation.StringRes; -import androidx.appcompat.app.AlertDialog; import androidx.lifecycle.ViewModelProvider; import androidx.navigation.Navigation; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import net.zetetic.database.sqlcipher.SQLiteDatabase; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; import org.signal.core.util.ThreadUtil; +import org.signal.core.util.concurrent.SimpleTask; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.AppInitialization; import org.thoughtcrime.securesms.LoggingFragment; @@ -54,7 +56,6 @@ import org.thoughtcrime.securesms.service.LocalBackupListener; import org.thoughtcrime.securesms.util.BackupUtil; import org.thoughtcrime.securesms.util.DateUtils; import org.thoughtcrime.securesms.util.Util; -import org.signal.core.util.concurrent.SimpleTask; import org.thoughtcrime.securesms.util.navigation.SafeNavigation; import org.thoughtcrime.securesms.util.views.CircularProgressMaterialButton; @@ -251,7 +252,7 @@ public final class RestoreBackupFragment extends LoggingFragment { prompt.addTextChangedListener(new PassphraseAsYouTypeFormatter()); - new AlertDialog.Builder(context) + new MaterialAlertDialogBuilder(context) .setTitle(R.string.RegistrationActivity_enter_backup_passphrase) .setView(view) .setPositiveButton(R.string.RegistrationActivity_restore, (dialog, which) -> { @@ -395,7 +396,7 @@ public final class RestoreBackupFragment extends LoggingFragment { @RequiresApi(29) private void displayConfirmationDialog(@NonNull Context context) { - new AlertDialog.Builder(context) + new MaterialAlertDialogBuilder(context) .setTitle(R.string.RestoreBackupFragment__restore_complete) .setMessage(R.string.RestoreBackupFragment__to_continue_using_backups_please_choose_a_folder) .setPositiveButton(R.string.RestoreBackupFragment__choose_folder, (dialog, which) -> { diff --git a/app/src/main/java/org/thoughtcrime/securesms/sharing/MultiShareDialogs.java b/app/src/main/java/org/thoughtcrime/securesms/sharing/MultiShareDialogs.java index 9c181d4e5a..d4d58a38e8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/sharing/MultiShareDialogs.java +++ b/app/src/main/java/org/thoughtcrime/securesms/sharing/MultiShareDialogs.java @@ -1,10 +1,11 @@ package org.thoughtcrime.securesms.sharing; -import android.app.AlertDialog; import android.content.Context; import androidx.annotation.NonNull; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.thoughtcrime.securesms.R; public final class MultiShareDialogs { @@ -23,7 +24,7 @@ public final class MultiShareDialogs { } public static void displayMaxSelectedDialog(@NonNull Context context, int hardLimit) { - new AlertDialog.Builder(context) + new MaterialAlertDialogBuilder(context) .setMessage(context.getString(R.string.MultiShareDialogs__you_can_only_share_with_up_to, hardLimit)) .setPositiveButton(android.R.string.ok, ((dialog, which) -> dialog.dismiss())) .setCancelable(true) @@ -33,7 +34,7 @@ public final class MultiShareDialogs { private static void displayFailuresDialog(@NonNull Context context, @NonNull Runnable onDismiss) { - new AlertDialog.Builder(context) + new MaterialAlertDialogBuilder(context) .setMessage(R.string.MultiShareDialogs__failed_to_send_to_some_users) .setPositiveButton(android.R.string.ok, ((dialog, which) -> dialog.dismiss())) .setOnDismissListener(dialog -> onDismiss.run()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/FragmentDialogs.kt b/app/src/main/java/org/thoughtcrime/securesms/util/FragmentDialogs.kt index bccdd277b8..9d633cfb04 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/FragmentDialogs.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/util/FragmentDialogs.kt @@ -8,8 +8,8 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.annotation.LayoutRes -import androidx.appcompat.app.AlertDialog import androidx.fragment.app.Fragment +import com.google.android.material.dialog.MaterialAlertDialogBuilder /** * Helper functions to display custom views in AlertDialogs anchored to the top of the specified view. @@ -41,7 +41,7 @@ object FragmentDialogs { onShow: (DialogInterface, View) -> Unit = { _, _ -> }, onDismiss: (DialogInterface) -> Unit = { } ): DialogInterface { - val alertDialog = AlertDialog.Builder(requireContext()) + val alertDialog = MaterialAlertDialogBuilder(requireContext()) .setView(contentView) .create() diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/views/SimpleProgressDialog.java b/app/src/main/java/org/thoughtcrime/securesms/util/views/SimpleProgressDialog.java index 261e64fa08..792bcde260 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/views/SimpleProgressDialog.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/views/SimpleProgressDialog.java @@ -7,6 +7,8 @@ import androidx.annotation.MainThread; import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.signal.core.util.ThreadUtil; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.R; @@ -25,7 +27,7 @@ public final class SimpleProgressDialog { @MainThread public static @NonNull AlertDialog show(@NonNull Context context) { - AlertDialog dialog = new AlertDialog.Builder(context) + AlertDialog dialog = new MaterialAlertDialogBuilder(context) .setView(R.layout.progress_dialog) .setCancelable(false) .create(); diff --git a/device-transfer/app/src/main/java/org/signal/devicetransfer/app/MainActivity.java b/device-transfer/app/src/main/java/org/signal/devicetransfer/app/MainActivity.java index cdd8aad8ea..dc77847107 100644 --- a/device-transfer/app/src/main/java/org/signal/devicetransfer/app/MainActivity.java +++ b/device-transfer/app/src/main/java/org/signal/devicetransfer/app/MainActivity.java @@ -20,6 +20,8 @@ import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.NotificationManagerCompat; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; @@ -103,12 +105,12 @@ public class MainActivity extends AppCompatActivity { list.addView(text); if (event.getTransferMode() == TransferStatus.TransferMode.VERIFICATION_REQUIRED) { - new AlertDialog.Builder(this).setTitle("Verification Required") - .setMessage("Code: " + event.getAuthenticationCode()) - .setPositiveButton("Yes, Same", (d, w) -> DeviceToDeviceTransferService.setAuthenticationCodeVerified(this, true)) - .setNegativeButton("No, different", (d, w) -> DeviceToDeviceTransferService.setAuthenticationCodeVerified(this, false)) - .setCancelable(false) - .show(); + new MaterialAlertDialogBuilder(this).setTitle("Verification Required") + .setMessage("Code: " + event.getAuthenticationCode()) + .setPositiveButton("Yes, Same", (d, w) -> DeviceToDeviceTransferService.setAuthenticationCodeVerified(this, true)) + .setNegativeButton("No, different", (d, w) -> DeviceToDeviceTransferService.setAuthenticationCodeVerified(this, false)) + .setCancelable(false) + .show(); } }