Login screens: ensure forms are scrollable on small screens

This commit is contained in:
Benoit Marty 2019-11-22 11:17:50 +01:00
parent 3f83c161e4
commit 489a594027
13 changed files with 674 additions and 611 deletions

View File

@ -12,123 +12,127 @@
tools:ignore="ContentDescription,MissingConstraints" />
<!-- Missing attributes are in the style -->
<!--suppress AndroidDomInspection -->
<LinearLayout
style="@style/LoginFormContainer"
android:orientation="vertical"
<androidx.core.widget.NestedScrollView
style="@style/LoginFormScrollView"
tools:ignore="MissingConstraints">
<ImageView
android:id="@+id/loginServerIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:src="@drawable/ic_logo_matrix_org" />
<LinearLayout
style="@style/LoginFormContainer"
android:orientation="vertical">
<TextView
android:id="@+id/loginTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:textAppearance="@style/TextAppearance.Vector.Login.Title"
tools:text="@string/login_signin_to" />
<TextView
android:id="@+id/loginNotice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:gravity="start"
android:textAppearance="@style/TextAppearance.Vector.Login.Text.Small"
tools:text="@string/login_server_matrix_org_text" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/loginFieldTil"
style="@style/VectorTextInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:hint="@string/login_signup_username_hint"
app:errorEnabled="true">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/loginField"
android:layout_width="match_parent"
<ImageView
android:id="@+id/loginServerIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:maxLines="1" />
tools:src="@drawable/ic_logo_matrix_org" />
</com.google.android.material.textfield.TextInputLayout>
<TextView
android:id="@+id/loginTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:textAppearance="@style/TextAppearance.Vector.Login.Title"
tools:text="@string/login_signin_to" />
<FrameLayout
android:id="@+id/passwordContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp">
<TextView
android:id="@+id/loginNotice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:gravity="start"
android:textAppearance="@style/TextAppearance.Vector.Login.Text.Small"
tools:text="@string/login_server_matrix_org_text" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/passwordFieldTil"
android:id="@+id/loginFieldTil"
style="@style/VectorTextInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/login_signup_password_hint"
app:errorEnabled="true"
app:errorIconDrawable="@null">
android:layout_marginTop="32dp"
android:hint="@string/login_signup_username_hint"
app:errorEnabled="true">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/passwordField"
android:id="@+id/loginField"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPassword"
android:maxLines="1"
android:paddingEnd="48dp"
android:paddingRight="48dp"
tools:ignore="RtlSymmetry" />
android:inputType="textEmailAddress"
android:maxLines="1" />
</com.google.android.material.textfield.TextInputLayout>
<ImageView
android:id="@+id/passwordReveal"
android:layout_width="@dimen/layout_touch_size"
android:layout_height="@dimen/layout_touch_size"
android:layout_gravity="end"
android:layout_marginTop="8dp"
android:background="?attr/selectableItemBackground"
android:scaleType="center"
android:src="@drawable/ic_eye_black"
android:tint="?attr/colorAccent"
tools:contentDescription="@string/a11y_show_password" />
</FrameLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="22dp"
android:orientation="horizontal">
<com.google.android.material.button.MaterialButton
android:id="@+id/forgetPasswordButton"
style="@style/Style.Vector.Login.Button.Text"
android:layout_width="wrap_content"
<FrameLayout
android:id="@+id/passwordContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:text="@string/auth_forgot_password" />
android:layout_marginTop="16dp">
<com.google.android.material.button.MaterialButton
android:id="@+id/loginSubmit"
style="@style/Style.Vector.Login.Button"
android:layout_width="wrap_content"
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/passwordFieldTil"
style="@style/VectorTextInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/login_signup_password_hint"
app:errorEnabled="true"
app:errorIconDrawable="@null">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/passwordField"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPassword"
android:maxLines="1"
android:paddingEnd="48dp"
android:paddingRight="48dp"
tools:ignore="RtlSymmetry" />
</com.google.android.material.textfield.TextInputLayout>
<ImageView
android:id="@+id/passwordReveal"
android:layout_width="@dimen/layout_touch_size"
android:layout_height="@dimen/layout_touch_size"
android:layout_gravity="end"
android:layout_marginTop="8dp"
android:background="?attr/selectableItemBackground"
android:scaleType="center"
android:src="@drawable/ic_eye_black"
android:tint="?attr/colorAccent"
tools:contentDescription="@string/a11y_show_password" />
</FrameLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_gravity="end"
android:text="@string/auth_login"
tools:enabled="false"
tools:ignore="RelativeOverlap" />
android:layout_marginTop="22dp"
android:orientation="horizontal">
</RelativeLayout>
<com.google.android.material.button.MaterialButton
android:id="@+id/forgetPasswordButton"
style="@style/Style.Vector.Login.Button.Text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:text="@string/auth_forgot_password" />
</LinearLayout>
<com.google.android.material.button.MaterialButton
android:id="@+id/loginSubmit"
style="@style/Style.Vector.Login.Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_gravity="end"
android:text="@string/auth_login"
tools:enabled="false"
tools:ignore="RelativeOverlap" />
</RelativeLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -11,8 +11,9 @@
tools:ignore="ContentDescription,MissingConstraints" />
<!-- Missing attributes are in the style -->
<!-- No scroll view in the screen, but use the style -->
<LinearLayout
style="@style/LoginFormContainer"
style="@style/LoginFormScrollView"
android:layout_height="0dp"
android:orientation="vertical"
android:paddingStart="16dp"
@ -45,10 +46,10 @@
android:id="@+id/loginCaptchaProgress"
android:layout_width="60dp"
android:layout_height="60dp"
app:layout_constraintBottom_toBottomOf="@id/loginFormContainer"
app:layout_constraintEnd_toEndOf="@id/loginFormContainer"
app:layout_constraintStart_toStartOf="@id/loginFormContainer"
app:layout_constraintTop_toTopOf="@id/loginFormContainer" />
app:layout_constraintBottom_toBottomOf="@id/loginFormScrollView"
app:layout_constraintEnd_toEndOf="@id/loginFormScrollView"
app:layout_constraintStart_toStartOf="@id/loginFormScrollView"
app:layout_constraintTop_toTopOf="@id/loginFormScrollView" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -12,86 +12,91 @@
tools:ignore="ContentDescription,MissingConstraints" />
<!-- Missing attributes are in the style -->
<LinearLayout
style="@style/LoginFormContainer"
android:orientation="vertical"
<androidx.core.widget.NestedScrollView
style="@style/LoginFormScrollView"
tools:ignore="MissingConstraints">
<TextView
android:id="@+id/loginGenericTextInputFormTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="@style/TextAppearance.Vector.Login.Title"
tools:text="@string/login_set_email_title" />
<LinearLayout
style="@style/LoginFormContainer"
android:orientation="vertical">
<TextView
android:id="@+id/loginGenericTextInputFormNotice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:layout_marginBottom="26dp"
android:gravity="start"
android:textAppearance="@style/TextAppearance.Vector.Login.Text.Small"
tools:text="@string/login_set_email_notice" />
<TextView
android:id="@+id/loginGenericTextInputFormNotice2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="start"
android:textAppearance="@style/TextAppearance.Vector.Login.Text.Small"
android:visibility="gone"
tools:text="@string/login_set_msisdn_notice2"
tools:visibility="visible" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/loginGenericTextInputFormTil"
style="@style/VectorTextInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:errorEnabled="true"
tools:hint="@string/login_set_email_optional_hint">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/loginGenericTextInputFormTextInput"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:imeOptions="actionDone"
android:maxLines="1"
tools:inputType="textEmailAddress" />
</com.google.android.material.textfield.TextInputLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:orientation="horizontal">
<com.google.android.material.button.MaterialButton
android:id="@+id/loginGenericTextInputFormOtherButton"
style="@style/Style.Vector.Login.Button.Text"
<TextView
android:id="@+id/loginGenericTextInputFormTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:textAppearance="@style/TextAppearance.Vector.Login.Title"
tools:text="@string/login_set_email_title" />
<TextView
android:id="@+id/loginGenericTextInputFormNotice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:layout_marginBottom="26dp"
android:gravity="start"
android:textAppearance="@style/TextAppearance.Vector.Login.Text.Small"
tools:text="@string/login_set_email_notice" />
<TextView
android:id="@+id/loginGenericTextInputFormNotice2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="start"
android:textAppearance="@style/TextAppearance.Vector.Login.Text.Small"
android:visibility="gone"
tools:text="@string/login_msisdn_confirm_send_again"
tools:text="@string/login_set_msisdn_notice2"
tools:visibility="visible" />
<com.google.android.material.button.MaterialButton
android:id="@+id/loginGenericTextInputFormSubmit"
style="@style/Style.Vector.Login.Button"
android:layout_width="wrap_content"
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/loginGenericTextInputFormTil"
style="@style/VectorTextInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_gravity="end"
android:enabled="false"
tools:ignore="RelativeOverlap"
tools:text="@string/login_set_email_submit" />
app:errorEnabled="true"
tools:hint="@string/login_set_email_optional_hint">
</RelativeLayout>
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/loginGenericTextInputFormTextInput"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:imeOptions="actionDone"
android:maxLines="1"
tools:inputType="textEmailAddress" />
</LinearLayout>
</com.google.android.material.textfield.TextInputLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:orientation="horizontal">
<com.google.android.material.button.MaterialButton
android:id="@+id/loginGenericTextInputFormOtherButton"
style="@style/Style.Vector.Login.Button.Text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:visibility="gone"
tools:text="@string/login_msisdn_confirm_send_again"
tools:visibility="visible" />
<com.google.android.material.button.MaterialButton
android:id="@+id/loginGenericTextInputFormSubmit"
style="@style/Style.Vector.Login.Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_gravity="end"
android:enabled="false"
tools:ignore="RelativeOverlap"
tools:text="@string/login_set_email_submit" />
</RelativeLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -11,97 +11,102 @@
tools:ignore="ContentDescription,MissingConstraints" />
<!-- Missing attributes are in the style -->
<LinearLayout
style="@style/LoginFormContainer"
android:orientation="vertical"
<androidx.core.widget.NestedScrollView
style="@style/LoginFormScrollView"
tools:ignore="MissingConstraints">
<TextView
android:id="@+id/resetPasswordTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="@style/TextAppearance.Vector.Login.Title"
tools:text="@string/login_reset_password_on" />
<LinearLayout
style="@style/LoginFormContainer"
android:orientation="vertical">
<TextView
android:id="@+id/loginNotice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:gravity="start"
android:text="@string/login_reset_password_notice"
android:textAppearance="@style/TextAppearance.Vector.Login.Text.Small" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/resetPasswordEmailTil"
style="@style/VectorTextInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:hint="@string/login_reset_password_email_hint"
app:errorEnabled="true">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/resetPasswordEmail"
android:layout_width="match_parent"
<TextView
android:id="@+id/resetPasswordTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:maxLines="1" />
android:textAppearance="@style/TextAppearance.Vector.Login.Title"
tools:text="@string/login_reset_password_on" />
</com.google.android.material.textfield.TextInputLayout>
<FrameLayout
android:id="@+id/passwordContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp">
<TextView
android:id="@+id/loginNotice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:gravity="start"
android:text="@string/login_reset_password_notice"
android:textAppearance="@style/TextAppearance.Vector.Login.Text.Small" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/passwordFieldTil"
android:id="@+id/resetPasswordEmailTil"
style="@style/VectorTextInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/login_reset_password_password_hint"
app:errorEnabled="true"
app:errorIconDrawable="@null">
android:layout_marginTop="32dp"
android:hint="@string/login_reset_password_email_hint"
app:errorEnabled="true">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/passwordField"
android:id="@+id/resetPasswordEmail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPassword"
android:maxLines="1"
android:paddingEnd="48dp"
android:paddingRight="48dp"
tools:ignore="RtlSymmetry" />
android:inputType="textEmailAddress"
android:maxLines="1" />
</com.google.android.material.textfield.TextInputLayout>
<ImageView
android:id="@+id/passwordReveal"
android:layout_width="@dimen/layout_touch_size"
android:layout_height="@dimen/layout_touch_size"
<FrameLayout
android:id="@+id/passwordContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp">
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/passwordFieldTil"
style="@style/VectorTextInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/login_reset_password_password_hint"
app:errorEnabled="true"
app:errorIconDrawable="@null">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/passwordField"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPassword"
android:maxLines="1"
android:paddingEnd="48dp"
android:paddingRight="48dp"
tools:ignore="RtlSymmetry" />
</com.google.android.material.textfield.TextInputLayout>
<ImageView
android:id="@+id/passwordReveal"
android:layout_width="@dimen/layout_touch_size"
android:layout_height="@dimen/layout_touch_size"
android:layout_gravity="end"
android:layout_marginTop="8dp"
android:background="?attr/selectableItemBackground"
android:scaleType="center"
android:src="@drawable/ic_eye_black"
android:tint="?attr/colorAccent"
tools:contentDescription="@string/a11y_show_password" />
</FrameLayout>
<com.google.android.material.button.MaterialButton
android:id="@+id/resetPasswordSubmit"
style="@style/Style.Vector.Login.Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_marginTop="8dp"
android:background="?attr/selectableItemBackground"
android:scaleType="center"
android:src="@drawable/ic_eye_black"
android:tint="?attr/colorAccent"
tools:contentDescription="@string/a11y_show_password" />
android:text="@string/login_reset_password_submit"
tools:ignore="RelativeOverlap" />
</FrameLayout>
</LinearLayout>
<com.google.android.material.button.MaterialButton
android:id="@+id/resetPasswordSubmit"
style="@style/Style.Vector.Login.Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:text="@string/login_reset_password_submit"
tools:ignore="RelativeOverlap" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -10,42 +10,47 @@
tools:ignore="ContentDescription,MissingConstraints" />
<!-- Missing attributes are in the style -->
<LinearLayout
style="@style/LoginFormContainer"
android:orientation="vertical"
<androidx.core.widget.NestedScrollView
style="@style/LoginFormScrollView"
tools:ignore="MissingConstraints">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/login_reset_password_mail_confirmation_title"
android:textAppearance="@style/TextAppearance.Vector.Login.Title" />
<LinearLayout
style="@style/LoginFormContainer"
android:orientation="vertical">
<TextView
android:id="@+id/resetPasswordMailConfirmationNotice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:textAppearance="@style/TextAppearance.Vector.Login.Text.Small"
tools:text="@string/login_reset_password_mail_confirmation_notice" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/login_reset_password_mail_confirmation_title"
android:textAppearance="@style/TextAppearance.Vector.Login.Title" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:text="@string/login_reset_password_mail_confirmation_notice_2"
android:textAppearance="@style/TextAppearance.Vector.Login.Text.Small" />
<TextView
android:id="@+id/resetPasswordMailConfirmationNotice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:textAppearance="@style/TextAppearance.Vector.Login.Text.Small"
tools:text="@string/login_reset_password_mail_confirmation_notice" />
<com.google.android.material.button.MaterialButton
android:id="@+id/resetPasswordMailConfirmationSubmit"
style="@style/Style.Vector.Login.Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:text="@string/login_reset_password_mail_confirmation_submit" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:text="@string/login_reset_password_mail_confirmation_notice_2"
android:textAppearance="@style/TextAppearance.Vector.Login.Text.Small" />
</LinearLayout>
<com.google.android.material.button.MaterialButton
android:id="@+id/resetPasswordMailConfirmationSubmit"
style="@style/Style.Vector.Login.Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:text="@string/login_reset_password_mail_confirmation_submit" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -10,42 +10,47 @@
tools:ignore="ContentDescription,MissingConstraints" />
<!-- Missing attributes are in the style -->
<LinearLayout
style="@style/LoginFormContainer"
android:orientation="vertical"
<androidx.core.widget.NestedScrollView
style="@style/LoginFormScrollView"
tools:ignore="MissingConstraints">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/login_reset_password_success_title"
android:textAppearance="@style/TextAppearance.Vector.Login.Title" />
<LinearLayout
style="@style/LoginFormContainer"
android:orientation="vertical">
<TextView
android:id="@+id/resetPasswordSuccessNotice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:text="@string/login_reset_password_success_notice"
android:textAppearance="@style/TextAppearance.Vector.Login.Text.Small" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/login_reset_password_success_title"
android:textAppearance="@style/TextAppearance.Vector.Login.Title" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:text="@string/login_reset_password_success_notice_2"
android:textAppearance="@style/TextAppearance.Vector.Login.Text.Small" />
<TextView
android:id="@+id/resetPasswordSuccessNotice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:text="@string/login_reset_password_success_notice"
android:textAppearance="@style/TextAppearance.Vector.Login.Text.Small" />
<com.google.android.material.button.MaterialButton
android:id="@+id/resetPasswordSuccessSubmit"
style="@style/Style.Vector.Login.Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:text="@string/login_reset_password_success_submit" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:text="@string/login_reset_password_success_notice_2"
android:textAppearance="@style/TextAppearance.Vector.Login.Text.Small" />
</LinearLayout>
<com.google.android.material.button.MaterialButton
android:id="@+id/resetPasswordSuccessSubmit"
style="@style/Style.Vector.Login.Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:text="@string/login_reset_password_success_submit" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -1,188 +1,195 @@
<?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">
<!-- Missing attributes are in the style -->
<ImageView
style="@style/LoginLogo"
android:transitionName="loginLogoTransition" />
android:transitionName="loginLogoTransition"
tools:ignore="ContentDescription,MissingConstraints,UnusedAttribute" />
<androidx.constraintlayout.widget.ConstraintLayout
style="@style/LoginFormContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!-- Missing attributes are in the style -->
<androidx.core.widget.NestedScrollView
style="@style/LoginFormScrollView"
tools:ignore="MissingConstraints">
<TextView
android:id="@+id/loginServerTitle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/login_server_title"
android:textAppearance="@style/TextAppearance.Vector.Login.Title"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/loginServerText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:gravity="start"
android:text="@string/login_server_text"
android:textAppearance="@style/TextAppearance.Vector.Login.Text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/loginServerTitle" />
<im.vector.riotx.core.platform.CheckableConstraintLayout
android:id="@+id/loginServerChoiceMatrixOrg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:background="@drawable/bg_login_server_selector"
android:contentDescription="@string/login_a11y_choose_matrix_org"
android:minHeight="80dp"
android:paddingStart="@dimen/layout_horizontal_margin"
android:paddingEnd="@dimen/layout_horizontal_margin"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/loginServerText">
<ImageView
android:id="@+id/loginServerChoiceMatrixOrgIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:importantForAccessibility="no"
android:src="@drawable/ic_logo_matrix_org"
app:layout_constraintBottom_toTopOf="@+id/loginServerChoiceMatrixOrgText"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed" />
<androidx.constraintlayout.widget.ConstraintLayout style="@style/LoginFormContainer">
<TextView
android:id="@+id/loginServerChoiceMatrixOrgText"
android:id="@+id/loginServerTitle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="@string/login_server_title"
android:textAppearance="@style/TextAppearance.Vector.Login.Title"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/loginServerText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:gravity="start"
android:text="@string/login_server_matrix_org_text"
android:textAppearance="@style/TextAppearance.Vector.Login.Text.Small"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/loginServerChoiceMatrixOrgIcon" />
</im.vector.riotx.core.platform.CheckableConstraintLayout>
<im.vector.riotx.core.platform.CheckableConstraintLayout
android:id="@+id/loginServerChoiceModular"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:background="@drawable/bg_login_server_selector"
android:contentDescription="@string/login_a11y_choose_modular"
android:minHeight="80dp"
android:paddingStart="@dimen/layout_horizontal_margin"
android:paddingEnd="0dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/loginServerChoiceMatrixOrg">
<ImageView
android:id="@+id/loginServerChoiceModularIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:importantForAccessibility="no"
android:src="@drawable/ic_logo_modular"
app:layout_constraintBottom_toTopOf="@+id/loginServerChoiceModularText"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed" />
<TextView
android:id="@+id/loginServerChoiceModularText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="7dp"
android:gravity="start"
android:text="@string/login_server_modular_text"
android:textAppearance="@style/TextAppearance.Vector.Login.Text.Small"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/loginServerChoiceModularLearnMore"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/loginServerChoiceModularIcon" />
<TextView
android:id="@+id/loginServerChoiceModularLearnMore"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:padding="16dp"
android:text="@string/login_server_modular_learn_more"
android:textAppearance="@style/TextAppearance.Vector.Login.Text.Small"
android:textColor="@color/riotx_accent"
app:layout_constraintBottom_toBottomOf="@+id/loginServerChoiceModularText"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/loginServerChoiceModularText" />
</im.vector.riotx.core.platform.CheckableConstraintLayout>
<im.vector.riotx.core.platform.CheckableConstraintLayout
android:id="@+id/loginServerChoiceOther"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:background="@drawable/bg_login_server_selector"
android:contentDescription="@string/login_a11y_choose_other"
android:minHeight="80dp"
android:paddingStart="@dimen/layout_horizontal_margin"
android:paddingEnd="@dimen/layout_horizontal_margin"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/loginServerChoiceModular">
<TextView
android:id="@+id/loginServerChoiceOtherTitle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="start"
android:text="@string/login_server_other_title"
android:text="@string/login_server_text"
android:textAppearance="@style/TextAppearance.Vector.Login.Text"
android:textColor="?riotx_text_primary"
android:textSize="16sp"
app:layout_constraintBottom_toTopOf="@+id/loginServerChoiceOtherText"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed" />
app:layout_constraintTop_toBottomOf="@+id/loginServerTitle" />
<TextView
android:id="@+id/loginServerChoiceOtherText"
<im.vector.riotx.core.platform.CheckableConstraintLayout
android:id="@+id/loginServerChoiceMatrixOrg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:background="@drawable/bg_login_server_selector"
android:contentDescription="@string/login_a11y_choose_matrix_org"
android:minHeight="80dp"
android:paddingStart="@dimen/layout_horizontal_margin"
android:paddingEnd="@dimen/layout_horizontal_margin"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/loginServerText">
<ImageView
android:id="@+id/loginServerChoiceMatrixOrgIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:importantForAccessibility="no"
android:src="@drawable/ic_logo_matrix_org"
app:layout_constraintBottom_toTopOf="@+id/loginServerChoiceMatrixOrgText"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed" />
<TextView
android:id="@+id/loginServerChoiceMatrixOrgText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:gravity="start"
android:text="@string/login_server_matrix_org_text"
android:textAppearance="@style/TextAppearance.Vector.Login.Text.Small"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/loginServerChoiceMatrixOrgIcon" />
</im.vector.riotx.core.platform.CheckableConstraintLayout>
<im.vector.riotx.core.platform.CheckableConstraintLayout
android:id="@+id/loginServerChoiceModular"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:background="@drawable/bg_login_server_selector"
android:contentDescription="@string/login_a11y_choose_modular"
android:minHeight="80dp"
android:paddingStart="@dimen/layout_horizontal_margin"
android:paddingEnd="0dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/loginServerChoiceMatrixOrg">
<ImageView
android:id="@+id/loginServerChoiceModularIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:importantForAccessibility="no"
android:src="@drawable/ic_logo_modular"
app:layout_constraintBottom_toTopOf="@+id/loginServerChoiceModularText"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed" />
<TextView
android:id="@+id/loginServerChoiceModularText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="7dp"
android:gravity="start"
android:text="@string/login_server_modular_text"
android:textAppearance="@style/TextAppearance.Vector.Login.Text.Small"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/loginServerChoiceModularLearnMore"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/loginServerChoiceModularIcon" />
<TextView
android:id="@+id/loginServerChoiceModularLearnMore"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:padding="16dp"
android:text="@string/login_server_modular_learn_more"
android:textAppearance="@style/TextAppearance.Vector.Login.Text.Small"
android:textColor="@color/riotx_accent"
app:layout_constraintBottom_toBottomOf="@+id/loginServerChoiceModularText"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/loginServerChoiceModularText" />
</im.vector.riotx.core.platform.CheckableConstraintLayout>
<im.vector.riotx.core.platform.CheckableConstraintLayout
android:id="@+id/loginServerChoiceOther"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:background="@drawable/bg_login_server_selector"
android:contentDescription="@string/login_a11y_choose_other"
android:minHeight="80dp"
android:paddingStart="@dimen/layout_horizontal_margin"
android:paddingEnd="@dimen/layout_horizontal_margin"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/loginServerChoiceModular">
<TextView
android:id="@+id/loginServerChoiceOtherTitle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="start"
android:text="@string/login_server_other_title"
android:textAppearance="@style/TextAppearance.Vector.Login.Text"
android:textColor="?riotx_text_primary"
android:textSize="16sp"
app:layout_constraintBottom_toTopOf="@+id/loginServerChoiceOtherText"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed" />
<TextView
android:id="@+id/loginServerChoiceOtherText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:gravity="start"
android:text="@string/login_server_other_text"
android:textAppearance="@style/TextAppearance.Vector.Login.Text.Small"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/loginServerChoiceOtherTitle" />
</im.vector.riotx.core.platform.CheckableConstraintLayout>
<com.google.android.material.button.MaterialButton
android:id="@+id/loginServerSubmit"
style="@style/Style.Vector.Login.Button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:gravity="start"
android:text="@string/login_server_other_text"
android:textAppearance="@style/TextAppearance.Vector.Login.Text.Small"
android:layout_marginTop="24dp"
android:text="@string/login_continue"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/loginServerChoiceOtherTitle" />
app:layout_constraintTop_toBottomOf="@+id/loginServerChoiceOther" />
</im.vector.riotx.core.platform.CheckableConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.button.MaterialButton
android:id="@+id/loginServerSubmit"
style="@style/Style.Vector.Login.Button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:text="@string/login_continue"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/loginServerChoiceOther" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.core.widget.NestedScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -12,81 +12,87 @@
tools:ignore="ContentDescription,MissingConstraints" />
<!-- Missing attributes are in the style -->
<LinearLayout
style="@style/LoginFormContainer"
android:orientation="vertical"
<androidx.core.widget.NestedScrollView
style="@style/LoginFormScrollView"
tools:ignore="MissingConstraints">
<ImageView
android:id="@+id/loginServerUrlFormIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:importantForAccessibility="no"
android:src="@drawable/ic_logo_modular" />
<LinearLayout
style="@style/LoginFormContainer"
android:orientation="vertical">
<TextView
android:id="@+id/loginServerUrlFormTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="27dp"
android:textAppearance="@style/TextAppearance.Vector.Login.Title"
tools:text="@string/login_connect_to_modular" />
<ImageView
android:id="@+id/loginServerUrlFormIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:importantForAccessibility="no"
android:src="@drawable/ic_logo_modular" />
<TextView
android:id="@+id/loginServerUrlFormText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:gravity="start"
android:textAppearance="@style/TextAppearance.Vector.Login.Text"
tools:text="@string/login_server_url_form_modular_text" />
<TextView
android:id="@+id/loginServerUrlFormTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="27dp"
android:textAppearance="@style/TextAppearance.Vector.Login.Title"
tools:text="@string/login_connect_to_modular" />
<TextView
android:id="@+id/loginServerUrlFormLearnMore"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:text="@string/login_server_modular_learn_more"
android:textAppearance="@style/TextAppearance.Vector.Login.Text"
android:textColor="@color/riotx_accent" />
<TextView
android:id="@+id/loginServerUrlFormText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:gravity="start"
android:textAppearance="@style/TextAppearance.Vector.Login.Text"
tools:text="@string/login_server_url_form_modular_text" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/loginServerUrlFormHomeServerUrlTil"
style="@style/VectorTextInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="26dp"
app:errorEnabled="true"
tools:hint="@string/login_server_url_form_modular_hint">
<TextView
android:id="@+id/loginServerUrlFormLearnMore"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:text="@string/login_server_modular_learn_more"
android:textAppearance="@style/TextAppearance.Vector.Login.Text"
android:textColor="@color/riotx_accent" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/loginServerUrlFormHomeServerUrl"
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/loginServerUrlFormHomeServerUrlTil"
style="@style/VectorTextInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:imeOptions="actionDone"
android:inputType="textUri"
android:maxLines="1" />
android:layout_marginTop="26dp"
app:errorEnabled="true"
tools:hint="@string/login_server_url_form_modular_hint">
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/loginServerUrlFormHomeServerUrl"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:imeOptions="actionDone"
android:inputType="textUri"
android:maxLines="1" />
<TextView
android:id="@+id/loginServerUrlFormNotice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:gravity="start"
android:textAppearance="@style/TextAppearance.Vector.Login.Text.Small"
tools:text="@string/login_server_url_form_modular_notice" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.button.MaterialButton
android:id="@+id/loginServerUrlFormSubmit"
style="@style/Style.Vector.Login.Button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_marginTop="22dp"
android:text="@string/login_continue" />
</LinearLayout>
<TextView
android:id="@+id/loginServerUrlFormNotice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:gravity="start"
android:textAppearance="@style/TextAppearance.Vector.Login.Text.Small"
tools:text="@string/login_server_url_form_modular_notice" />
<com.google.android.material.button.MaterialButton
android:id="@+id/loginServerUrlFormSubmit"
style="@style/Style.Vector.Login.Button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_marginTop="22dp"
android:text="@string/login_continue" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -11,73 +11,76 @@
tools:ignore="ContentDescription,MissingConstraints" />
<!-- Missing attributes are in the style -->
<androidx.constraintlayout.widget.ConstraintLayout
style="@style/LoginFormContainer"
<androidx.core.widget.NestedScrollView
style="@style/LoginFormScrollView"
tools:ignore="MissingConstraints">
<ImageView
android:id="@+id/loginSignupSigninServerIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:importantForAccessibility="no"
android:visibility="gone"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:src="@drawable/ic_logo_matrix_org"
tools:visibility="visible" />
<androidx.constraintlayout.widget.ConstraintLayout style="@style/LoginFormContainer">
<TextView
android:id="@+id/loginSignupSigninTitle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="27dp"
android:textAppearance="@style/TextAppearance.Vector.Login.Title"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/loginSignupSigninServerIcon"
app:layout_goneMarginTop="172dp"
tools:text="@string/login_connect_to" />
<ImageView
android:id="@+id/loginSignupSigninServerIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:importantForAccessibility="no"
android:visibility="gone"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:src="@drawable/ic_logo_matrix_org"
tools:visibility="visible" />
<TextView
android:id="@+id/loginSignupSigninText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="27dp"
android:gravity="start"
android:textAppearance="@style/TextAppearance.Vector.Login.Text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/loginSignupSigninTitle"
tools:text="@string/login_server_matrix_org_text" />
<TextView
android:id="@+id/loginSignupSigninTitle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="27dp"
android:textAppearance="@style/TextAppearance.Vector.Login.Title"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/loginSignupSigninServerIcon"
app:layout_goneMarginTop="172dp"
tools:text="@string/login_connect_to" />
<!-- Sign up or sign in SSO -->
<com.google.android.material.button.MaterialButton
android:id="@+id/loginSignupSigninSubmit"
style="@style/Style.Vector.Login.Button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="38dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/loginSignupSigninText"
tools:text="@string/login_signup" />
<TextView
android:id="@+id/loginSignupSigninText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="27dp"
android:gravity="start"
android:textAppearance="@style/TextAppearance.Vector.Login.Text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/loginSignupSigninTitle"
tools:text="@string/login_server_matrix_org_text" />
<!-- Sign in or gone -->
<com.google.android.material.button.MaterialButton
android:id="@+id/loginSignupSigninSignIn"
style="@style/Style.Vector.Login.Button.Outlined"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="14dp"
android:text="@string/login_signin"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/loginSignupSigninSubmit"
tools:visibility="visible" />
<!-- Sign up or sign in SSO -->
<com.google.android.material.button.MaterialButton
android:id="@+id/loginSignupSigninSubmit"
style="@style/Style.Vector.Login.Button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="38dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/loginSignupSigninText"
tools:text="@string/login_signup" />
</androidx.constraintlayout.widget.ConstraintLayout>
<!-- Sign in or gone -->
<com.google.android.material.button.MaterialButton
android:id="@+id/loginSignupSigninSignIn"
style="@style/Style.Vector.Login.Button.Outlined"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="14dp"
android:text="@string/login_signin"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/loginSignupSigninSubmit"
tools:visibility="visible" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.core.widget.NestedScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -12,8 +12,10 @@
<!-- Missing attributes are in the style -->
<androidx.constraintlayout.widget.ConstraintLayout
style="@style/LoginFormContainer"
style="@style/LoginFormScrollView"
android:layout_height="0dp"
android:paddingTop="32dp"
android:paddingBottom="32dp"
tools:ignore="MissingConstraints">
<TextView
@ -21,6 +23,8 @@
style="@style/TextAppearance.Vector.Login.Title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="36dp"
android:paddingEnd="36dp"
android:text="@string/login_terms_title"
app:layout_constraintTop_toTopOf="parent" />
@ -30,6 +34,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:paddingStart="36dp"
android:paddingEnd="36dp"
android:text="@string/auth_accept_policies"
app:layout_constraintTop_toBottomOf="@+id/loginTermsTitle" />
@ -46,10 +52,12 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/loginTermsSubmit"
style="@style/Style.Vector.Login.Button"
android:layout_marginEnd="36dp"
android:text="@string/accept"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -11,36 +11,41 @@
tools:ignore="ContentDescription,MissingConstraints" />
<!-- Missing attributes are in the style -->
<LinearLayout
style="@style/LoginFormContainer"
android:orientation="vertical"
<androidx.core.widget.NestedScrollView
style="@style/LoginFormScrollView"
tools:ignore="MissingConstraints">
<TextView
android:id="@+id/loginWaitForEmailTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/login_wait_for_email_title"
android:textAppearance="@style/TextAppearance.Vector.Login.Title" />
<LinearLayout
style="@style/LoginFormContainer"
android:orientation="vertical">
<TextView
android:id="@+id/loginWaitForEmailNotice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:gravity="start"
android:textAppearance="@style/TextAppearance.Vector.Login.Text"
tools:text="@string/login_wait_for_email_notice" />
<TextView
android:id="@+id/loginWaitForEmailTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/login_wait_for_email_title"
android:textAppearance="@style/TextAppearance.Vector.Login.Title" />
<ProgressBar
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="220dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="16dp"
android:indeterminate="true" />
<TextView
android:id="@+id/loginWaitForEmailNotice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:gravity="start"
android:textAppearance="@style/TextAppearance.Vector.Login.Text"
tools:text="@string/login_wait_for_email_notice" />
</LinearLayout>
<ProgressBar
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="220dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="16dp"
android:indeterminate="true" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -5,7 +5,9 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:foreground="?attr/selectableItemBackground"
android:minHeight="72dp">
android:minHeight="72dp"
android:paddingStart="16dp"
android:paddingEnd="16dp">
<com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/adapter_item_policy_checkbox"

