From 472e415659eb3bb0928e2aa5cceab5a71d25925a Mon Sep 17 00:00:00 2001 From: Denis Kuznetsov Date: Thu, 21 Nov 2024 15:31:06 +0100 Subject: [PATCH] Control user switching UI visibility according to config Bug: 375394047 Test: atest UserDetailsSettingsTest UserSettingsTest Test: build platform with config overrides, check the result Flag: EXEMPT Desktop-only change Change-Id: Iaf1ac6c98a648066bf77b069039dcd59e243835f --- src/com/android/settings/users/UserCapabilities.java | 5 ++++- src/com/android/settings/users/UserDetailsSettings.java | 2 ++ src/com/android/settings/users/UserSettings.java | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/users/UserCapabilities.java b/src/com/android/settings/users/UserCapabilities.java index 60e92a8c2ce..9dd1f84c86a 100644 --- a/src/com/android/settings/users/UserCapabilities.java +++ b/src/com/android/settings/users/UserCapabilities.java @@ -36,6 +36,7 @@ public class UserCapabilities { boolean mIsAdmin; boolean mIsGuest; boolean mIsEphemeral; + boolean mUserSwitchingUiEnabled; boolean mUserSwitcherEnabled; boolean mCanAddGuest; boolean mDisallowAddUser; @@ -68,7 +69,8 @@ public class UserCapabilities { caps.mCanAddRestrictedProfile = offerRestricted && !dpm.isDeviceManaged() && userManager.isUserTypeEnabled( UserManager.USER_TYPE_FULL_RESTRICTED); - + caps.mUserSwitchingUiEnabled = context.getResources().getBoolean( + com.android.internal.R.bool.config_allowChangeUserSwitcherEnabled); caps.updateAddUserCapabilities(context); return caps; } @@ -134,6 +136,7 @@ public class UserCapabilities { ", mEnforcedAdmin=" + mEnforcedAdmin + ", mDisallowSwitchUser=" + mDisallowSwitchUser + ", mDisallowAddUserSetByAdmin=" + mDisallowAddUserSetByAdmin + + ", mUserSwitchingUiEnabled=" + mUserSwitchingUiEnabled + ", mUserSwitcherEnabled=" + mUserSwitcherEnabled + '}'; } diff --git a/src/com/android/settings/users/UserDetailsSettings.java b/src/com/android/settings/users/UserDetailsSettings.java index 8afab9678f4..ec4a4ff2558 100644 --- a/src/com/android/settings/users/UserDetailsSettings.java +++ b/src/com/android/settings/users/UserDetailsSettings.java @@ -354,6 +354,8 @@ public class UserDetailsSettings extends SettingsPreferenceFragment mGrantAdminPref.setChecked(mUserInfo.isAdmin()); + mSwitchUserPref.setVisible(mUserCaps.mUserSwitchingUiEnabled); + mSwitchUserPref.setTitle( context.getString(com.android.settingslib.R.string.user_switch_to_user, mUserInfo.name)); diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java index 0881b29a3b3..27d6699f890 100644 --- a/src/com/android/settings/users/UserSettings.java +++ b/src/com/android/settings/users/UserSettings.java @@ -287,7 +287,7 @@ public class UserSettings extends SettingsPreferenceFragment final SettingsActivity activity = (SettingsActivity) getActivity(); final SettingsMainSwitchBar switchBar = activity.getSwitchBar(); switchBar.setTitle(getContext().getString(R.string.multiple_users_main_switch_title)); - if (!mUserCaps.mIsGuest) { + if (!mUserCaps.mIsGuest && mUserCaps.mUserSwitchingUiEnabled) { switchBar.show(); } else { switchBar.hide();