Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c41e408a authored by Maurice Lam's avatar Maurice Lam
Browse files

Refactor choose lock password scrolling

Replace the negative margin + inset background hack with a overriding
call to requestRectangleOnScreen, which will also make a best effort
to show all the password requirements if there are multiple of them.

Bug: 38236574
Test: Added ScrollToParentEditTextTest
Change-Id: Id570652b64434b2d0b25c231540375d93884aaa9
parent 6f33a52d
Loading
Loading
Loading
Loading
+26 −26
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@
    <include layout="@layout/confirm_lock_background_base" />

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/topLayout"
        android:orientation="vertical"
        android:layout_width="match_parent"
@@ -45,18 +44,12 @@
            android:layout_marginEnd="24dp"
            android:layout_marginTop="8dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />

        <View
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"/>
            android:layout_height="wrap_content"/>

        <FrameLayout
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:orientation="horizontal">
            android:layout_height="0dp"
            android:layout_weight="1">

            <Button
                style="@android:style/Widget.Material.Button.Borderless"
@@ -69,11 +62,17 @@
                android:layout_marginEnd="8dp"
                android:layout_marginBottom="14dp"/>

            <EditText android:id="@+id/password_entry"
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:gravity="center_horizontal"
                android:orientation="vertical">

                <com.android.settings.widget.ScrollToParentEditText
                    android:id="@+id/password_entry"
                    android:layout_width="208dp"
                    android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal|bottom"
                android:layout_marginBottom="26dp"
                    android:inputType="textPassword"
                    android:imeOptions="actionNext|flagNoFullscreen|flagForceAscii"
                    android:gravity="center"
@@ -85,9 +84,10 @@
                    android:id="@+id/errorText"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal|bottom"
                    android:layout_marginBottom="10dp"/>

            </LinearLayout>

            <ImageView
                android:id="@+id/fingerprintIcon"
                android:layout_gravity="end|bottom"
+18 −17
Original line number Diff line number Diff line
@@ -42,8 +42,17 @@
            android:lines="2"
            android:textAppearance="?android:attr/textAppearanceMedium"/>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:clipChildren="false"
            android:clipToPadding="false"
            android:orientation="vertical"
            android:paddingBottom="8dp">

            <!-- Password entry field -->
        <EditText android:id="@+id/password_entry"
            <com.android.settings.widget.ScrollToParentEditText
                android:id="@+id/password_entry"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
@@ -53,14 +62,6 @@
                android:textSize="24sp"
                style="@style/TextAppearance.PasswordEntry"/>

        <LinearLayout
                android:id="@+id/bottom_container"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:clipChildren="false"
                android:clipToPadding="false"
                android:orientation="vertical">

            <android.support.v7.widget.RecyclerView
                android:id="@+id/password_requirements_view"
                android:layout_width="match_parent"
+28 −22
Original line number Diff line number Diff line
@@ -47,8 +47,7 @@
            android:layout_marginEnd="?attr/confirmDeviceCredentialsSideMargin"
            android:layout_marginTop="12dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />
            android:layout_height="wrap_content" />

        <Button
            style="@android:style/Widget.Material.Button.Borderless"
@@ -64,12 +63,16 @@
              android:layout_height="0dp"
              android:layout_weight="1"/>

        <EditText
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:orientation="vertical">

            <com.android.settings.widget.ScrollToParentEditText
                android:id="@+id/password_entry"
                android:layout_width="208dp"
                android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="-40dp"
                android:inputType="textPassword"
                android:imeOptions="actionNext|flagNoFullscreen|flagForceAscii"
                android:gravity="center"
@@ -81,12 +84,15 @@
                android:accessibilityLiveRegion="polite"
                android:id="@+id/errorText"
                android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:layout_gravity="center_horizontal"
                android:layout_height="wrap_content"
                android:layout_marginStart="12dp"
            android:layout_marginEnd="12dp"
            android:gravity="center_vertical"/>
                android:layout_marginEnd="12dp"/>

        </LinearLayout>

        <View android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"/>

        <ImageView
            android:id="@+id/fingerprintIcon"
+27 −34
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:icon="@drawable/ic_lock"
    android:layout="@layout/suw_glif_blank_template"
    android:importantForAutofill="noExcludeDescendants">

    <com.android.internal.widget.LinearLayoutWithDefaultTouchRecepient
@@ -28,19 +27,6 @@
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ImageView
            android:id="@+id/suw_layout_icon"
            style="@style/SuwGlifIcon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_lock" />

        <TextView
            android:id="@+id/headerText"
            style="@style/SuwGlifHeaderTitle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

        <TextView
            android:id="@+id/detailsText"
            style="@style/SuwDescription.Glif"
@@ -54,12 +40,17 @@
            android:layout_height="0dp"
            android:layout_weight="1" />

        <EditText
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:orientation="vertical">

            <com.android.settings.widget.ScrollToParentEditText
                android:id="@+id/password_entry"
                android:layout_width="208dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
            android:layout_marginTop="-40dp"
                android:inputType="textPassword"
                android:imeOptions="actionNext|flagNoFullscreen|flagForceAscii"
                android:gravity="center"
@@ -67,16 +58,18 @@
                style="@style/TextAppearance.PasswordEntry"/>

            <TextView
            style="@style/TextAppearance.ConfirmDeviceCredentialsErrorText"
            android:accessibilityLiveRegion="polite"
                android:id="@+id/errorText"
                style="@style/TextAppearance.ConfirmDeviceCredentialsErrorText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:accessibilityLiveRegion="polite"/>

        </LinearLayout>

        <Space
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:layout_gravity="center_horizontal"
            android:layout_marginStart="12dp"
            android:layout_marginEnd="12dp"
            android:gravity="center_vertical"/>
            android:layout_weight="1" />

        <ImageView
            android:id="@+id/fingerprintIcon"
+0 −3
Original line number Diff line number Diff line
@@ -300,9 +300,6 @@
    <dimen name="support_spacer_height">8dp</dimen>

    <dimen name="password_requirement_textsize">14sp</dimen>
    <!-- Visible vertical space we want to show below password edittext field when ime is shown.
         The unit is sp as it is related to the text size of password requirement item. -->
    <dimen name="visible_vertical_space_below_password">20sp</dimen>

    <!-- Padding for the escalation card in normal dimens -->
    <dimen name="support_escalation_card_padding_start">40dp</dimen>
Loading