diff --git a/app/src/main/java/org/thoughtcrime/securesms/MainActivity.java b/app/src/main/java/org/thoughtcrime/securesms/MainActivity.java index f9812a0696..dbf666eb3a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/MainActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/MainActivity.java @@ -13,11 +13,14 @@ import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.ViewModelProvider; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.thoughtcrime.securesms.components.voice.VoiceNoteMediaController; import org.thoughtcrime.securesms.components.voice.VoiceNoteMediaControllerOwner; import org.thoughtcrime.securesms.conversationlist.RelinkDevicesReminderBottomSheetFragment; -import org.thoughtcrime.securesms.devicetransfer.olddevice.OldDeviceTransferLockedDialog; +import org.thoughtcrime.securesms.devicetransfer.olddevice.OldDeviceExitActivity; import org.thoughtcrime.securesms.keyvalue.SignalStore; +import org.thoughtcrime.securesms.net.DeviceTransferBlockingInterceptor; import org.thoughtcrime.securesms.stories.tabs.ConversationListTabRepository; import org.thoughtcrime.securesms.stories.tabs.ConversationListTabsViewModel; import org.thoughtcrime.securesms.util.AppStartup; @@ -115,7 +118,16 @@ public class MainActivity extends PassphraseRequiredActivity implements VoiceNot super.onResume(); dynamicTheme.onResume(this); if (SignalStore.misc().isOldDeviceTransferLocked()) { - OldDeviceTransferLockedDialog.show(getSupportFragmentManager()); + new MaterialAlertDialogBuilder(this) + .setTitle(R.string.OldDeviceTransferLockedDialog__complete_registration_on_your_new_device) + .setMessage(R.string.OldDeviceTransferLockedDialog__your_signal_account_has_been_transferred_to_your_new_device) + .setPositiveButton(R.string.OldDeviceTransferLockedDialog__done, (d, w) -> OldDeviceExitActivity.exit(this)) + .setNegativeButton(R.string.OldDeviceTransferLockedDialog__cancel_and_activate_this_device, (d, w) -> { + SignalStore.misc().clearOldDeviceTransferLocked(); + DeviceTransferBlockingInterceptor.getInstance().unblockNetwork(); + }) + .setCancelable(false) + .show(); } if (SignalStore.misc().getShouldShowLinkedDevicesReminder()) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/devicetransfer/olddevice/OldDeviceTransferLockedDialog.java b/app/src/main/java/org/thoughtcrime/securesms/devicetransfer/olddevice/OldDeviceTransferLockedDialog.java deleted file mode 100644 index ad9dee7e94..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/devicetransfer/olddevice/OldDeviceTransferLockedDialog.java +++ /dev/null @@ -1,56 +0,0 @@ -package org.thoughtcrime.securesms.devicetransfer.olddevice; - -import android.app.Dialog; -import android.os.Bundle; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.fragment.app.DialogFragment; -import androidx.fragment.app.FragmentManager; - -import com.google.android.material.dialog.MaterialAlertDialogBuilder; - -import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.R; -import org.thoughtcrime.securesms.keyvalue.SignalStore; -import org.thoughtcrime.securesms.net.DeviceTransferBlockingInterceptor; - -/** - * Blocking dialog shown on old devices after a successful transfer to prevent use unless - * the user takes action to reactivate. - */ -public final class OldDeviceTransferLockedDialog extends DialogFragment { - - private static final String TAG = Log.tag(OldDeviceTransferLockedDialog.class); - private static final String FRAGMENT_TAG = "OldDeviceTransferLockedDialog"; - - public static void show(@NonNull FragmentManager fragmentManager) { - if (fragmentManager.findFragmentByTag(FRAGMENT_TAG) != null) { - Log.i(TAG, "Locked dialog already being shown"); - return; - } - - new OldDeviceTransferLockedDialog().show(fragmentManager, FRAGMENT_TAG); - } - - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setCancelable(false); - } - - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - MaterialAlertDialogBuilder dialogBuilder = new MaterialAlertDialogBuilder(requireContext()); - dialogBuilder.setView(R.layout.old_device_transfer_locked_dialog_fragment) - .setPositiveButton(R.string.OldDeviceTransferLockedDialog__done, (d, w) -> OldDeviceExitActivity.exit(requireActivity())) - .setNegativeButton(R.string.OldDeviceTransferLockedDialog__cancel_and_activate_this_device, (d, w) -> onUnlockRequest()); - - return dialogBuilder.create(); - } - - private void onUnlockRequest() { - SignalStore.misc().clearOldDeviceTransferLocked(); - DeviceTransferBlockingInterceptor.getInstance().unblockNetwork(); - } -} diff --git a/app/src/main/res/layout/old_device_transfer_locked_dialog_fragment.xml b/app/src/main/res/layout/old_device_transfer_locked_dialog_fragment.xml deleted file mode 100644 index 38eb0751ec..0000000000 --- a/app/src/main/res/layout/old_device_transfer_locked_dialog_fragment.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file