sys user split: first pass updating Settings
Update various places in Settings to use "admin" ueser flag
instead of checking user id "0". This should be no-op in
single user mode since the only admin user would be user 0.
In split system user mode, this will correctly ACL admin
user instead of non-interactive system user.
Bug: 19913735
Change-Id: Ida4d59c5f689ea0dc34b3b3ff0822b087fa0afd6
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index 442ce60..f4cc359 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -439,13 +439,6 @@
int titleRes = pref.getTitleRes();
if (pref.getFragment().equals(WallpaperTypeSettings.class.getName())) {
titleRes = R.string.wallpaper_settings_fragment_title;
- } else if (pref.getFragment().equals(OwnerInfoSettings.class.getName())
- && UserHandle.myUserId() != UserHandle.USER_OWNER) {
- if (UserManager.get(this).isLinkedUser()) {
- titleRes = R.string.profile_info_settings_title;
- } else {
- titleRes = R.string.user_info_settings_title;
- }
}
startPreferencePanel(pref.getFragment(), pref.getExtras(), titleRes, pref.getTitle(),
null, 0);
@@ -1219,7 +1212,8 @@
DevelopmentSettings.PREF_SHOW,
android.os.Build.TYPE.equals("eng"));
- final UserManager um = (UserManager) getSystemService(Context.USER_SERVICE);
+ final UserManager um = UserManager.get(this);
+ final boolean isAdmin = um.isAdminUser();
final int size = target.size();
for (int i = 0; i < size; i++) {
@@ -1264,9 +1258,6 @@
removeTile = true;
}
} else if (id == R.id.user_settings) {
- boolean hasMultipleUsers =
- ((UserManager) getSystemService(Context.USER_SERVICE))
- .getUserCount() > 1;
if (!UserHandle.MU_ENABLED
|| !UserManager.supportsMultipleUsers()
|| Utils.isMonkeyRunning()) {
@@ -1297,7 +1288,7 @@
}
}
- if (UserHandle.MU_ENABLED && UserHandle.myUserId() != 0
+ if (UserHandle.MU_ENABLED && !isAdmin
&& !ArrayUtils.contains(SETTINGS_FOR_RESTRICTED, id)) {
removeTile = true;
}