From 6fbfb87bd6516b432aad502921f9e3a1f7f48aa2 Mon Sep 17 00:00:00 2001 From: Nicholas Date: Wed, 15 Feb 2023 11:08:22 -0500 Subject: [PATCH] Restore entered phone number post-captcha. --- .../fragments/EnterPhoneNumberFragment.java | 9 ++++----- .../util/RegistrationNumberInputController.kt | 16 +++++++++++++++- 2 files changed, 19 insertions(+), 6 deletions(-) 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 21444e410f..e7ce8d7cc6 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 @@ -10,10 +10,8 @@ import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.view.inputmethod.InputMethodManager; -import android.widget.EditText; import android.widget.ScrollView; -import android.widget.Spinner; -import android.widget.Toast; + import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.ActionBar; @@ -116,7 +114,7 @@ public final class EnterPhoneNumberFragment extends LoggingFragment implements R cancel.setVisibility(View.GONE); } - viewModel.getLiveNumber().observe(getViewLifecycleOwner(), controller::updateNumber); + viewModel.getLiveNumber().observe(getViewLifecycleOwner(), controller::updateNumberFormatter); if (viewModel.hasCaptchaToken()) { ThreadUtil.runOnMainDelayed(() -> handleRegister(requireContext()), 250); @@ -129,6 +127,7 @@ public final class EnterPhoneNumberFragment extends LoggingFragment implements R supportActionBar.setTitle(null); } controller.prepopulateCountryCode(); + controller.setNumberAndCountryCode(viewModel.getNumber()); showKeyboard(number.getEditText()); } @@ -159,7 +158,7 @@ public final class EnterPhoneNumberFragment extends LoggingFragment implements R return; } - if (TextUtils.isEmpty(this.number.getEditText().getText())) { + if (TextUtils.isEmpty(viewModel.getNumber().getNationalNumber())) { showErrorDialog(context, getString(R.string.RegistrationActivity_please_enter_a_valid_phone_number_to_register)); return; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/registration/util/RegistrationNumberInputController.kt b/app/src/main/java/org/thoughtcrime/securesms/registration/util/RegistrationNumberInputController.kt index df28dbe523..f6cccc54e3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/registration/util/RegistrationNumberInputController.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/registration/util/RegistrationNumberInputController.kt @@ -73,7 +73,21 @@ class RegistrationNumberInputController( } } - fun updateNumber(numberViewState: NumberViewState) { + fun setNumberAndCountryCode(numberViewState: NumberViewState) { + val countryCode = numberViewState.countryCode + + isUpdating = true + phoneNumberInputLayout.setText(numberViewState.nationalNumber) + if (numberViewState.countryCode != 0) { + spinnerView.setText(supportedCountryPrefixes.first { it.digits == numberViewState.countryCode }.toString()) + } + val regionCode = PhoneNumberUtil.getInstance().getRegionCodeForCountryCode(countryCode) + setCountryFormatter(regionCode) + + isUpdating = false + } + + fun updateNumberFormatter(numberViewState: NumberViewState) { val countryCode = numberViewState.countryCode isUpdating = true