diff options
7 files changed, 160 insertions, 87 deletions
diff --git a/packages/SystemUI/res/drawable/auth_dialog_enterprise.xml b/packages/SystemUI/res/drawable/auth_dialog_enterprise.xml new file mode 100644 index 000000000000..c547c52a4077 --- /dev/null +++ b/packages/SystemUI/res/drawable/auth_dialog_enterprise.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2020 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. + --> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24.0" + android:viewportHeight="24.0"> + <path + android:pathData="M20,6h-4L16,4c0,-1.11 -0.89,-2 -2,-2h-4c-1.11,0 -2,0.89 -2,2v2L4,6c-1.11,0 -1.99,0.89 -1.99,2L2,19c0,1.11 0.89,2 2,2h16c1.11,0 2,-0.89 2,-2L22,8c0,-1.11 -0.89,-2 -2,-2zM12,15c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2 2,0.9 2,2 -0.9,2 -2,2zM14,6h-4L10,4h4v2z" + android:fillColor="?android:attr/colorAccent"/> +</vector>
\ No newline at end of file diff --git a/packages/SystemUI/res/layout-land/auth_credential_pattern_view.xml b/packages/SystemUI/res/layout-land/auth_credential_pattern_view.xml index c3fa39e5a87f..c40e47df9a55 100644 --- a/packages/SystemUI/res/layout-land/auth_credential_pattern_view.xml +++ b/packages/SystemUI/res/layout-land/auth_credential_pattern_view.xml @@ -34,20 +34,15 @@ android:layout_weight="1"/> <ImageView - android:layout_width="32dp" - android:layout_height="32dp" - android:background="@drawable/auth_dialog_lock"/> + android:id="@+id/icon" + android:layout_width="wrap_content" + android:layout_height="wrap_content"/> <TextView android:id="@+id/title" - android:fontFamily="@*android:string/config_headlineFontFamilyMedium" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginHorizontal="24dp" - android:layout_marginTop="12dp" - android:textSize="20sp" - android:gravity="center" - android:textColor="?android:attr/textColorPrimary"/> + style="@style/TextAppearance.AuthCredential.Title"/> <TextView android:id="@+id/subtitle" @@ -63,17 +58,41 @@ android:id="@+id/description" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginHorizontal="24dp" - android:layout_marginTop="8dp" - android:gravity="center" - android:textSize="16sp" - android:textColor="?android:attr/textColorPrimary"/> + style="@style/TextAppearance.AuthCredential.Description"/> <Space android:layout_width="0dp" android:layout_height="0dp" android:layout_weight="1"/> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:gravity="center" + android:paddingLeft="0dp" + android:paddingRight="0dp" + android:paddingTop="0dp" + android:paddingBottom="16dp" + android:clipToPadding="false"> + + <FrameLayout + android:layout_width="wrap_content" + android:layout_height="0dp" + android:layout_weight="1" + style="@style/LockPatternContainerStyle"> + + <com.android.internal.widget.LockPatternView + android:id="@+id/lockPattern" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_gravity="center" + style="@style/LockPatternStyleBiometricPrompt"/> + + </FrameLayout> + <TextView android:id="@+id/error" android:layout_width="match_parent" @@ -90,24 +109,4 @@ </LinearLayout> - <LinearLayout - android:layout_width="0dp" - android:layout_height="match_parent" - android:layout_weight="1" - android:orientation="vertical" - android:gravity="center"> - - <com.android.internal.widget.LockPatternView - android:id="@+id/lockPattern" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginLeft="40dp" - android:layout_marginRight="40dp" - android:layout_gravity="center" - android:clipChildren="false" - android:clipToPadding="false" - style="@style/LockPatternStyleBiometricPrompt"/> - - </LinearLayout> - </com.android.systemui.biometrics.AuthCredentialPatternView>
\ No newline at end of file diff --git a/packages/SystemUI/res/layout/auth_credential_password_view.xml b/packages/SystemUI/res/layout/auth_credential_password_view.xml index 4aed0333e9ca..a1c593fa455c 100644 --- a/packages/SystemUI/res/layout/auth_credential_password_view.xml +++ b/packages/SystemUI/res/layout/auth_credential_password_view.xml @@ -28,20 +28,15 @@ android:layout_weight="1"/> <ImageView - android:layout_width="32dp" - android:layout_height="32dp" - android:background="@drawable/auth_dialog_lock"/> + android:id="@+id/icon" + android:layout_width="wrap_content" + android:layout_height="wrap_content"/> <TextView android:id="@+id/title" - android:fontFamily="@*android:string/config_headlineFontFamilyMedium" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginHorizontal="24dp" - android:layout_marginTop="12dp" - android:textSize="20sp" - android:gravity="center" - android:textColor="?android:attr/textColorPrimary"/> + style="@style/TextAppearance.AuthCredential.Title"/> <TextView android:id="@+id/subtitle" @@ -57,11 +52,7 @@ android:id="@+id/description" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginHorizontal="24dp" - android:layout_marginTop="8dp" - android:gravity="center" - android:textSize="16sp" - android:textColor="?android:attr/textColorPrimary"/> + style="@style/TextAppearance.AuthCredential.Description"/> <Space android:layout_width="0dp" @@ -79,19 +70,14 @@ <EditText android:id="@+id/lockPassword" - android:layout_marginBottom="20dp" - android:layout_marginLeft="100dp" - android:layout_marginRight="100dp" android:layout_width="208dp" android:layout_height="wrap_content" - android:layout_gravity="center" + android:layout_gravity="center_horizontal" android:gravity="center" android:inputType="textPassword" android:maxLength="500" - android:textSize="16sp" - android:textAppearance="?android:attr/textAppearanceMedium" - android:imeOptions="flagForceAscii" - style="@style/LockPatternStyleBiometricPrompt"/> + android:imeOptions="actionNext|flagNoFullscreen|flagForceAscii" + style="@style/TextAppearance.AuthCredential.PasswordEntry"/> <Space android:layout_width="0dp" diff --git a/packages/SystemUI/res/layout/auth_credential_pattern_view.xml b/packages/SystemUI/res/layout/auth_credential_pattern_view.xml index c9edcd606277..eda5ecbf7f8c 100644 --- a/packages/SystemUI/res/layout/auth_credential_pattern_view.xml +++ b/packages/SystemUI/res/layout/auth_credential_pattern_view.xml @@ -28,20 +28,15 @@ android:layout_weight="1"/> <ImageView - android:layout_width="32dp" - android:layout_height="32dp" - android:background="@drawable/auth_dialog_lock"/> + android:id="@+id/icon" + android:layout_width="wrap_content" + android:layout_height="wrap_content"/> <TextView android:id="@+id/title" - android:fontFamily="@*android:string/config_headlineFontFamilyMedium" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginHorizontal="24dp" - android:layout_marginTop="12dp" - android:textSize="20sp" - android:gravity="center" - android:textColor="?android:attr/textColorPrimary"/> + style="@style/TextAppearance.AuthCredential.Title"/> <TextView android:id="@+id/subtitle" @@ -57,37 +52,49 @@ android:id="@+id/description" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginHorizontal="24dp" - android:layout_marginTop="8dp" - android:gravity="center" - android:textSize="16sp" - android:textColor="?android:attr/textColorPrimary"/> + style="@style/TextAppearance.AuthCredential.Description"/> <Space android:layout_width="0dp" android:layout_height="0dp" - android:layout_weight="3"/> + android:layout_weight="1"/> - <TextView - android:id="@+id/error" + <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginHorizontal="24dp" - android:textSize="16sp" + android:orientation="vertical" android:gravity="center" - android:textColor="?android:attr/colorError"/> + android:paddingLeft="0dp" + android:paddingRight="0dp" + android:paddingTop="0dp" + android:paddingBottom="16dp" + android:clipToPadding="false"> - <com.android.internal.widget.LockPatternView - android:id="@+id/lockPattern" - android:layout_marginBottom="20dp" - android:layout_marginLeft="40dp" - android:layout_marginRight="40dp" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="center" - android:clipChildren="false" - android:clipToPadding="false" - style="@style/LockPatternStyleBiometricPrompt"/> + <FrameLayout + android:layout_width="wrap_content" + android:layout_height="0dp" + android:layout_weight="1" + style="@style/LockPatternContainerStyle"> + + <com.android.internal.widget.LockPatternView + android:id="@+id/lockPattern" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_gravity="center" + style="@style/LockPatternStyleBiometricPrompt"/> + + </FrameLayout> + + <TextView + android:id="@+id/error" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginHorizontal="24dp" + android:textSize="16sp" + android:gravity="center" + android:textColor="?android:attr/colorError"/> + + </LinearLayout> <Space android:layout_width="0dp" diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml index 10f59a423805..6cde90c6c996 100644 --- a/packages/SystemUI/res/values/styles.xml +++ b/packages/SystemUI/res/values/styles.xml @@ -234,6 +234,37 @@ <style name="TextAppearance.DeviceManagementDialog.Title" parent="@android:style/TextAppearance.DeviceDefault.DialogWindowTitle"/> + <style name="TextAppearance.AuthCredential"> + <item name="android:gravity">center_horizontal</item> + <item name="android:fontFamily">google-sans</item> + <item name="android:textAlignment">gravity</item> + <item name="android:layout_gravity">top</item> + <item name="android:textColor">?android:attr/textColorPrimary</item> + </style> + + <style name="TextAppearance.AuthCredential.Title"> + <item name="android:layout_marginBottom">2dp</item> + <item name="android:layout_marginLeft">24dp</item> + <item name="android:layout_marginRight">24dp</item> + <item name="android:layout_marginTop">16dp</item> + <item name="android:textSize">24sp</item> + </style> + + <style name="TextAppearance.AuthCredential.Description"> + <item name="android:layout_marginBottom">12dp</item> + <item name="android:layout_marginStart">40dp</item> + <item name="android:layout_marginEnd">40dp</item> + <item name="android:layout_marginTop">3dp</item> + <item name="android:textSize">16sp</item> + </style> + + <style name="TextAppearance.AuthCredential.PasswordEntry" parent="@android:style/TextAppearance.DeviceDefault"> + <item name="android:gravity">center</item> + <item name="android:singleLine">true</item> + <item name="android:textColor">?android:attr/colorForeground</item> + <item name="android:textSize">24sp</item> + </style> + <style name="DeviceManagementDialogTitle"> <item name="android:gravity">center</item> <item name="android:textAppearance">@style/TextAppearance.DeviceManagementDialog.Title</item> @@ -297,6 +328,16 @@ <item name="android:textColor">?attr/wallpaperTextColor</item> </style> + <style name="LockPatternContainerStyle"> + <item name="android:maxHeight">400dp</item> + <item name="android:maxWidth">420dp</item> + <item name="android:minHeight">0dp</item> + <item name="android:minWidth">0dp</item> + <item name="android:paddingBottom">0dp</item> + <item name="android:paddingHorizontal">44dp</item> + <item name="android:paddingTop">0dp</item> + </style> + <style name="LockPatternStyle"> <item name="*android:regularColor">?attr/wallpaperTextColor</item> <item name="*android:successColor">?attr/wallpaperTextColor</item> diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthBiometricView.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthBiometricView.java index 044c5a027dac..7dea7f83f0c6 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthBiometricView.java +++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthBiometricView.java @@ -664,6 +664,7 @@ public abstract class AuthBiometricView extends LinearLayout { setTextOrHide(mSubtitleView, mBiometricPromptBundle.getString(BiometricPrompt.KEY_SUBTITLE)); + setTextOrHide(mDescriptionView, mBiometricPromptBundle.getString(BiometricPrompt.KEY_DESCRIPTION)); diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthCredentialView.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthCredentialView.java index 8f2cf70a8184..68b05e358786 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthCredentialView.java +++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthCredentialView.java @@ -17,6 +17,7 @@ package com.android.systemui.biometrics; import android.content.Context; +import android.graphics.drawable.Drawable; import android.hardware.biometrics.BiometricPrompt; import android.os.AsyncTask; import android.os.Bundle; @@ -28,6 +29,7 @@ import android.text.TextUtils; import android.util.AttributeSet; import android.view.View; import android.view.accessibility.AccessibilityManager; +import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; @@ -56,6 +58,7 @@ public abstract class AuthCredentialView extends LinearLayout { private TextView mTitleView; private TextView mSubtitleView; private TextView mDescriptionView; + private ImageView mIconView; protected TextView mErrorView; protected @Utils.CredentialType int mCredentialType; @@ -176,6 +179,16 @@ public abstract class AuthCredentialView extends LinearLayout { setTextOrHide(mDescriptionView, mBiometricPromptBundle.getString(BiometricPrompt.KEY_DESCRIPTION)); + final boolean isManagedProfile = Utils.isManagedProfile(mContext, mEffectiveUserId); + final Drawable image; + if (isManagedProfile) { + image = getResources().getDrawable(R.drawable.auth_dialog_enterprise, + mContext.getTheme()); + } else { + image = getResources().getDrawable(R.drawable.auth_dialog_lock, mContext.getTheme()); + } + mIconView.setImageDrawable(image); + // Only animate this if we're transitioning from a biometric view. if (mShouldAnimateContents) { setTranslationY(getResources() @@ -207,6 +220,7 @@ public abstract class AuthCredentialView extends LinearLayout { mTitleView = findViewById(R.id.title); mSubtitleView = findViewById(R.id.subtitle); mDescriptionView = findViewById(R.id.description); + mIconView = findViewById(R.id.icon); mErrorView = findViewById(R.id.error); } |