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
This commit is contained in:
Manish Singh
2024-03-12 16:36:25 +00:00
parent 7dee0538d6
commit c5e07bb662
2 changed files with 21 additions and 0 deletions

View File

@@ -17,6 +17,7 @@
package com.android.settings; package com.android.settings;
import static android.app.admin.DevicePolicyResources.Strings.Settings.PERSONAL_CATEGORY_HEADER; 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 android.app.admin.DevicePolicyResources.Strings.Settings.WORK_CATEGORY_HEADER;
import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; 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 UserInfo userInfo = profiles.get(profileIndex);
final int profileId = userInfo.id; final int profileId = userInfo.id;
final UserHandle userHandle = new UserHandle(profileId); final UserHandle userHandle = new UserHandle(profileId);
if (Utils.shouldHideUser(userHandle, um)) {
continue;
}
Account[] accounts = mgr.getAccountsAsUser(profileId); Account[] accounts = mgr.getAccountsAsUser(profileId);
final int accountLength = accounts.length; final int accountLength = accounts.length;
if (accountLength == 0) { if (accountLength == 0) {
@@ -529,6 +533,13 @@ public class MainClear extends InstrumentedFragment implements OnGlobalLayoutLis
titleText.setText(devicePolicyManager.getResources().getString( titleText.setText(devicePolicyManager.getResources().getString(
WORK_CATEGORY_HEADER, () -> getString( WORK_CATEGORY_HEADER, () -> getString(
com.android.settingslib.R.string.category_work))); 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 { } else {
titleText.setText(devicePolicyManager.getResources().getString( titleText.setText(devicePolicyManager.getResources().getString(
PERSONAL_CATEGORY_HEADER, () -> getString( PERSONAL_CATEGORY_HEADER, () -> getString(

View File

@@ -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) { private static FaceManager.RemovalCallback faceManagerRemovalCallback(int userId) {
return new FaceManager.RemovalCallback() { return new FaceManager.RemovalCallback() {
@Override @Override