Improved registration flow.

This commit is contained in:
Alan Evans
2019-10-16 18:37:08 -04:00
committed by Greyson Parrelli
parent a135e7efa2
commit 86d088bce2
59 changed files with 3582 additions and 1971 deletions

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".registration.RegistrationNavigationActivity">
<fragment
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:defaultNavHost="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:navGraph="@navigation/registration" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -1,37 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/registration_captcha_title"
style="@style/Signal.Text.Headline"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="24dp"
android:layout_marginEnd="24dp"
android:text="@string/RegistrationActivity_we_need_to_verify_that_youre_human"
android:gravity="center"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<WebView
android:id="@+id/registration_captcha_web_view"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="16dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/registration_captcha_title" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -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" />
<EditText
android:id="@+id/input"
@@ -28,6 +30,8 @@
android:inputType="number"
android:maxLength="3"
android:digits="1234567890"
android:saveEnabled="false"
android:hint="@string/RegistrationActivity_country_code_description"
tools:text="123" />
</LinearLayout>

View File

@@ -1,28 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="8dp">
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="8dip"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:id="@+id/country_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.0"
android:textAlignment="viewStart"
android:textColor="@color/core_black"
android:textSize="18sp"
tools:text="Canada" />
<TextView android:id="@+id/country_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1.0"
android:textSize="18sp"
android:textStyle="bold" />
<TextView android:id="@+id/country_code"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18.0sp"
android:textStyle="bold"
android:textColor="#7b7b7b"
android:gravity="right|center"
android:layout_marginStart="4dp"
android:layout_marginEnd="5dp"
android:layout_gravity="right|center"/>
<TextView
android:id="@+id/country_code"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_marginEnd="5dp"
android:textColor="@color/core_black"
android:textSize="18sp"
tools:text="+1" />
</LinearLayout>

View File

@@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<fragment android:id="@+id/fragment_content"
android:name="org.thoughtcrime.securesms.CountrySelectionFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</FrameLayout>

View File

@@ -1,20 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp">
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp">
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/restore_passphrase_input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/enter_backup_passphrase_dialog__backup_passphrase"
android:imeOptions="actionDone"
android:inputType="number" />
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" />
</com.google.android.material.textfield.TextInputLayout>
</FrameLayout>

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/signal_primary">
<ImageView
android:id="@+id/watermark"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:importantForAccessibility="no"
android:src="@drawable/icon_transparent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintVertical_bias="0.4"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="0dp">
<TextView
android:id="@+id/registration_captcha_title"
style="@style/Signal.Text.Headline"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="24dp"
android:layout_marginEnd="24dp"
android:gravity="center"
android:text="@string/RegistrationActivity_we_need_to_verify_that_youre_human"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<WebView
android:id="@+id/registration_captcha_web_view"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="16dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/registration_captcha_title" />
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="#ffffff">
<EditText android:id="@+id/country_search"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawableStart="@drawable/ic_menu_search_holo_light"
android:hint="@string/country_selection_fragment__search" />
<ListView android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:divider="#ffdddddd"
android:dividerHeight="1.0px"
android:choiceMode="singleChoice" />
<TextView android:id="@android:id/empty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/country_selection_fragment__loading_countries" />
</LinearLayout>

View File

