From 77bb3702a91f42519d9109f8851a29ed20a6e318 Mon Sep 17 00:00:00 2001 From: Nicholas Tinsley Date: Mon, 3 Apr 2023 14:43:26 -0400 Subject: [PATCH] Add more detail to 502 errors during registration. --- .../registration/fragments/BaseEnterSmsCodeFragment.java | 3 ++- .../registration/fragments/EnterPhoneNumberFragment.java | 7 ++++++- app/src/main/res/values/strings.xml | 2 ++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/BaseEnterSmsCodeFragment.java b/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/BaseEnterSmsCodeFragment.java index c94e24e599..dfdaf8a003 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/BaseEnterSmsCodeFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/BaseEnterSmsCodeFragment.java @@ -28,6 +28,7 @@ import org.thoughtcrime.securesms.components.registration.VerificationCodeView; import org.thoughtcrime.securesms.components.registration.VerificationPinKeyboard; import org.thoughtcrime.securesms.registration.ReceivedSmsEvent; import org.thoughtcrime.securesms.registration.VerifyAccountRepository; +import org.thoughtcrime.securesms.registration.VerifyResponseProcessor; import org.thoughtcrime.securesms.registration.viewmodel.BaseRegistrationViewModel; import org.thoughtcrime.securesms.util.LifecycleDisposable; import org.thoughtcrime.securesms.util.ViewUtil; @@ -163,7 +164,7 @@ public abstract class BaseEnterSmsCodeFragment { + .subscribe((VerifyResponseProcessor processor) -> { if (!processor.hasResult()) { Log.w(TAG, "post verify: ", processor.getError()); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/EnterPhoneNumberFragment.java b/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/EnterPhoneNumberFragment.java index 2f92cac5de..15c562fc9e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/EnterPhoneNumberFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/EnterPhoneNumberFragment.java @@ -39,6 +39,7 @@ import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.LoggingFragment; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.keyvalue.SignalStore; +import org.thoughtcrime.securesms.registration.RegistrationSessionProcessor; import org.thoughtcrime.securesms.registration.VerifyAccountRepository.Mode; import org.thoughtcrime.securesms.registration.util.RegistrationNumberInputController; import org.thoughtcrime.securesms.registration.viewmodel.NumberViewState; @@ -279,7 +280,7 @@ public final class EnterPhoneNumberFragment extends LoggingFragment implements R Disposable request = viewModel.requestVerificationCode(mode, mccMncProducer.getMcc(), mccMncProducer.getMnc()) .doOnSubscribe(unused -> SignalStore.account().setRegistered(false)) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(processor -> { + .subscribe((RegistrationSessionProcessor processor) -> { if (processor.verificationCodeRequestSuccess()) { disposables.add(updateFcmTokenValue()); SafeNavigation.safeNavigate(navController, EnterPhoneNumberFragmentDirections.actionEnterVerificationCode()); @@ -302,6 +303,10 @@ public final class EnterPhoneNumberFragment extends LoggingFragment implements R } else if (processor.isTokenRejected()) { Log.i(TAG, "The server did not accept the information.", processor.getError()); showErrorDialog(register.getContext(), getString(R.string.RegistrationActivity_we_need_to_verify_that_youre_human)); + } else if (processor instanceof RegistrationSessionProcessor.RegistrationSessionProcessorForVerification + && ((RegistrationSessionProcessor.RegistrationSessionProcessorForVerification) processor).externalServiceFailure()) { + Log.w(TAG, "The server reported a failure with an external service.", processor.getError()); + showErrorDialog(register.getContext(), getString(R.string.RegistrationActivity_external_service_error)); } else { Log.i(TAG, "Unknown error during verification code request", processor.getError()); showErrorDialog(register.getContext(), getString(R.string.RegistrationActivity_unable_to_connect_to_service)); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4108e9033d..2d472f94fc 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1805,6 +1805,8 @@ You are now %d steps away from submitting a debug log. We need to verify that you\'re human. + + Signal was unable to send an SMS code due to an external failure. Next Continue Take privacy with you.\nBe yourself in every message.