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/DataUsageSummary.java b/src/com/android/settings/DataUsageSummary.java
index 47c8a69..76f2d1a 100644
--- a/src/com/android/settings/DataUsageSummary.java
+++ b/src/com/android/settings/DataUsageSummary.java
@@ -200,6 +200,7 @@
private NetworkPolicyManager mPolicyManager;
private TelephonyManager mTelephonyManager;
private SubscriptionManager mSubscriptionManager;
+ private UserManager mUserManager;
private INetworkStatsSession mStatsSession;
@@ -307,6 +308,7 @@
mPolicyManager = NetworkPolicyManager.from(context);
mTelephonyManager = TelephonyManager.from(context);
mSubscriptionManager = SubscriptionManager.from(context);
+ mUserManager = UserManager.get(context);
mPrefs = getActivity().getSharedPreferences(PREF_FILE, Context.MODE_PRIVATE);
@@ -548,7 +550,7 @@
public void onPrepareOptionsMenu(Menu menu) {
final Context context = getActivity();
final boolean appDetailMode = isAppDetailMode();
- final boolean isOwner = ActivityManager.getCurrentUser() == UserHandle.USER_OWNER;
+ final boolean isAdmin = mUserManager.isAdminUser();
mMenuShowWifi = menu.findItem(R.id.data_usage_menu_show_wifi);
if (hasWifiRadio(context) && hasReadyMobileRadio(context)) {
@@ -566,7 +568,7 @@
mMenuRestrictBackground = menu.findItem(R.id.data_usage_menu_restrict_background);
mMenuRestrictBackground.setVisible(
- hasReadyMobileRadio(context) && isOwner && !appDetailMode);
+ hasReadyMobileRadio(context) && isAdmin && !appDetailMode);
final MenuItem metered = menu.findItem(R.id.data_usage_menu_metered);
if (hasReadyMobileRadio(context) || hasWifiRadio(context)) {
@@ -581,7 +583,7 @@
mMenuCellularNetworks = menu.findItem(R.id.data_usage_menu_cellular_networks);
mMenuCellularNetworks.setVisible(hasReadyMobileRadio(context)
- && !appDetailMode && isOwner);
+ && !appDetailMode && isAdmin);
final MenuItem help = menu.findItem(R.id.data_usage_menu_help);
String helpUrl;
@@ -796,9 +798,8 @@
if (!isAdded()) return;
final Context context = getActivity();
- final Resources resources = context.getResources();
final String currentTab = mTabHost.getCurrentTabTag();
- final boolean isOwner = ActivityManager.getCurrentUser() == UserHandle.USER_OWNER;
+ final boolean isAdmin = mUserManager.isAdminUser();
if (currentTab == null) {
Log.w(TAG, "no tab selected; hiding body");
@@ -812,7 +813,7 @@
if (LOGD) Log.d(TAG, "updateBody() with currentTab=" + currentTab);
- mDataEnabledSupported = isOwner;
+ mDataEnabledSupported = isAdmin;
mDisableAtLimitSupported = true;
// TODO: remove mobile tabs when SIM isn't ready probably by
@@ -1077,7 +1078,7 @@
private boolean isNetworkPolicyModifiable(NetworkPolicy policy) {
return policy != null && isBandwidthControlEnabled() && mDataEnabled.isChecked()
- && ActivityManager.getCurrentUser() == UserHandle.USER_OWNER;
+ && mUserManager.isAdminUser();
}
private boolean isBandwidthControlEnabled() {