From 958c6f451f399e4c5e5c068e2987807efd8d14c1 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Mon, 4 May 2026 13:31:32 +0000 Subject: [PATCH] Fix infinite spinner on RegistrationLockFragment when server rejects registration lock token. --- .../securesms/registration/ui/RegistrationViewModel.kt | 2 +- .../ui/registrationlock/RegistrationLockFragment.kt | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/registration/ui/RegistrationViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/registration/ui/RegistrationViewModel.kt index 10c5b28550..c002ca6ae8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/registration/ui/RegistrationViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/registration/ui/RegistrationViewModel.kt @@ -810,7 +810,7 @@ class RegistrationViewModel : ViewModel() { registrationCheckpoint = RegistrationCheckpoint.PIN_ENTERED ) } - viewModelScope.launch { + viewModelScope.launch(context = coroutineExceptionHandler) { verifyCodeInternal( context = context, registrationLocked = true, diff --git a/app/src/main/java/org/thoughtcrime/securesms/registration/ui/registrationlock/RegistrationLockFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/registration/ui/registrationlock/RegistrationLockFragment.kt index d151c3b40b..701b78c1dc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/registration/ui/registrationlock/RegistrationLockFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/registration/ui/registrationlock/RegistrationLockFragment.kt @@ -143,10 +143,11 @@ class RegistrationLockFragment : LoggingFragment(R.layout.fragment_registration_ is VerificationCodeRequestResult.RateLimited -> onRateLimited() is VerificationCodeRequestResult.RegistrationLocked -> { - Log.i(TAG, "Registration locked response to verify account!") + Log.w(TAG, "Registration locked response to verify account!") + viewModel.setInProgress(false) binding.kbsLockPinConfirm.cancelSpinning() enableAndFocusPinEntry() - Toast.makeText(requireContext(), "Reg lock!", Toast.LENGTH_LONG).show() + Toast.makeText(requireContext(), R.string.RegistrationActivity_error_connecting_to_service, Toast.LENGTH_LONG).show() } else -> { @@ -165,10 +166,11 @@ class RegistrationLockFragment : LoggingFragment(R.layout.fragment_registration_ } is RegisterAccountResult.RegistrationLocked -> { - Log.i(TAG, "Registration locked response to register account!") + Log.w(TAG, "Registration locked response to register account!") + viewModel.setInProgress(false) binding.kbsLockPinConfirm.cancelSpinning() enableAndFocusPinEntry() - Toast.makeText(requireContext(), "Reg lock!", Toast.LENGTH_LONG).show() + Toast.makeText(requireContext(), R.string.RegistrationActivity_error_connecting_to_service, Toast.LENGTH_LONG).show() } is RegisterAccountResult.SvrWrongPin -> onIncorrectKbsRegistrationLockPin(result.triesRemaining)