From 86d088bce25cc5c7e9e5f475a059c6882106e83b Mon Sep 17 00:00:00 2001 From: Alan Evans Date: Wed, 16 Oct 2019 18:37:08 -0400 Subject: [PATCH] Improved registration flow. --- AndroidManifest.xml | 17 +- build.gradle | 9 +- .../activity_registration_navigation.xml | 21 + res/layout/captcha_activity.xml | 37 - res/layout/country_code_text.xml | 6 +- res/layout/country_list_item.xml | 47 +- res/layout/country_selection.xml | 10 - res/layout/enter_backup_passphrase_dialog.xml | 26 +- res/layout/fragment_registration_blank.xml | 22 + res/layout/fragment_registration_captcha.xml | 41 + .../fragment_registration_country_picker.xml | 27 + .../fragment_registration_enter_code.xml | 100 ++ ...agment_registration_enter_phone_number.xml | 134 ++ res/layout/fragment_registration_lock.xml | 113 ++ .../fragment_registration_restore_backup.xml | 107 ++ ....xml => fragment_registration_welcome.xml} | 29 +- .../fragment_registration_welcome_rereg.xml | 22 + res/layout/phone_text.xml | 2 + res/layout/registration_activity.xml | 333 ----- res/layout/verification_code_view.xml | 173 +-- res/navigation/registration.xml | 202 +++ res/values-sw360dp/registration_dimens.xml | 8 + res/values/attrs.xml | 9 - res/values/registration_dimens.xml | 8 + res/values/registration_styles.xml | 26 + res/values/strings.xml | 7 + res/values/styles.xml | 4 - res/values/text_styles.xml | 5 +- .../securesms/CountrySelectionActivity.java | 27 - .../PassphraseRequiredActionBarActivity.java | 48 +- .../securesms/RegistrationActivity.java | 1150 ----------------- .../securesms/components/LabeledEditText.java | 6 + .../registration/CallMeCountDownView.java | 24 +- .../registration/VerificationCodeView.java | 70 +- .../reminder/PushRegistrationReminder.java | 12 +- .../reminder/UnauthorizedReminder.java | 8 +- .../conversation/ConversationActivity.java | 6 +- .../AdvancedPreferenceFragment.java | 14 +- .../registration/CaptchaActivity.java | 68 - .../registration/ReceivedSmsEvent.java | 16 + .../RegistrationNavigationActivity.java | 101 ++ .../registration/WelcomeActivity.java | 56 - .../fragments/BaseRegistrationFragment.java | 107 ++ .../fragments/CaptchaFragment.java | 56 + .../fragments/CountryPickerFragment.java | 106 ++ .../fragments/EnterCodeFragment.java | 298 +++++ .../fragments/EnterPhoneNumberFragment.java | 389 ++++++ .../RegistrationCompleteFragment.java | 46 + .../fragments/RegistrationConstants.java | 15 + .../fragments/RegistrationLockFragment.java | 149 +++ .../fragments/RestoreBackupFragment.java | 332 +++++ .../fragments/WelcomeFragment.java | 152 +++ .../service/CodeVerificationRequest.java | 181 +++ .../registration/service/Credentials.java | 22 + .../service/RegistrationCodeRequest.java | 154 +++ .../service/RegistrationService.java | 42 + .../viewmodel/NumberViewState.java | 186 +++ .../viewmodel/RegistrationViewModel.java | 130 ++ witness-verifications.gradle | 37 +- 59 files changed, 3582 insertions(+), 1971 deletions(-) create mode 100644 res/layout/activity_registration_navigation.xml delete mode 100644 res/layout/captcha_activity.xml delete mode 100644 res/layout/country_selection.xml create mode 100644 res/layout/fragment_registration_blank.xml create mode 100644 res/layout/fragment_registration_captcha.xml create mode 100644 res/layout/fragment_registration_country_picker.xml create mode 100644 res/layout/fragment_registration_enter_code.xml create mode 100644 res/layout/fragment_registration_enter_phone_number.xml create mode 100644 res/layout/fragment_registration_lock.xml create mode 100644 res/layout/fragment_registration_restore_backup.xml rename res/layout/{registration_welcome_activity.xml => fragment_registration_welcome.xml} (69%) create mode 100644 res/layout/fragment_registration_welcome_rereg.xml delete mode 100644 res/layout/registration_activity.xml create mode 100644 res/navigation/registration.xml create mode 100644 res/values-sw360dp/registration_dimens.xml create mode 100644 res/values/registration_dimens.xml create mode 100644 res/values/registration_styles.xml delete mode 100644 src/org/thoughtcrime/securesms/CountrySelectionActivity.java delete mode 100644 src/org/thoughtcrime/securesms/RegistrationActivity.java delete mode 100644 src/org/thoughtcrime/securesms/registration/CaptchaActivity.java create mode 100644 src/org/thoughtcrime/securesms/registration/ReceivedSmsEvent.java create mode 100644 src/org/thoughtcrime/securesms/registration/RegistrationNavigationActivity.java delete mode 100644 src/org/thoughtcrime/securesms/registration/WelcomeActivity.java create mode 100644 src/org/thoughtcrime/securesms/registration/fragments/BaseRegistrationFragment.java create mode 100644 src/org/thoughtcrime/securesms/registration/fragments/CaptchaFragment.java create mode 100644 src/org/thoughtcrime/securesms/registration/fragments/CountryPickerFragment.java create mode 100644 src/org/thoughtcrime/securesms/registration/fragments/EnterCodeFragment.java create mode 100644 src/org/thoughtcrime/securesms/registration/fragments/EnterPhoneNumberFragment.java create mode 100644 src/org/thoughtcrime/securesms/registration/fragments/RegistrationCompleteFragment.java create mode 100644 src/org/thoughtcrime/securesms/registration/fragments/RegistrationConstants.java create mode 100644 src/org/thoughtcrime/securesms/registration/fragments/RegistrationLockFragment.java create mode 100644 src/org/thoughtcrime/securesms/registration/fragments/RestoreBackupFragment.java create mode 100644 src/org/thoughtcrime/securesms/registration/fragments/WelcomeFragment.java create mode 100644 src/org/thoughtcrime/securesms/registration/service/CodeVerificationRequest.java create mode 100644 src/org/thoughtcrime/securesms/registration/service/Credentials.java create mode 100644 src/org/thoughtcrime/securesms/registration/service/RegistrationCodeRequest.java create mode 100644 src/org/thoughtcrime/securesms/registration/service/RegistrationService.java create mode 100644 src/org/thoughtcrime/securesms/registration/viewmodel/NumberViewState.java create mode 100644 src/org/thoughtcrime/securesms/registration/viewmodel/RegistrationViewModel.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 3d056428c..ae8952a55 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -119,9 +119,6 @@ android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|screenSize|fontScale" android:launchMode="singleTask"/> - - - - - - - + + + + + \ No newline at end of file diff --git a/res/layout/captcha_activity.xml b/res/layout/captcha_activity.xml deleted file mode 100644 index f6661eb64..000000000 --- a/res/layout/captcha_activity.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/res/layout/country_code_text.xml b/res/layout/country_code_text.xml index f006d0849..5590ff7b1 100644 --- a/res/layout/country_code_text.xml +++ b/res/layout/country_code_text.xml @@ -15,7 +15,9 @@ android:layout_height="wrap_content" android:layout_marginBottom="3dp" android:src="@drawable/ic_add_white_original_24dp" - android:tint="@color/core_grey_60"/> + android:tint="@color/core_grey_60" + android:contentDescription="+" + tools:ignore="HardcodedText" /> diff --git a/res/layout/country_list_item.xml b/res/layout/country_list_item.xml index 3aff0de3f..c209a6886 100644 --- a/res/layout/country_list_item.xml +++ b/res/layout/country_list_item.xml @@ -1,28 +1,29 @@ + - + - - - + - diff --git a/res/layout/country_selection.xml b/res/layout/country_selection.xml deleted file mode 100644 index 212333686..000000000 --- a/res/layout/country_selection.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - \ No newline at end of file diff --git a/res/layout/enter_backup_passphrase_dialog.xml b/res/layout/enter_backup_passphrase_dialog.xml index ffb016bd2..6297ed861 100644 --- a/res/layout/enter_backup_passphrase_dialog.xml +++ b/res/layout/enter_backup_passphrase_dialog.xml @@ -1,20 +1,24 @@ + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:padding="16dp"> + android:layout_width="match_parent" + android:layout_height="wrap_content"> + android:id="@+id/restore_passphrase_input" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:fontFamily="monospace" + android:hint="@string/enter_backup_passphrase_dialog__backup_passphrase" + android:imeOptions="actionDone" + android:inputType="number" + android:maxLength="30" + android:textSize="16sp" /> + \ No newline at end of file diff --git a/res/layout/fragment_registration_blank.xml b/res/layout/fragment_registration_blank.xml new file mode 100644 index 000000000..af7599fad --- /dev/null +++ b/res/layout/fragment_registration_blank.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/res/layout/fragment_registration_captcha.xml b/res/layout/fragment_registration_captcha.xml new file mode 100644 index 000000000..b6d54b91a --- /dev/null +++ b/res/layout/fragment_registration_captcha.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/res/layout/fragment_registration_country_picker.xml b/res/layout/fragment_registration_country_picker.xml new file mode 100644 index 000000000..e17bae87f --- /dev/null +++ b/res/layout/fragment_registration_country_picker.xml @@ -0,0 +1,27 @@ + + + + + + + + + diff --git a/res/layout/fragment_registration_enter_code.xml b/res/layout/fragment_registration_enter_code.xml new file mode 100644 index 000000000..3e86fbc52 --- /dev/null +++ b/res/layout/fragment_registration_enter_code.xml @@ -0,0 +1,100 @@ + + + + + + + +