Update AlertDialogs to MaterialAlertDialogs.

Addresses #12949.
This commit is contained in:
Nicholas Tinsley 2023-05-25 18:17:37 -04:00 committed by Cody Henthorne
parent 1965d5879f
commit 7ea9fc0c3b
36 changed files with 151 additions and 110 deletions

View file

@ -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) -> {

View file

@ -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)

View file

@ -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()))

View file

@ -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();

View file

@ -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)

View file

@ -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)

View file

@ -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) {

View file

@ -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);

View file

@ -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);

View file

@ -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() {

View file

@ -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) -> {

View file

@ -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)

View file

@ -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),

View file

@ -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) -> {

View file

@ -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<MentionSetting> 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)

View file

@ -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) -> {

View file

@ -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)

View file

@ -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))

View file

@ -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);

View file

@ -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) -> {

View file

@ -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);

View file

@ -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())

View file

@ -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<String> 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())

View file

@ -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();

View file

@ -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();

View file

@ -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())))

View file

@ -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<InfoCard> {
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();

View file

@ -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)

View file

@ -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) -> {

View file

@ -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) -> {

View file

@ -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) -> {

View file

@ -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) -> {

View file

@ -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())

View file

@ -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()

View file

@ -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();

View file

@ -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();
}
}