@@ -0,0 +1,100 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".registration.fragments.EnterCodeFragment">
<ScrollView
android:id="@+id/scroll_view"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:fillViewport="true">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context=".registration.fragments.EnterCodeFragment">
<Button
android:id="@+id/wrong_number"
style="@style/Button.Borderless.Registration"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_toEndOf="@id/call_me_count_down"
android:text="@string/RegistrationActivity_wrong_number"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/call_me_count_down"
app:layout_constraintTop_toBottomOf="@+id/code" />
<Button
android:id="@+id/no_code"
style="@style/Button.Borderless.Registration"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_toEndOf="@id/call_me_count_down"
android:text="@string/RegistrationActivity_contact_signal_support"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/call_me_count_down"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/wrong_number"
tools:visibility="visible" />
<TextView
android:id="@+id/verify_header"
style="@style/Signal.Text.Headline.Registration"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginStart="32dp"
android:layout_marginTop="40dp"
android:layout_marginEnd="32dp"
android:gravity="center"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="@string/RegistrationActivity_enter_the_code_we_sent_to_s" />
<org.thoughtcrime.securesms.components.registration.CallMeCountDownView
android:id="@+id/call_me_count_down"
style="@style/Button.Borderless.Registration"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/code"
app:layout_constraintEnd_toStartOf="@+id/wrong_number"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/wrong_number"
tools:text="@string/RegistrationActivity_call" />
<org.thoughtcrime.securesms.components.registration.VerificationCodeView
android:id="@+id/code"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="32dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/verify_header" />
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
<org.thoughtcrime.securesms.components.registration.VerificationPinKeyboard
android:id="@+id/keyboard"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>

View File

@@ -0,0 +1,134 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/scroll_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
tools:context=".registration.fragments.EnterPhoneNumberFragment">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="0dp">
<FrameLayout
android:id="@+id/country_spinner_frame"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginTop="24dp"
android:layout_marginEnd="32dp"
android:background="@drawable/labeled_edit_text_background_inactive"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/verify_subheader">
<Spinner
android:id="@+id/country_spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:textAlignment="viewStart" />
</FrameLayout>
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="32dp"
android:layoutDirection="ltr"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/country_spinner_frame">
<org.thoughtcrime.securesms.components.LabeledEditText
android:id="@+id/country_code"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="12dp"
android:layout_weight="1"
app:labeledEditText_background="@color/white"
app:labeledEditText_textLayout="@layout/country_code_text" />
<org.thoughtcrime.securesms.components.LabeledEditText
android:id="@+id/number"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="3"
app:labeledEditText_background="@color/white"
app:labeledEditText_label="Phone Number"
app:labeledEditText_textLayout="@layout/phone_text" />
</LinearLayout>
<TextView
android:id="@+id/verify_header"
style="@style/Signal.Text.Headline.Registration"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginStart="32dp"
android:layout_marginTop="40dp"
android:layout_marginEnd="32dp"
android:gravity="center"
android:text="@string/RegistrationActivity_enter_your_phone_number_to_get_started"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/verify_subheader"
style="@style/Signal.Text.Body.Registration"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="32dp"
android:gravity="center"
android:text="@string/RegistrationActivity_you_will_receive_a_verification_code"
app:layout_constraintTop_toBottomOf="@+id/verify_header"
tools:layout_editor_absoluteX="0dp" />
<Button
android:id="@+id/cancel_button"
style="@style/Button.Borderless.Registration"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp"
android:text="@android:string/cancel"
android:textColor="@color/core_grey_60"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/registerButton"
app:layout_constraintVertical_bias="0" />
<com.dd.CircularProgressButton
android:id="@+id/registerButton"
style="@style/Button.Registration"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="32dp"
android:layout_marginBottom="16dp"
app:cpb_textIdle="@string/RegistrationActivity_next"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout"
app:layout_constraintVertical_bias="0" />
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>

View File

@@ -0,0 +1,113 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
tools:context=".registration.fragments.RegistrationLockFragment">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="0dp">
<TextView
android:id="@+id/clarification_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="32dp"
android:gravity="center"
android:text="@string/registration_activity__the_registration_lock_pin_is_not_the_same_as_the_sms_verification_code_you_just_received_please_enter_the_pin_you_previously_configured_in_the_application"
android:textColor="#73B7F0"
android:visibility="invisible"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/verify_header"
tools:visibility="visible" />
<TextView
android:id="@+id/verify_header"
style="@style/Signal.Text.Headline.Registration"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginStart="32dp"
android:layout_marginTop="40dp"
android:layout_marginEnd="32dp"
android:gravity="center"
android:text="@string/RegistrationActivity_enter_your_phone_number_to_get_started"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/verify_subheader"
style="@style/Signal.Text.Body.Registration"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="32dp"
android:gravity="center"
android:text="@string/RegistrationActivity_you_will_receive_a_verification_code"
app:layout_constraintTop_toBottomOf="@+id/verify_header"
tools:layout_editor_absoluteX="0dp" />
<TextView
android:id="@+id/forgot_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="16dp"
android:padding="16dp"
android:text="@string/registration_activity__forgot_pin"
android:textColor="@color/blue_400"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/pinButton" />
<com.dd.CircularProgressButton
android:id="@+id/pinButton"
style="@style/Button.Registration"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
app:cpb_textIdle="@string/RegistrationActivity_continue"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textInputLayout" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="32dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/clarification_label">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/pin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:hint="@string/registration_activity__registration_lock_pin"
android:imeOptions="actionDone"
android:inputType="numberPassword" />
</com.google.android.material.textfield.TextInputLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>

