diff --git a/app/src/main/java/org/thoughtcrime/securesms/lock/v2/BaseSvrPinFragment.java b/app/src/main/java/org/thoughtcrime/securesms/lock/v2/BaseSvrPinFragment.java index 40a2ccee75..228162c0e0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/lock/v2/BaseSvrPinFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/lock/v2/BaseSvrPinFragment.java @@ -200,7 +200,7 @@ public abstract class BaseSvrPinFragment } private void onPinSkipped() { - PinOptOutDialog.show(requireContext(), false, () -> { + PinOptOutDialog.show(requireContext(), getViewLifecycleOwner(), false, () -> { RegistrationUtil.maybeMarkRegistrationComplete(); closeNavGraphBranch(); }); diff --git a/app/src/main/java/org/thoughtcrime/securesms/lock/v2/SvrSplashFragment.java b/app/src/main/java/org/thoughtcrime/securesms/lock/v2/SvrSplashFragment.java index d48044b75f..ec69cdff2b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/lock/v2/SvrSplashFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/lock/v2/SvrSplashFragment.java @@ -125,6 +125,6 @@ public final class SvrSplashFragment extends Fragment { } private void onPinSkipped() { - PinOptOutDialog.show(requireContext(), false, () -> requireActivity().finish()); + PinOptOutDialog.show(requireContext(), getViewLifecycleOwner(), false, () -> requireActivity().finish()); } } 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 5f8b85b2cc..3172f7c793 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/pin/PinOptOutDialog.java +++ b/app/src/main/java/org/thoughtcrime/securesms/pin/PinOptOutDialog.java @@ -5,6 +5,7 @@ import android.content.Context; import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; import androidx.core.content.ContextCompat; +import androidx.lifecycle.LifecycleOwner; import com.google.android.material.dialog.MaterialAlertDialogBuilder; @@ -21,7 +22,7 @@ public final class PinOptOutDialog { * @param rotateAep If true, this will rotate the AEP as part of the process of opting out. Only do this if the user has not enabled backups! If the user * has backups enabled, you should guide them through rotating the AEP first, and then call this with [rotateAep] = false. */ - public static void show(@NonNull Context context, boolean rotateAep, @NonNull Runnable onSuccess) { + public static void show(@NonNull Context context, @NonNull LifecycleOwner lifecycleOwner, boolean rotateAep, @NonNull Runnable onSuccess) { Log.i(TAG, "show()"); AlertDialog dialog = new MaterialAlertDialogBuilder(context) .setTitle(R.string.PinOptOutDialog_warning) @@ -32,7 +33,7 @@ public final class PinOptOutDialog { d.dismiss(); AlertDialog progress = SimpleProgressDialog.show(context); - SimpleTask.run(() -> { + SimpleTask.run(lifecycleOwner.getLifecycle(), () -> { SvrRepository.optOutOfPin(rotateAep); return null; }, success -> { diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/AdvancedPinSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/preferences/AdvancedPinSettingsFragment.kt index d28a3cb710..a07f2c7010 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/preferences/AdvancedPinSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/preferences/AdvancedPinSettingsFragment.kt @@ -59,7 +59,7 @@ class AdvancedPinSettingsFragment : ComposeFragment() { repeatOnLifecycle(Lifecycle.State.RESUMED) { viewModel.event.collectLatest { when (it) { - AdvancedPinSettingsViewModel.Event.SHOW_BACKUPS_DISABLED_OPT_OUT_DIALOG -> PinOptOutDialog.show(requireContext(), true) { + AdvancedPinSettingsViewModel.Event.SHOW_BACKUPS_DISABLED_OPT_OUT_DIALOG -> PinOptOutDialog.show(requireContext(), viewLifecycleOwner, true) { viewModel.onPinOptOutSuccess() displayOptOutSnackbar() }