From 85c38bc0782740f57bf37fb552ce7c5835da209d Mon Sep 17 00:00:00 2001 From: Kholoud Mohamed Date: Thu, 18 Apr 2024 13:27:42 +0000 Subject: [PATCH] Fix incorrect password attempts messaging on headless Bug: 257276847 Test: manual Flag: ACONFIG android.app.admin.flags.headless_single_user_fixes DISABLED Change-Id: I2fb70d99203228ce4ee36f84eb4dfed36fa6fd8c --- Android.bp | 1 + .../password/ConfirmDeviceCredentialBaseFragment.java | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Android.bp b/Android.bp index 8a86d67bb5f..1d713a8561b 100644 --- a/Android.bp +++ b/Android.bp @@ -112,6 +112,7 @@ android_library { "androidx.test.rules", "telephony_flags_core_java_lib", "setupdesign-lottie-loading-layout", + "device_policy_aconfig_flags_lib", ], plugins: ["androidx.room_room-compiler-plugin"], diff --git a/src/com/android/settings/password/ConfirmDeviceCredentialBaseFragment.java b/src/com/android/settings/password/ConfirmDeviceCredentialBaseFragment.java index 2af360a1215..cfee9805740 100644 --- a/src/com/android/settings/password/ConfirmDeviceCredentialBaseFragment.java +++ b/src/com/android/settings/password/ConfirmDeviceCredentialBaseFragment.java @@ -27,6 +27,7 @@ import android.app.KeyguardManager; import android.app.RemoteLockscreenValidationSession; import android.app.admin.DevicePolicyManager; import android.app.admin.ManagedSubscriptionsPolicy; +import android.app.admin.flags.Flags; import android.content.ComponentName; import android.content.Context; import android.content.DialogInterface; @@ -374,7 +375,14 @@ public abstract class ConfirmDeviceCredentialBaseFragment extends InstrumentedFr private int getUserTypeForWipe() { final UserInfo userToBeWiped = mUserManager.getUserInfo( mDevicePolicyManager.getProfileWithMinimumFailedPasswordsForWipe(mEffectiveUserId)); - if (userToBeWiped == null || userToBeWiped.isPrimary()) { + UserHandle primaryUser = UserHandle.SYSTEM; + if (Flags.headlessSingleUserFixes()) { + UserHandle mainUser = mUserManager.getMainUser(); + if (mainUser != null ) { + primaryUser = mainUser; + } + } + if (userToBeWiped == null || userToBeWiped.getUserHandle().equals(primaryUser)) { return USER_TYPE_PRIMARY; } else if (userToBeWiped.isManagedProfile()) { return USER_TYPE_MANAGED_PROFILE;