View File

@ -9,6 +9,7 @@
</style>
<item name="loginLogo" type="id" />
<item name="loginFormScrollView" type="id" />
<item name="loginFormContainer" type="id" />
<style name="LoginLogoBase">
@ -26,19 +27,25 @@
<item name="android:layout_marginTop">32dp</item>
</style>
<style name="LoginFormContainerBase">
<style name="LoginFormContainer">
<item name="android:id">@id/loginFormContainer</item>
<item name="layout_constraintEnd_toEndOf">parent</item>
<item name="layout_constraintBottom_toBottomOf">parent</item>
<item name="android:paddingTop">32dp</item>
<item name="android:paddingBottom">32dp</item>
<item name="android:paddingStart">36dp</item>
<item name="android:paddingEnd">36dp</item>
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
</style>
<style name="LoginFormScrollViewBase">
<item name="android:id">@id/loginFormScrollView</item>
<item name="layout_constraintEnd_toEndOf">parent</item>
<item name="layout_constraintBottom_toBottomOf">parent</item>
<item name="android:layout_width">0dp</item>
<item name="android:layout_height">wrap_content</item>
</style>
<style name="LoginFormContainer" parent="LoginFormContainerBase">
<style name="LoginFormScrollView" parent="LoginFormScrollViewBase">
<item name="layout_constraintTop_toBottomOf">@id/loginLogo</item>
<item name="layout_constraintStart_toStartOf">parent</item>
</style>