From c5e07bb662e8a4f5972b1a119e0464e4c4212ef7 Mon Sep 17 00:00:00 2001 From: Manish Singh Date: Tue, 12 Mar 2024 16:36:25 +0000 Subject: [PATCH] Don't show private accounts when locked screen recoriding - https://drive.google.com/file/d/1_QzXJgISWhiYFGOGQkqDw6ZMxlVmojH_/view?usp=drive_link&resourcekey=0-64S56eFqFukR2ez4yKQlpQ Bug: 324574475 Test: manual Change-Id: I08eafbd66ee81d2ea539993d2d96c28b89a6dad0 --- src/com/android/settings/MainClear.java | 11 +++++++++++ src/com/android/settings/Utils.java | 10 ++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/com/android/settings/MainClear.java b/src/com/android/settings/MainClear.java index 7b96d42b912..acf25d5b078 100644 --- a/src/com/android/settings/MainClear.java +++ b/src/com/android/settings/MainClear.java @@ -17,6 +17,7 @@ package com.android.settings; import static android.app.admin.DevicePolicyResources.Strings.Settings.PERSONAL_CATEGORY_HEADER; +import static android.app.admin.DevicePolicyResources.Strings.Settings.PRIVATE_CATEGORY_HEADER; import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_CATEGORY_HEADER; import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; @@ -505,6 +506,9 @@ public class MainClear extends InstrumentedFragment implements OnGlobalLayoutLis final UserInfo userInfo = profiles.get(profileIndex); final int profileId = userInfo.id; final UserHandle userHandle = new UserHandle(profileId); + if (Utils.shouldHideUser(userHandle, um)) { + continue; + } Account[] accounts = mgr.getAccountsAsUser(profileId); final int accountLength = accounts.length; if (accountLength == 0) { @@ -529,6 +533,13 @@ public class MainClear extends InstrumentedFragment implements OnGlobalLayoutLis titleText.setText(devicePolicyManager.getResources().getString( WORK_CATEGORY_HEADER, () -> getString( com.android.settingslib.R.string.category_work))); + } else if (android.os.Flags.allowPrivateProfile() + && android.multiuser.Flags.enablePrivateSpaceFeatures() + && android.multiuser.Flags.handleInterleavedSettingsForPrivateSpace() + && userInfo.isPrivateProfile()) { + titleText.setText(devicePolicyManager.getResources().getString( + PRIVATE_CATEGORY_HEADER, () -> getString( + com.android.settingslib.R.string.category_private))); } else { titleText.setText(devicePolicyManager.getResources().getString( PERSONAL_CATEGORY_HEADER, () -> getString( diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java index 6e36ee36733..e68d9f487e4 100644 --- a/src/com/android/settings/Utils.java +++ b/src/com/android/settings/Utils.java @@ -1364,6 +1364,16 @@ public final class Utils extends com.android.settingslib.Utils { } } + /** + * Returns true if the user should be hidden in Settings when it's in quiet mode. + */ + public static boolean shouldHideUser( + @NonNull UserHandle userHandle, @NonNull UserManager userManager) { + UserProperties userProperties = userManager.getUserProperties(userHandle); + return userProperties.getShowInQuietMode() == UserProperties.SHOW_IN_QUIET_MODE_HIDDEN + && userManager.isQuietModeEnabled(userHandle); + } + private static FaceManager.RemovalCallback faceManagerRemovalCallback(int userId) { return new FaceManager.RemovalCallback() { @Override