Respect user restrictions about adding/removing accounts, sideloading
Hide or disable options in the settings app when the user is restricted from
making changes.
Remove "Add account" button from Settings menu, and "remove account" option from menu in AccountSyncSettings.
Remove sideloading checkbox in SecuritySettings.
Also handle replacement of UserManager.isShareLocationToggleAllowed() with hasUserRestriction, which takes a restriction key string.
Change-Id: I34c74fd5aed8956ba00f92e3d3c657b608454dfe
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index be8e1cc..64a7d7f 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -178,6 +178,7 @@
if (mParentHeader != null) {
setParentTitle(mParentHeader.title, null, new OnClickListener() {
+ @Override
public void onClick(View v) {
switchToParent(mParentHeader.fragment);
}
@@ -405,7 +406,6 @@
@Override
public void onBuildHeaders(List<Header> headers) {
loadHeadersFromResource(R.xml.settings_headers, headers);
-
updateHeaderList(headers);
}
@@ -414,6 +414,8 @@
DevelopmentSettings.PREF_SHOW,
android.os.Build.TYPE.equals("eng"));
int i = 0;
+
+ final UserManager um = (UserManager) getSystemService(Context.USER_SERVICE);
mHeaderIndexMap.clear();
while (i < target.size()) {
Header header = target.get(i);
@@ -464,6 +466,10 @@
}
}
}
+ } else if (id == R.id.account_add) {
+ if (um.hasUserRestriction(UserManager.DISALLOW_MODIFY_ACCOUNTS)) {
+ target.remove(i);
+ }
}
if (i < target.size() && target.get(i) == header
@@ -778,6 +784,7 @@
return true;
}
+ @Override
public boolean shouldUpRecreateTask(Intent targetIntent) {
return super.shouldUpRecreateTask(new Intent(this, Settings.class));
}