From 5647215659a433cbeeb2e00a419dfa14d4ea65bc Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Thu, 12 Sep 2024 14:48:12 -0400 Subject: [PATCH] Fix state exception when registering without play services. --- .../phonenumber/EnterPhoneNumberFragment.kt | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/registration/ui/phonenumber/EnterPhoneNumberFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/registration/ui/phonenumber/EnterPhoneNumberFragment.kt index b8be0442a5..15b1621bc6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/registration/ui/phonenumber/EnterPhoneNumberFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/registration/ui/phonenumber/EnterPhoneNumberFragment.kt @@ -41,6 +41,7 @@ import org.thoughtcrime.securesms.LoggingFragment import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.components.ViewBinderDelegate import org.thoughtcrime.securesms.databinding.FragmentRegistrationEnterPhoneNumberBinding +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.phonenumbers.PhoneNumberFormatter import org.thoughtcrime.securesms.registration.data.RegistrationRepository import org.thoughtcrime.securesms.registration.data.network.Challenge @@ -570,18 +571,22 @@ class EnterPhoneNumberFragment : LoggingFragment(R.layout.fragment_registration_ } private fun handlePromptForNoPlayServices() { - Log.d(TAG, "Device does not have Play Services, showing consent dialog.") - MaterialAlertDialogBuilder(requireContext()).apply { - setTitle(R.string.RegistrationActivity_missing_google_play_services) - setMessage(R.string.RegistrationActivity_this_device_is_missing_google_play_services) - setPositiveButton(R.string.RegistrationActivity_i_understand) { _, _ -> - Log.d(TAG, "User confirmed number.") - sharedViewModel.onUserConfirmedPhoneNumber(requireContext()) + val context = activity + + if (context != null) { + Log.d(TAG, "Device does not have Play Services, showing consent dialog.") + MaterialAlertDialogBuilder(context).apply { + setTitle(R.string.RegistrationActivity_missing_google_play_services) + setMessage(R.string.RegistrationActivity_this_device_is_missing_google_play_services) + setPositiveButton(R.string.RegistrationActivity_i_understand) { _, _ -> + Log.d(TAG, "User confirmed number.") + sharedViewModel.onUserConfirmedPhoneNumber(AppDependencies.application) + } + setNegativeButton(android.R.string.cancel, null) + setOnCancelListener { fragmentViewModel.clearError() } + setOnDismissListener { fragmentViewModel.clearError() } + show() } - setNegativeButton(android.R.string.cancel, null) - setOnCancelListener { fragmentViewModel.clearError() } - setOnDismissListener { fragmentViewModel.clearError() } - show() } }