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
This commit is contained in:
@@ -175,7 +175,7 @@ public class ApnSettings extends SettingsPreferenceFragment implements
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)
|
if (mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)
|
||||||
|| UserHandle.myUserId()!= UserHandle.USER_OWNER) {
|
|| !mUm.isAdminUser()) {
|
||||||
mUnavailable = true;
|
mUnavailable = true;
|
||||||
setPreferenceScreen(new PreferenceScreen(getActivity(), null));
|
setPreferenceScreen(new PreferenceScreen(getActivity(), null));
|
||||||
return;
|
return;
|
||||||
|
@@ -200,6 +200,7 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
|
|||||||
private NetworkPolicyManager mPolicyManager;
|
private NetworkPolicyManager mPolicyManager;
|
||||||
private TelephonyManager mTelephonyManager;
|
private TelephonyManager mTelephonyManager;
|
||||||
private SubscriptionManager mSubscriptionManager;
|
private SubscriptionManager mSubscriptionManager;
|
||||||
|
private UserManager mUserManager;
|
||||||
|
|
||||||
private INetworkStatsSession mStatsSession;
|
private INetworkStatsSession mStatsSession;
|
||||||
|
|
||||||
@@ -307,6 +308,7 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
|
|||||||
mPolicyManager = NetworkPolicyManager.from(context);
|
mPolicyManager = NetworkPolicyManager.from(context);
|
||||||
mTelephonyManager = TelephonyManager.from(context);
|
mTelephonyManager = TelephonyManager.from(context);
|
||||||
mSubscriptionManager = SubscriptionManager.from(context);
|
mSubscriptionManager = SubscriptionManager.from(context);
|
||||||
|
mUserManager = UserManager.get(context);
|
||||||
|
|
||||||
mPrefs = getActivity().getSharedPreferences(PREF_FILE, Context.MODE_PRIVATE);
|
mPrefs = getActivity().getSharedPreferences(PREF_FILE, Context.MODE_PRIVATE);
|
||||||
|
|
||||||
@@ -548,7 +550,7 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
|
|||||||
public void onPrepareOptionsMenu(Menu menu) {
|
public void onPrepareOptionsMenu(Menu menu) {
|
||||||
final Context context = getActivity();
|
final Context context = getActivity();
|
||||||
final boolean appDetailMode = isAppDetailMode();
|
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);
|
mMenuShowWifi = menu.findItem(R.id.data_usage_menu_show_wifi);
|
||||||
if (hasWifiRadio(context) && hasReadyMobileRadio(context)) {
|
if (hasWifiRadio(context) && hasReadyMobileRadio(context)) {
|
||||||
@@ -566,7 +568,7 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
|
|||||||
|
|
||||||
mMenuRestrictBackground = menu.findItem(R.id.data_usage_menu_restrict_background);
|
mMenuRestrictBackground = menu.findItem(R.id.data_usage_menu_restrict_background);
|
||||||
mMenuRestrictBackground.setVisible(
|
mMenuRestrictBackground.setVisible(
|
||||||
hasReadyMobileRadio(context) && isOwner && !appDetailMode);
|
hasReadyMobileRadio(context) && isAdmin && !appDetailMode);
|
||||||
|
|
||||||
final MenuItem metered = menu.findItem(R.id.data_usage_menu_metered);
|
final MenuItem metered = menu.findItem(R.id.data_usage_menu_metered);
|
||||||
if (hasReadyMobileRadio(context) || hasWifiRadio(context)) {
|
if (hasReadyMobileRadio(context) || hasWifiRadio(context)) {
|
||||||
@@ -581,7 +583,7 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
|
|||||||
|
|
||||||
mMenuCellularNetworks = menu.findItem(R.id.data_usage_menu_cellular_networks);
|
mMenuCellularNetworks = menu.findItem(R.id.data_usage_menu_cellular_networks);
|
||||||
mMenuCellularNetworks.setVisible(hasReadyMobileRadio(context)
|
mMenuCellularNetworks.setVisible(hasReadyMobileRadio(context)
|
||||||
&& !appDetailMode && isOwner);
|
&& !appDetailMode && isAdmin);
|
||||||
|
|
||||||
final MenuItem help = menu.findItem(R.id.data_usage_menu_help);
|
final MenuItem help = menu.findItem(R.id.data_usage_menu_help);
|
||||||
String helpUrl;
|
String helpUrl;
|
||||||
@@ -796,9 +798,8 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
|
|||||||
if (!isAdded()) return;
|
if (!isAdded()) return;
|
||||||
|
|
||||||
final Context context = getActivity();
|
final Context context = getActivity();
|
||||||
final Resources resources = context.getResources();
|
|
||||||
final String currentTab = mTabHost.getCurrentTabTag();
|
final String currentTab = mTabHost.getCurrentTabTag();
|
||||||
final boolean isOwner = ActivityManager.getCurrentUser() == UserHandle.USER_OWNER;
|
final boolean isAdmin = mUserManager.isAdminUser();
|
||||||
|
|
||||||
if (currentTab == null) {
|
if (currentTab == null) {
|
||||||
Log.w(TAG, "no tab selected; hiding body");
|
Log.w(TAG, "no tab selected; hiding body");
|
||||||
@@ -812,7 +813,7 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
|
|||||||
|
|
||||||
if (LOGD) Log.d(TAG, "updateBody() with currentTab=" + currentTab);
|
if (LOGD) Log.d(TAG, "updateBody() with currentTab=" + currentTab);
|
||||||
|
|
||||||
mDataEnabledSupported = isOwner;
|
mDataEnabledSupported = isAdmin;
|
||||||
mDisableAtLimitSupported = true;
|
mDisableAtLimitSupported = true;
|
||||||
|
|
||||||
// TODO: remove mobile tabs when SIM isn't ready probably by
|
// TODO: remove mobile tabs when SIM isn't ready probably by
|
||||||
@@ -1077,7 +1078,7 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
|
|||||||
|
|
||||||
private boolean isNetworkPolicyModifiable(NetworkPolicy policy) {
|
private boolean isNetworkPolicyModifiable(NetworkPolicy policy) {
|
||||||
return policy != null && isBandwidthControlEnabled() && mDataEnabled.isChecked()
|
return policy != null && isBandwidthControlEnabled() && mDataEnabled.isChecked()
|
||||||
&& ActivityManager.getCurrentUser() == UserHandle.USER_OWNER;
|
&& mUserManager.isAdminUser();
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isBandwidthControlEnabled() {
|
private boolean isBandwidthControlEnabled() {
|
||||||
|
@@ -289,7 +289,7 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
|
|||||||
|
|
||||||
mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
|
mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
|
||||||
|
|
||||||
if (android.os.Process.myUserHandle().getIdentifier() != UserHandle.USER_OWNER
|
if (!mUm.isAdminUser()
|
||||||
|| mUm.hasUserRestriction(UserManager.DISALLOW_DEBUGGING_FEATURES)) {
|
|| mUm.hasUserRestriction(UserManager.DISALLOW_DEBUGGING_FEATURES)) {
|
||||||
mUnavailable = true;
|
mUnavailable = true;
|
||||||
setPreferenceScreen(new PreferenceScreen(getActivity(), null));
|
setPreferenceScreen(new PreferenceScreen(getActivity(), null));
|
||||||
@@ -328,8 +328,7 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
|
|||||||
mPassword = (PreferenceScreen) findPreference(LOCAL_BACKUP_PASSWORD);
|
mPassword = (PreferenceScreen) findPreference(LOCAL_BACKUP_PASSWORD);
|
||||||
mAllPrefs.add(mPassword);
|
mAllPrefs.add(mPassword);
|
||||||
|
|
||||||
|
if (!mUm.isAdminUser()) {
|
||||||
if (!android.os.Process.myUserHandle().equals(UserHandle.OWNER)) {
|
|
||||||
disableForUser(mEnableAdb);
|
disableForUser(mEnableAdb);
|
||||||
disableForUser(mClearAdbKeys);
|
disableForUser(mClearAdbKeys);
|
||||||
disableForUser(mEnableTerminal);
|
disableForUser(mEnableTerminal);
|
||||||
|
@@ -81,6 +81,8 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment implements In
|
|||||||
int mDevHitCountdown;
|
int mDevHitCountdown;
|
||||||
Toast mDevHitToast;
|
Toast mDevHitToast;
|
||||||
|
|
||||||
|
private UserManager mUm;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int getMetricsCategory() {
|
protected int getMetricsCategory() {
|
||||||
return MetricsLogger.DEVICEINFO;
|
return MetricsLogger.DEVICEINFO;
|
||||||
@@ -94,6 +96,7 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment implements In
|
|||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle icicle) {
|
public void onCreate(Bundle icicle) {
|
||||||
super.onCreate(icicle);
|
super.onCreate(icicle);
|
||||||
|
mUm = UserManager.get(getActivity());
|
||||||
|
|
||||||
addPreferencesFromResource(R.xml.device_info_settings);
|
addPreferencesFromResource(R.xml.device_info_settings);
|
||||||
|
|
||||||
@@ -145,7 +148,8 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment implements In
|
|||||||
|
|
||||||
// These are contained by the root preference screen
|
// These are contained by the root preference screen
|
||||||
PreferenceGroup parentPreference = getPreferenceScreen();
|
PreferenceGroup parentPreference = getPreferenceScreen();
|
||||||
if (UserHandle.myUserId() == UserHandle.USER_OWNER) {
|
|
||||||
|
if (mUm.isAdminUser()) {
|
||||||
Utils.updatePreferenceToSpecificActivityOrRemove(act, parentPreference,
|
Utils.updatePreferenceToSpecificActivityOrRemove(act, parentPreference,
|
||||||
KEY_SYSTEM_UPDATE_SETTINGS,
|
KEY_SYSTEM_UPDATE_SETTINGS,
|
||||||
Utils.UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY);
|
Utils.UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY);
|
||||||
@@ -183,8 +187,7 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment implements In
|
|||||||
System.arraycopy(mHits, 1, mHits, 0, mHits.length-1);
|
System.arraycopy(mHits, 1, mHits, 0, mHits.length-1);
|
||||||
mHits[mHits.length-1] = SystemClock.uptimeMillis();
|
mHits[mHits.length-1] = SystemClock.uptimeMillis();
|
||||||
if (mHits[0] >= (SystemClock.uptimeMillis()-500)) {
|
if (mHits[0] >= (SystemClock.uptimeMillis()-500)) {
|
||||||
UserManager um = (UserManager) getActivity().getSystemService(Context.USER_SERVICE);
|
if (mUm.hasUserRestriction(UserManager.DISALLOW_FUN)) {
|
||||||
if (um.hasUserRestriction(UserManager.DISALLOW_FUN)) {
|
|
||||||
Log.d(LOG_TAG, "Sorry, no fun for you!");
|
Log.d(LOG_TAG, "Sorry, no fun for you!");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -200,10 +203,9 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment implements In
|
|||||||
}
|
}
|
||||||
} else if (preference.getKey().equals(KEY_BUILD_NUMBER)) {
|
} else if (preference.getKey().equals(KEY_BUILD_NUMBER)) {
|
||||||
// Don't enable developer options for secondary users.
|
// Don't enable developer options for secondary users.
|
||||||
if (UserHandle.myUserId() != UserHandle.USER_OWNER) return true;
|
if (!mUm.isAdminUser()) return true;
|
||||||
|
|
||||||
final UserManager um = (UserManager) getSystemService(Context.USER_SERVICE);
|
if (mUm.hasUserRestriction(UserManager.DISALLOW_DEBUGGING_FEATURES)) return true;
|
||||||
if (um.hasUserRestriction(UserManager.DISALLOW_DEBUGGING_FEATURES)) return true;
|
|
||||||
|
|
||||||
if (mDevHitCountdown > 0) {
|
if (mDevHitCountdown > 0) {
|
||||||
mDevHitCountdown--;
|
mDevHitCountdown--;
|
||||||
@@ -472,7 +474,9 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment implements In
|
|||||||
if (TextUtils.isEmpty(getFeedbackReporterPackage(context))) {
|
if (TextUtils.isEmpty(getFeedbackReporterPackage(context))) {
|
||||||
keys.add(KEY_DEVICE_FEEDBACK);
|
keys.add(KEY_DEVICE_FEEDBACK);
|
||||||
}
|
}
|
||||||
if (UserHandle.myUserId() != UserHandle.USER_OWNER) {
|
final UserManager um = UserManager.get(context);
|
||||||
|
// TODO: system update needs to be fixed for non-owner user b/22760654
|
||||||
|
if (!um.isAdminUser()) {
|
||||||
keys.add(KEY_SYSTEM_UPDATE_SETTINGS);
|
keys.add(KEY_SYSTEM_UPDATE_SETTINGS);
|
||||||
}
|
}
|
||||||
if (!context.getResources().getBoolean(
|
if (!context.getResources().getBoolean(
|
||||||
|
@@ -281,9 +281,9 @@ public class MasterClear extends InstrumentedFragment {
|
|||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
if (!Process.myUserHandle().isOwner()
|
final UserManager um = UserManager.get(getActivity());
|
||||||
|| UserManager.get(getActivity()).hasUserRestriction(
|
if (!um.isAdminUser()
|
||||||
UserManager.DISALLOW_FACTORY_RESET)) {
|
|| um.hasUserRestriction(UserManager.DISALLOW_FACTORY_RESET)) {
|
||||||
return inflater.inflate(R.layout.master_clear_disallowed_screen, null);
|
return inflater.inflate(R.layout.master_clear_disallowed_screen, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -71,8 +71,9 @@ public class PrivacySettings extends SettingsPreferenceFragment implements Index
|
|||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
// Don't allow any access if this is a secondary user
|
// Don't allow any access if this is not an admin user.
|
||||||
mEnabled = Process.myUserHandle().isOwner();
|
// TODO: backup/restore currently only works with owner user b/22760572
|
||||||
|
mEnabled = UserManager.get(getActivity()).isAdminUser();
|
||||||
if (!mEnabled) {
|
if (!mEnabled) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@@ -192,9 +192,9 @@ public class ResetNetwork extends InstrumentedFragment {
|
|||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
if (!Process.myUserHandle().isOwner()
|
final UserManager um = UserManager.get(getActivity());
|
||||||
|| UserManager.get(getActivity()).hasUserRestriction(
|
if (!um.isAdminUser()
|
||||||
UserManager.DISALLOW_NETWORK_RESET)) {
|
|| um.hasUserRestriction(UserManager.DISALLOW_NETWORK_RESET)) {
|
||||||
return inflater.inflate(R.layout.network_reset_disallowed_screen, null);
|
return inflater.inflate(R.layout.network_reset_disallowed_screen, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -116,6 +116,7 @@ public class SecuritySettings extends SettingsPreferenceFragment
|
|||||||
|
|
||||||
private DevicePolicyManager mDPM;
|
private DevicePolicyManager mDPM;
|
||||||
private SubscriptionManager mSubscriptionManager;
|
private SubscriptionManager mSubscriptionManager;
|
||||||
|
private UserManager mUm;
|
||||||
|
|
||||||
private ChooseLockSettingsHelper mChooseLockSettingsHelper;
|
private ChooseLockSettingsHelper mChooseLockSettingsHelper;
|
||||||
private LockPatternUtils mLockPatternUtils;
|
private LockPatternUtils mLockPatternUtils;
|
||||||
@@ -132,7 +133,7 @@ public class SecuritySettings extends SettingsPreferenceFragment
|
|||||||
private DialogInterface mWarnInstallApps;
|
private DialogInterface mWarnInstallApps;
|
||||||
private SwitchPreference mPowerButtonInstantlyLocks;
|
private SwitchPreference mPowerButtonInstantlyLocks;
|
||||||
|
|
||||||
private boolean mIsPrimary;
|
private boolean mIsAdmin;
|
||||||
|
|
||||||
private Intent mTrustAgentClickIntent;
|
private Intent mTrustAgentClickIntent;
|
||||||
private Preference mOwnerInfoPref;
|
private Preference mOwnerInfoPref;
|
||||||
@@ -152,6 +153,8 @@ public class SecuritySettings extends SettingsPreferenceFragment
|
|||||||
|
|
||||||
mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
|
mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||||
|
|
||||||
|
mUm = UserManager.get(getActivity());
|
||||||
|
|
||||||
mChooseLockSettingsHelper = new ChooseLockSettingsHelper(getActivity());
|
mChooseLockSettingsHelper = new ChooseLockSettingsHelper(getActivity());
|
||||||
|
|
||||||
if (savedInstanceState != null
|
if (savedInstanceState != null
|
||||||
@@ -207,7 +210,7 @@ public class SecuritySettings extends SettingsPreferenceFragment
|
|||||||
addPreferencesFromResource(resid);
|
addPreferencesFromResource(resid);
|
||||||
|
|
||||||
// Add options for device encryption
|
// Add options for device encryption
|
||||||
mIsPrimary = MY_USER_ID == UserHandle.USER_OWNER;
|
mIsAdmin = mUm.isAdminUser();
|
||||||
|
|
||||||
mOwnerInfoPref = findPreference(KEY_OWNER_INFO_SETTINGS);
|
mOwnerInfoPref = findPreference(KEY_OWNER_INFO_SETTINGS);
|
||||||
if (mOwnerInfoPref != null) {
|
if (mOwnerInfoPref != null) {
|
||||||
@@ -220,7 +223,7 @@ public class SecuritySettings extends SettingsPreferenceFragment
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mIsPrimary) {
|
if (mIsAdmin) {
|
||||||
if (LockPatternUtils.isDeviceEncryptionEnabled()) {
|
if (LockPatternUtils.isDeviceEncryptionEnabled()) {
|
||||||
// The device is currently encrypted.
|
// The device is currently encrypted.
|
||||||
addPreferencesFromResource(R.xml.security_settings_encrypted);
|
addPreferencesFromResource(R.xml.security_settings_encrypted);
|
||||||
@@ -268,7 +271,7 @@ public class SecuritySettings extends SettingsPreferenceFragment
|
|||||||
CarrierConfigManager cfgMgr = (CarrierConfigManager)
|
CarrierConfigManager cfgMgr = (CarrierConfigManager)
|
||||||
getActivity().getSystemService(Context.CARRIER_CONFIG_SERVICE);
|
getActivity().getSystemService(Context.CARRIER_CONFIG_SERVICE);
|
||||||
PersistableBundle b = cfgMgr.getConfig();
|
PersistableBundle b = cfgMgr.getConfig();
|
||||||
if (!mIsPrimary || !isSimIccReady() ||
|
if (!mIsAdmin || !isSimIccReady() ||
|
||||||
b.getBoolean(CarrierConfigManager.KEY_HIDE_SIM_LOCK_SETTINGS_BOOL)) {
|
b.getBoolean(CarrierConfigManager.KEY_HIDE_SIM_LOCK_SETTINGS_BOOL)) {
|
||||||
root.removePreference(root.findPreference(KEY_SIM_LOCK));
|
root.removePreference(root.findPreference(KEY_SIM_LOCK));
|
||||||
} else {
|
} else {
|
||||||
@@ -719,14 +722,6 @@ public class SecuritySettings extends SettingsPreferenceFragment
|
|||||||
|
|
||||||
private static class SecuritySearchIndexProvider extends BaseSearchIndexProvider {
|
private static class SecuritySearchIndexProvider extends BaseSearchIndexProvider {
|
||||||
|
|
||||||
boolean mIsPrimary;
|
|
||||||
|
|
||||||
public SecuritySearchIndexProvider() {
|
|
||||||
super();
|
|
||||||
|
|
||||||
mIsPrimary = MY_USER_ID == UserHandle.USER_OWNER;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<SearchIndexableResource> getXmlResourcesToIndex(
|
public List<SearchIndexableResource> getXmlResourcesToIndex(
|
||||||
Context context, boolean enabled) {
|
Context context, boolean enabled) {
|
||||||
@@ -741,7 +736,8 @@ public class SecuritySettings extends SettingsPreferenceFragment
|
|||||||
sir.xmlResId = resId;
|
sir.xmlResId = resId;
|
||||||
result.add(sir);
|
result.add(sir);
|
||||||
|
|
||||||
if (mIsPrimary) {
|
final UserManager um = UserManager.get(context);
|
||||||
|
if (um.isAdminUser()) {
|
||||||
DevicePolicyManager dpm = (DevicePolicyManager)
|
DevicePolicyManager dpm = (DevicePolicyManager)
|
||||||
context.getSystemService(Context.DEVICE_POLICY_SERVICE);
|
context.getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||||
|
|
||||||
@@ -781,8 +777,9 @@ public class SecuritySettings extends SettingsPreferenceFragment
|
|||||||
data.screenTitle = screenTitle;
|
data.screenTitle = screenTitle;
|
||||||
result.add(data);
|
result.add(data);
|
||||||
|
|
||||||
if (!mIsPrimary) {
|
final UserManager um = UserManager.get(context);
|
||||||
int resId = (UserManager.get(context).isLinkedUser()) ?
|
if (!um.isAdminUser()) {
|
||||||
|
int resId = um.isLinkedUser() ?
|
||||||
R.string.profile_info_settings_title : R.string.user_info_settings_title;
|
R.string.profile_info_settings_title : R.string.user_info_settings_title;
|
||||||
|
|
||||||
data = new SearchIndexableRaw(context);
|
data = new SearchIndexableRaw(context);
|
||||||
@@ -802,8 +799,6 @@ public class SecuritySettings extends SettingsPreferenceFragment
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Credential storage
|
// Credential storage
|
||||||
final UserManager um = (UserManager) context.getSystemService(Context.USER_SERVICE);
|
|
||||||
|
|
||||||
if (!um.hasUserRestriction(UserManager.DISALLOW_CONFIG_CREDENTIALS)) {
|
if (!um.hasUserRestriction(UserManager.DISALLOW_CONFIG_CREDENTIALS)) {
|
||||||
KeyStore keyStore = KeyStore.getInstance();
|
KeyStore keyStore = KeyStore.getInstance();
|
||||||
|
|
||||||
@@ -839,16 +834,14 @@ public class SecuritySettings extends SettingsPreferenceFragment
|
|||||||
final List<String> keys = new ArrayList<String>();
|
final List<String> keys = new ArrayList<String>();
|
||||||
|
|
||||||
LockPatternUtils lockPatternUtils = new LockPatternUtils(context);
|
LockPatternUtils lockPatternUtils = new LockPatternUtils(context);
|
||||||
// Add options for lock/unlock screen
|
|
||||||
int resId = getResIdForLockUnlockScreen(context, lockPatternUtils);
|
|
||||||
|
|
||||||
// Do not display SIM lock for devices without an Icc card
|
// Do not display SIM lock for devices without an Icc card
|
||||||
TelephonyManager tm = TelephonyManager.getDefault();
|
final UserManager um = UserManager.get(context);
|
||||||
if (!mIsPrimary || !tm.hasIccCard()) {
|
final TelephonyManager tm = TelephonyManager.from(context);
|
||||||
|
if (!um.isAdminUser() || !tm.hasIccCard()) {
|
||||||
keys.add(KEY_SIM_LOCK);
|
keys.add(KEY_SIM_LOCK);
|
||||||
}
|
}
|
||||||
|
|
||||||
final UserManager um = (UserManager) context.getSystemService(Context.USER_SERVICE);
|
|
||||||
if (um.hasUserRestriction(UserManager.DISALLOW_CONFIG_CREDENTIALS)) {
|
if (um.hasUserRestriction(UserManager.DISALLOW_CONFIG_CREDENTIALS)) {
|
||||||
keys.add(KEY_CREDENTIALS_MANAGER);
|
keys.add(KEY_CREDENTIALS_MANAGER);
|
||||||
}
|
}
|
||||||
|
@@ -439,13 +439,6 @@ public class SettingsActivity extends Activity
|
|||||||
int titleRes = pref.getTitleRes();
|
int titleRes = pref.getTitleRes();
|
||||||
if (pref.getFragment().equals(WallpaperTypeSettings.class.getName())) {
|
if (pref.getFragment().equals(WallpaperTypeSettings.class.getName())) {
|
||||||
titleRes = R.string.wallpaper_settings_fragment_title;
|
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(),
|
startPreferencePanel(pref.getFragment(), pref.getExtras(), titleRes, pref.getTitle(),
|
||||||
null, 0);
|
null, 0);
|
||||||
@@ -1219,7 +1212,8 @@ public class SettingsActivity extends Activity
|
|||||||
DevelopmentSettings.PREF_SHOW,
|
DevelopmentSettings.PREF_SHOW,
|
||||||
android.os.Build.TYPE.equals("eng"));
|
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();
|
final int size = target.size();
|
||||||
for (int i = 0; i < size; i++) {
|
for (int i = 0; i < size; i++) {
|
||||||
@@ -1264,9 +1258,6 @@ public class SettingsActivity extends Activity
|
|||||||
removeTile = true;
|
removeTile = true;
|
||||||
}
|
}
|
||||||
} else if (id == R.id.user_settings) {
|
} else if (id == R.id.user_settings) {
|
||||||
boolean hasMultipleUsers =
|
|
||||||
((UserManager) getSystemService(Context.USER_SERVICE))
|
|
||||||
.getUserCount() > 1;
|
|
||||||
if (!UserHandle.MU_ENABLED
|
if (!UserHandle.MU_ENABLED
|
||||||
|| !UserManager.supportsMultipleUsers()
|
|| !UserManager.supportsMultipleUsers()
|
||||||
|| Utils.isMonkeyRunning()) {
|
|| Utils.isMonkeyRunning()) {
|
||||||
@@ -1297,7 +1288,7 @@ public class SettingsActivity extends Activity
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (UserHandle.MU_ENABLED && UserHandle.myUserId() != 0
|
if (UserHandle.MU_ENABLED && !isAdmin
|
||||||
&& !ArrayUtils.contains(SETTINGS_FOR_RESTRICTED, id)) {
|
&& !ArrayUtils.contains(SETTINGS_FOR_RESTRICTED, id)) {
|
||||||
removeTile = true;
|
removeTile = true;
|
||||||
}
|
}
|
||||||
|
@@ -17,7 +17,7 @@
|
|||||||
package com.android.settings;
|
package com.android.settings;
|
||||||
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.UserHandle;
|
import android.os.UserManager;
|
||||||
import android.preference.PreferenceActivity;
|
import android.preference.PreferenceActivity;
|
||||||
import android.preference.PreferenceScreen;
|
import android.preference.PreferenceScreen;
|
||||||
|
|
||||||
@@ -29,7 +29,8 @@ public class TestingSettings extends PreferenceActivity {
|
|||||||
|
|
||||||
addPreferencesFromResource(R.xml.testing_settings);
|
addPreferencesFromResource(R.xml.testing_settings);
|
||||||
|
|
||||||
if (UserHandle.myUserId() != UserHandle.USER_OWNER) {
|
final UserManager um = UserManager.get(this);
|
||||||
|
if (!um.isAdminUser()) {
|
||||||
PreferenceScreen preferenceScreen = (PreferenceScreen)
|
PreferenceScreen preferenceScreen = (PreferenceScreen)
|
||||||
findPreference("radio_info_settings");
|
findPreference("radio_info_settings");
|
||||||
getPreferenceScreen().removePreference(preferenceScreen);
|
getPreferenceScreen().removePreference(preferenceScreen);
|
||||||
|
@@ -125,7 +125,7 @@ public class TetherSettings extends SettingsPreferenceFragment
|
|||||||
mUm = (UserManager) getSystemService(Context.USER_SERVICE);
|
mUm = (UserManager) getSystemService(Context.USER_SERVICE);
|
||||||
|
|
||||||
if (mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_TETHERING)
|
if (mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_TETHERING)
|
||||||
|| UserHandle.myUserId() != UserHandle.USER_OWNER) {
|
|| !mUm.isAdminUser()) {
|
||||||
mUnavailable = true;
|
mUnavailable = true;
|
||||||
setPreferenceScreen(new PreferenceScreen(getActivity(), null));
|
setPreferenceScreen(new PreferenceScreen(getActivity(), null));
|
||||||
return;
|
return;
|
||||||
|
@@ -439,8 +439,7 @@ public class WirelessSettings extends SettingsPreferenceFragment implements Inde
|
|||||||
result.add(KEY_TOGGLE_NSD);
|
result.add(KEY_TOGGLE_NSD);
|
||||||
|
|
||||||
final UserManager um = (UserManager) context.getSystemService(Context.USER_SERVICE);
|
final UserManager um = (UserManager) context.getSystemService(Context.USER_SERVICE);
|
||||||
final int myUserId = UserHandle.myUserId();
|
final boolean isSecondaryUser = !um.isAdminUser();
|
||||||
final boolean isSecondaryUser = myUserId != UserHandle.USER_OWNER;
|
|
||||||
final boolean isWimaxEnabled = !isSecondaryUser
|
final boolean isWimaxEnabled = !isSecondaryUser
|
||||||
&& context.getResources().getBoolean(
|
&& context.getResources().getBoolean(
|
||||||
com.android.internal.R.bool.config_wimaxEnabled);
|
com.android.internal.R.bool.config_wimaxEnabled);
|
||||||
|
@@ -32,9 +32,8 @@ import android.os.Handler;
|
|||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
import android.os.SystemClock;
|
import android.os.SystemClock;
|
||||||
import android.os.SystemProperties;
|
import android.os.SystemProperties;
|
||||||
import android.os.UserHandle;
|
import android.os.UserManager;
|
||||||
import android.preference.Preference;
|
import android.preference.Preference;
|
||||||
import android.preference.PreferenceActivity;
|
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.AdapterView;
|
import android.widget.AdapterView;
|
||||||
@@ -206,7 +205,8 @@ public class Status extends InstrumentedPreferenceActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Remove SimStatus and Imei for Secondary user as it access Phone b/19165700
|
//Remove SimStatus and Imei for Secondary user as it access Phone b/19165700
|
||||||
if (UserHandle.myUserId() != UserHandle.USER_OWNER) {
|
//TODO: the bug above will surface in split system user mode.
|
||||||
|
if (!UserManager.get(this).isAdminUser()) {
|
||||||
removePreferenceFromScreen(KEY_SIM_STATUS);
|
removePreferenceFromScreen(KEY_SIM_STATUS);
|
||||||
removePreferenceFromScreen(KEY_IMEI_INFO);
|
removePreferenceFromScreen(KEY_IMEI_INFO);
|
||||||
}
|
}
|
||||||
|
@@ -201,7 +201,7 @@ public class PowerUsageSummary extends PowerUsageBase {
|
|||||||
sipper.getUid() <= Process.LAST_SHARED_APPLICATION_GID) {
|
sipper.getUid() <= Process.LAST_SHARED_APPLICATION_GID) {
|
||||||
// This is a shared gid being used to do work on behalf of an app across all
|
// This is a shared gid being used to do work on behalf of an app across all
|
||||||
// users. But we'll blame the power on the device OWNER.
|
// users. But we'll blame the power on the device OWNER.
|
||||||
realUid = UserHandle.getUid(UserHandle.USER_OWNER,
|
realUid = UserHandle.getUid(UserHandle.USER_SYSTEM,
|
||||||
UserHandle.getAppIdFromSharedAppGid(sipper.getUid()));
|
UserHandle.getAppIdFromSharedAppGid(sipper.getUid()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -111,8 +111,8 @@ public class UserDetailsSettings extends SettingsPreferenceFragment
|
|||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceClick(Preference preference) {
|
public boolean onPreferenceClick(Preference preference) {
|
||||||
if (preference == mRemoveUserPref) {
|
if (preference == mRemoveUserPref) {
|
||||||
if (UserHandle.myUserId() != UserHandle.USER_OWNER) {
|
if (mUserManager.isAdminUser()) {
|
||||||
throw new RuntimeException("Only the owner can remove a user");
|
throw new RuntimeException("Only admins can remove a user");
|
||||||
}
|
}
|
||||||
showDialog(DIALOG_CONFIRM_REMOVE);
|
showDialog(DIALOG_CONFIRM_REMOVE);
|
||||||
return true;
|
return true;
|
||||||
|
@@ -30,6 +30,7 @@ import android.net.wifi.WifiManager;
|
|||||||
import android.net.wifi.WpsInfo;
|
import android.net.wifi.WpsInfo;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
|
import android.os.UserManager;
|
||||||
import android.preference.ListPreference;
|
import android.preference.ListPreference;
|
||||||
import android.preference.Preference;
|
import android.preference.Preference;
|
||||||
import android.preference.Preference.OnPreferenceClickListener;
|
import android.preference.Preference.OnPreferenceClickListener;
|
||||||
@@ -135,7 +136,7 @@ public class AdvancedWifiSettings extends SettingsPreferenceFragment
|
|||||||
mWifiAssistantPreference = (AppListSwitchPreference) findPreference(KEY_WIFI_ASSISTANT);
|
mWifiAssistantPreference = (AppListSwitchPreference) findPreference(KEY_WIFI_ASSISTANT);
|
||||||
Collection<NetworkScorerAppData> scorers =
|
Collection<NetworkScorerAppData> scorers =
|
||||||
NetworkScorerAppManager.getAllValidScorers(context);
|
NetworkScorerAppManager.getAllValidScorers(context);
|
||||||
if (UserHandle.myUserId() == UserHandle.USER_OWNER && !scorers.isEmpty()) {
|
if (UserManager.get(context).isAdminUser() && !scorers.isEmpty()) {
|
||||||
mWifiAssistantPreference.setOnPreferenceChangeListener(this);
|
mWifiAssistantPreference.setOnPreferenceChangeListener(this);
|
||||||
initWifiAssistantPreference(scorers);
|
initWifiAssistantPreference(scorers);
|
||||||
} else if (mWifiAssistantPreference != null) {
|
} else if (mWifiAssistantPreference != null) {
|
||||||
|
Reference in New Issue
Block a user