View File

@@ -0,0 +1,107 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
tools:context=".registration.fragments.RestoreBackupFragment">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="0dp">
<Button
android:id="@+id/skip_restore_button"
style="@style/Button.Borderless.Registration"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="16dp"
android:paddingStart="30dp"
android:paddingTop="10dp"
android:paddingEnd="30dp"
android:paddingBottom="10dp"
android:text="@string/registration_activity__skip"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/restore_button" />
<TextView
android:id="@+id/verify_subheader"
style="@style/Signal.Text.Body.Registration"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="32dp"
android:gravity="center"
android:text="@string/RegistrationActivity_restore_your_messages_and_media_from_a_local_backup"
app:layout_constraintTop_toBottomOf="@+id/verify_header"
tools:layout_editor_absoluteX="0dp" />
<TextView
android:id="@+id/backup_created_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
app:layout_constraintStart_toStartOf="@+id/verify_subheader"
app:layout_constraintTop_toBottomOf="@+id/verify_subheader"
tools:text="Backup created: 1 min ago" />
<TextView
android:id="@+id/backup_size_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
app:layout_constraintStart_toStartOf="@+id/backup_created_text"
app:layout_constraintTop_toBottomOf="@+id/backup_created_text"
tools:text="Backup size: 899 KB" />
<TextView
android:id="@+id/backup_progress_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="16dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/backup_size_text"
tools:text="100 messages so far..." />
<TextView
android:id="@+id/verify_header"
style="@style/Signal.Text.Headline.Registration"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginStart="32dp"
android:layout_marginTop="40dp"
android:layout_marginEnd="32dp"
android:gravity="center"
android:text="@string/RegistrationActivity_restore_from_backup"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.dd.CircularProgressButton
android:id="@+id/restore_button"
style="@style/Button.Registration"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
app:cpb_textIdle="@string/registration_activity__restore_backup"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/backup_progress_text" />
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>

View File

@@ -1,29 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/image"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="32dp"
android:layout_marginTop="48dp"
android:layout_marginEnd="32dp"
android:layout_marginBottom="16dp"
android:layout_margin="16dp"
android:importantForAccessibility="no"
android:src="@drawable/welcome"
app:layout_constraintBottom_toTopOf="@+id/textView"
app:layout_constraintBottom_toTopOf="@+id/title"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView"
android:id="@+id/title"
style="@style/Signal.Text.Headline.Registration"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="80dp"
android:layout_marginBottom="40dp"
android:gravity="center"
android:text="@string/RegistrationActivity_take_privacy_with_you_be_yourself_in_every_message"
app:layout_constraintBottom_toTopOf="@+id/welcome_terms_button"
@@ -32,10 +30,10 @@
<TextView
android:id="@+id/welcome_terms_button"
style="@style/Signal.Text.Body.Registration"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="24dp"
style="@style/Signal.Text.Body"
android:text="@string/RegistrationActivity_terms_and_privacy"
android:textColor="@color/signal_primary"
app:layout_constraintBottom_toTopOf="@+id/welcome_continue_button"
@@ -44,19 +42,12 @@
<com.dd.CircularProgressButton
android:id="@+id/welcome_continue_button"
style="@style/Button.Registration"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginEnd="32dp"
android:layout_marginBottom="54dp"
android:background="@color/signal_primary"
android:textColor="@color/white"
android:elevation="4dp"
app:cpb_colorIndicator="@color/white"
app:cpb_colorProgress="@color/textsecure_primary"
app:cpb_cornerRadius="4dp"
app:cpb_selectorIdle="@drawable/progress_button_state"
android:layout_marginBottom="@dimen/registration_button_bottom_margin"
app:cpb_textIdle="@string/RegistrationActivity_continue"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/signal_primary">
<ImageView
android:id="@+id/watermark"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:importantForAccessibility="no"
android:src="@drawable/icon_transparent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintVertical_bias="0.4"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -12,4 +12,6 @@
android:background="@color/transparent"
android:singleLine="true"
android:inputType="phone"
android:saveEnabled="false"
android:hint="@string/RegistrationActivity_phone_number_description"
tools:text="867-5309" />

