Files
app_Settings/res/layout/confirm_lock_password_expressive.xml
lbill 986da1de41 Customize Expressivie style TextInputLayout for ConfirmLockPassword
Config the GlifV4Theme.DayNight theme for following activities
- SetupChooseLockPassword/ChooseLockPassword
- SetupChooseLockPattern/ChooseLockPattern
- ConfirmLockPassword
- ConfirmLockPattern

Refine the Theme API usage, only use SUW provided API
- ThemeHelper.shouldApplyGlifExpressiveStyle()
- ThemeHelper.trySetSuwTheme()

Tweak ConfirmLockPassword layout
- Use TextInputLayout
- Integrate TextInputLayout

Tweak ChooseLockPassword layout space issue
- Fix the layout issue of ChooseLockPassowrd, the space is not enough
- Use LinearLayoutWithDefaultTouchRecepient for Choose Lock password

Note: Revert ag/30164668, ag/30075453

Flag: EXEMPT for expressive style customization
Bug: 400365073
Bug: 420356036
Test: atest ChooseLockPasswordTest
Test: atest ChooseLockPatternTest
Test: atest ConfirmLockPasswordTest
Test: manual trigger confirm lock activity and check the UI
Test: adb shell am start -a android.settings.BIOMETRIC_ENROLL --ei
      android.provider.extra.BIOMETRIC_AUTHENTICATORS_ALLOWED 32768
Test: atest ConfirmLockPasswordTest
Change-Id: Ib3301d2bc6372b6614a67fcc507b25a8b6f3c22c
2025-06-03 18:17:59 -07:00

118 lines
4.9 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2025 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.
-->
<com.google.android.setupdesign.GlifLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/setup_wizard_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:icon="@drawable/ic_lock"
android:importantForAutofill="noExcludeDescendants"
app:sudUseBottomProgressBar="true">
<com.android.internal.widget.LinearLayoutWithDefaultTouchRecepient
style="@style/SudContentFrame"
android:id="@+id/topLayout"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Space
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<LinearLayout
android:theme="@style/Theme.LockPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:clipChildren="false"
android:clipToPadding="false"
android:orientation="vertical"
android:layoutMode="opticalBounds">
<!-- Password entry field -->
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/password_entry_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dip"
style="@style/TextAppearance.PasswordEntry">
<com.android.settings.widget.ImeAwareTextInputEditText
android:id="@+id/password_entry"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:imeOptions="actionNext|flagNoExtractUi|flagForceAscii"
style="@style/LockPasswordTextInputEditTextStyle"/>
</com.google.android.material.textfield.TextInputLayout>
<TextView
android:id="@+id/errorText"
style="@style/TextAppearance.ErrorText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginStart="12dp"
android:layout_marginEnd="12dp"
android:accessibilityLiveRegion="polite"/>
</LinearLayout>
<Space
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<CheckBox
android:id="@+id/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="48dp"
android:layout_marginStart="?attr/sudMarginStart"
android:layout_marginEnd="?attr/sudMarginEnd"
android:layout_marginTop="12dp"
android:layout_gravity="center_horizontal"
android:visibility="gone"
android:checked="true" />
<Button
android:id="@+id/cancelButton"
style="@style/SudGlifButton.Secondary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="?attr/sudMarginStart"
android:layout_marginEnd="?attr/sudMarginEnd"
android:layout_marginBottom="80dp"
android:layout_gravity="center_horizontal"
android:text="@string/cancel" />
<Button
android:id="@+id/emergencyCallButton"
style="@style/WorkChallengeEmergencyButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="?attr/sudMarginStart"
android:layout_marginEnd="?attr/sudMarginEnd"
android:layout_marginBottom="12dp"
android:visibility="gone"
android:layout_gravity="center_horizontal"
android:text="@string/work_challenge_emergency_button_text"/>
</com.android.internal.widget.LinearLayoutWithDefaultTouchRecepient>
</com.google.android.setupdesign.GlifLayout>