Implement SFPS “require screen on to auth”

Creates new setting on SFPS to require screen on before unlocking a
device. Also sets up toggles for this setting at the end of fingerprint
enrollment and on the fingerprint settings page, and adds tests to
verify expected behavior.

Test: make RunSettingsRoboTests ROBOTEST_FILTER=FingerprintSettingsRequireScreenOnToAuthPreferenceControllerTest
Fixes: 249169615
Fixes: 245343077
Fixes: 248530806
Change-Id: Id588796426d071860b3cc2af9ec5798c0027c202
This commit is contained in:
Grace Cheng
2022-10-06 11:44:26 +00:00
parent ffb2e56f6d
commit 0f0f35b2dd
10 changed files with 623 additions and 10 deletions

View File

@@ -55,16 +55,20 @@
android:src="@drawable/sfps_enroll_finish" />
</com.google.android.setupdesign.view.FillContentLayout>
<!-- Added to align elements with fingerprint_enroll_enrolling_base -->
<TextView
style="@style/TextAppearance.ErrorText"
<Space
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1" />
<com.android.settings.biometrics.fingerprint.FingerprintRequireScreenOnToAuthToggle
style="@style/SudSwitchStyle"
android:id="@+id/require_screen_on_to_auth_toggle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|bottom"
android:visibility="invisible" />
android:layout_gravity="center_horizontal|bottom" />
</LinearLayout>
</LinearLayout>
</com.google.android.setupdesign.GlifLayout>
</com.google.android.setupdesign.GlifLayout>

View File

@@ -0,0 +1,79 @@
<!--
~ Copyright (C) 2022 The Android Open Source Project
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="?attr/fingerprint_layout_theme">
<!-- Top divider -->
<View
android:layout_alignParentTop="true"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="?android:attr/listDivider" />
<!-- Title -->
<com.google.android.setupdesign.view.RichTextView
android:id="@+id/title"
android:paddingHorizontal="8dp"
android:paddingTop="8dp"
android:paddingBottom="4dp"
android:gravity="start"
android:layout_alignParentStart="true"
android:layout_toStartOf="@+id/toggle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/security_settings_require_screen_on_to_auth_title"
android:textColor="?android:attr/textColorPrimary"
android:textSize="@dimen/sud_description_text_size"
/>
<!-- Subtitle -->
<TextView
android:id="@+id/subtitle"
android:paddingHorizontal="8dp"
android:paddingBottom="8dp"
android:layout_alignParentStart="true"
android:layout_toStartOf="@+id/toggle"
android:layout_below="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/security_settings_require_screen_on_to_auth_description"
android:textColor="?android:attr/textColorSecondary"/>
<!-- Vertical divider -->
<View
android:layout_centerVertical="true"
android:layout_alignTop="@+id/toggle"
android:layout_alignBottom="@+id/toggle"
android:layout_toStartOf="@+id/toggle"
android:layout_width="1dp"
android:layout_height="wrap_content"
android:background="?android:attr/listDivider" />
<!-- Toggle -->
<Switch
android:layout_alignParentEnd="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/toggle"
android:layout_centerVertical="true"
android:checked="false"/>
</RelativeLayout>