View File

@@ -1,333 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/white"
android:fillViewport="true"
tools:context=".RegistrationActivity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="40dp"
android:layout_marginStart="32dp"
android:layout_marginEnd="32dp"
android:layout_alignParentTop="true"
android:orientation="vertical">
<TextView
android:id="@+id/verify_header"
style="@style/Signal.Text.Headline.Registration"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:paddingBottom="16dp"
android:text="@string/RegistrationActivity_enter_your_phone_number_to_get_started" />
<TextView
android:id="@+id/verify_subheader"
style="@style/Signal.Text.Body"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingBottom="25dp"
android:text="@string/RegistrationActivity_you_will_receive_a_verification_code" />
</LinearLayout>
<LinearLayout
android:id="@+id/restore_container"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/header"
android:layout_marginTop="30dp"
android:layout_marginStart="32dp"
android:layout_marginEnd="32dp"
android:orientation="vertical"
android:paddingBottom="0dp"
android:visibility="invisible"
tools:visibility="gone">
<TextView
android:id="@+id/backup_created_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="Backup created: 1 min ago" />
<TextView
android:id="@+id/backup_size_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
tools:text="Backup size: 899 KB" />
<TextView
android:id="@+id/backup_progress_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="16dp"
tools:text="100 messages so far..." />
<com.dd.CircularProgressButton
android:id="@+id/restore_button"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:background="@color/signal_primary"
android:textColor="@color/white"
app:cpb_colorIndicator="@color/white"
app:cpb_colorProgress="@color/textsecure_primary"
app:cpb_cornerRadius="4dp"
app:cpb_selectorIdle="@drawable/progress_button_state"
app:cpb_textIdle="@string/registration_activity__restore_backup" />
<Button
android:id="@+id/skip_restore_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="13dp"
android:paddingStart="30dp"
android:paddingTop="10dp"
android:paddingEnd="30dp"
android:paddingBottom="10dp"
style="@style/Button.Borderless.Registration"
android:text="@string/registration_activity__skip" />
</LinearLayout>
<LinearLayout
android:id="@+id/registration_container"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/header"
android:layout_marginStart="32dp"
android:layout_marginTop="30dp"
android:layout_marginEnd="32dp"
android:animateLayoutChanges="true"
android:orientation="vertical"
android:paddingBottom="0dp"
android:clipToPadding="false"
android:clipChildren="false"
tools:visibility="gone">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:background="@drawable/labeled_edit_text_background_inactive">
<Spinner
android:id="@+id/country_spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="16dp" />
</FrameLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layoutDirection="ltr"
android:orientation="horizontal">
<org.thoughtcrime.securesms.components.LabeledEditText
android:id="@+id/country_code"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginEnd="12dp"
app:labeledEditText_background="@color/white"
app:labeledEditText_textLayout="@layout/country_code_text" />
<org.thoughtcrime.securesms.components.LabeledEditText
android:id="@+id/number"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="3"
app:labeledEditText_background="@color/white"
app:labeledEditText_label="Phone Number"
app:labeledEditText_textLayout="@layout/phone_text"/>
</LinearLayout>
<com.dd.CircularProgressButton
android:id="@+id/registerButton"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:background="@color/signal_primary"
android:textColor="@color/white"
app:cpb_colorIndicator="@color/white"
app:cpb_colorProgress="@color/textsecure_primary"
app:cpb_cornerRadius="4dp"
app:cpb_selectorIdle="@drawable/progress_button_state"
app:cpb_textIdle="@string/RegistrationActivity_next" />
<TextView
android:id="@+id/skip_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:text="@android:string/cancel"
android:textColor="@color/core_grey_60" />
</LinearLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/verification_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/header"
android:visibility="invisible"
tools:visibility="visible">
<org.thoughtcrime.securesms.components.registration.VerificationCodeView
android:id="@+id/code"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginStart="8dp"
android:layout_marginTop="24dp"
android:layout_marginEnd="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:vcv_inputColor="@color/core_black"
app:vcv_inputWidth="30dp"
app:vcv_spacing="10dp"
app:vcv_textColor="@color/core_black" />
<org.thoughtcrime.securesms.components.registration.CallMeCountDownView
android:id="@+id/call_me_count_down"
style="@style/Button.Borderless.Registration"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/code"
app:layout_constraintTop_toTopOf="@+id/wrong_number"
app:layout_constraintStart_toStartOf="@+id/code" />
<Button
android:id="@+id/wrong_number"
style="@style/Button.Borderless.Registration"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:layout_toEndOf="@id/call_me_count_down"
android:text="@string/RegistrationActivity_wrong_number"
app:layout_constraintEnd_toEndOf="@+id/code"
app:layout_constraintTop_toBottomOf="@+id/code" />
<org.thoughtcrime.securesms.components.registration.VerificationPinKeyboard
android:id="@+id/keyboard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout
android:id="@+id/pin_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/header"
android:animateLayoutChanges="true"
android:orientation="vertical"
android:paddingStart="16dp"
android:paddingTop="30dp"
android:paddingEnd="16dp"
android:paddingBottom="0dp"
android:visibility="invisible"
tools:visibility="gone">
<LinearLayout
android:id="@+id/pin_clarification_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="20dp"
android:layout_marginBottom="16dp"
android:orientation="horizontal"
android:visibility="gone"
tools:visibility="visible">
<TextView
android:id="@+id/clarification_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="5dp"
android:layout_marginTop="-2dp"
android:layout_marginEnd="5dp"
android:text="@string/registration_activity__the_registration_lock_pin_is_not_the_same_as_the_sms_verification_code_you_just_received_please_enter_the_pin_you_previously_configured_in_the_application"
android:textColor="#73B7F0" />
</LinearLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:paddingStart="100dp"
android:paddingEnd="100dp">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/pin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/registration_activity__registration_lock_pin"
android:imeOptions="actionDone"
android:inputType="numberPassword" />
</com.google.android.material.textfield.TextInputLayout>
<com.dd.CircularProgressButton
android:id="@+id/pinButton"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_gravity="center_horizontal"
android:layout_marginStart="16dp"
android:layout_marginTop="40dp"
android:layout_marginEnd="16dp"
android:background="@color/signal_primary"
android:textColor="@color/white"
app:cpb_colorIndicator="@color/white"
app:cpb_colorProgress="@color/textsecure_primary"
app:cpb_cornerRadius="4dp"
app:cpb_selectorIdle="@drawable/progress_button_state"
app:cpb_textIdle="@string/RegistrationActivity_continue" />
<TextView
android:id="@+id/forgot_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:padding="15dp"
android:text="@string/registration_activity__forgot_pin"
android:textColor="@color/blue_400" />
</LinearLayout>
</RelativeLayout>
</ScrollView>

View File

@@ -1,135 +1,154 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center">
android:layout_gravity="center"
android:layoutDirection="ltr">
<LinearLayout
<FrameLayout
android:id="@+id/container_zero"
android:layout_width="48dp"
android:layout_height="54dp"
android:gravity="center"
android:orientation="vertical"
android:background="@drawable/labeled_edit_text_background_inactive">
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="@drawable/labeled_edit_text_background_inactive"
app:layout_constraintDimensionRatio="w,1:1"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/code_zero"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="28dp"
tools:text="1" />
android:layout_gravity="center"
android:textColor="@color/core_black"
android:textSize="28sp"
tools:text="0" />
</LinearLayout>
</FrameLayout>
<LinearLayout
<FrameLayout
android:id="@+id/container_one"
android:layout_width="48dp"
android:layout_height="54dp"
android:layout_marginStart="5dp"
android:gravity="center"
android:orientation="vertical"
android:background="@drawable/labeled_edit_text_background_inactive">
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:background="@drawable/labeled_edit_text_background_inactive"
app:layout_constraintDimensionRatio="w,1:1"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/container_zero"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/code_one"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="28dp"
tools:text="2" />
android:layout_gravity="center"
android:textColor="@color/core_black"
android:textSize="28sp"
tools:text="1" />
</LinearLayout>
</FrameLayout>
<LinearLayout
<FrameLayout
android:id="@+id/container_two"
android:layout_width="48dp"
android:layout_height="54dp"
android:layout_marginStart="5dp"
android:gravity="center"
android:orientation="vertical"
android:background="@drawable/labeled_edit_text_background_inactive">
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:background="@drawable/labeled_edit_text_background_inactive"
app:layout_constraintDimensionRatio="w,1:1"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/container_one"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/code_two"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="28dp"
android:layout_gravity="center"
android:textColor="@color/core_black"
android:textSize="28sp"
tools:text="2" />
</LinearLayout>
</FrameLayout>
<LinearLayout
android:id="@+id/separator_container"
<TextView
android:id="@+id/separator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:gravity="center_horizontal"
android:layout_gravity="center"
android:orientation="vertical">
android:layout_marginStart="4dp"
android:text="-"
android:textColor="@color/core_black"
android:textSize="28sp"
app:layout_constraintStart_toEndOf="@+id/container_two"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="HardcodedText" />
<TextView
android:id="@+id/separator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="-"
android:textSize="28dp" />
</LinearLayout>
<LinearLayout
<FrameLayout
android:id="@+id/container_three"
android:layout_width="48dp"
android:layout_height="54dp"
android:layout_marginStart="5dp"
android:gravity="center"
android:orientation="vertical"
android:background="@drawable/labeled_edit_text_background_inactive">
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:background="@drawable/labeled_edit_text_background_inactive"
app:layout_constraintDimensionRatio="w,1:1"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/separator"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/code_three"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="28dp"
tools:text="2" />
android:layout_gravity="center"
android:textColor="@color/core_black"
android:textSize="28sp"
tools:text="3" />
</LinearLayout>
</FrameLayout>
<LinearLayout
<FrameLayout
android:id="@+id/container_four"
android:layout_width="48dp"
android:layout_height="54dp"
android:layout_marginStart="5dp"
android:gravity="center"
android:orientation="vertical"
android:background="@drawable/labeled_edit_text_background_inactive">
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:background="@drawable/labeled_edit_text_background_inactive"
app:layout_constraintDimensionRatio="w,1:1"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/container_three"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/code_four"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="28dp"
tools:text="2" />
android:layout_gravity="center"
android:textColor="@color/core_black"
android:textSize="28sp"
tools:text="4" />
</LinearLayout>
</FrameLayout>
<LinearLayout
<FrameLayout
android:id="@+id/container_five"
android:layout_width="48dp"
android:layout_height="54dp"
android:layout_marginStart="5dp"
android:gravity="center"
android:orientation="vertical"
android:background="@drawable/labeled_edit_text_background_inactive">
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:background="@drawable/labeled_edit_text_background_inactive"
app:layout_constraintDimensionRatio="w,1:1"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/container_four"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/code_five"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="28dp"
android:gravity="center"
tools:text="2" />
android:layout_gravity="center"
android:textColor="@color/core_black"
android:textSize="28sp"
tools:text="5" />
</LinearLayout>
</FrameLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>