summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/accounts
diff options
context:
space:
mode:
authorMaggie Benthall <mbenthall@google.com>2013-03-14 17:41:27 -0400
committerMaggie Benthall <mbenthall@google.com>2013-03-27 18:12:44 -0400
commit0c5a401a58b30041d5fe712d78fccbd47f5b744d (patch)
treec28cdc176e7f94dafe143e323fc077a5fa5124cc /src/com/android/settings/accounts
parent05d67f62b7370b3bbe3bf691ae01b8a46dd04606 (diff)
downloadpackages_apps_Settings-0c5a401a58b30041d5fe712d78fccbd47f5b744d.zip
packages_apps_Settings-0c5a401a58b30041d5fe712d78fccbd47f5b744d.tar.gz
packages_apps_Settings-0c5a401a58b30041d5fe712d78fccbd47f5b744d.tar.bz2
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
Diffstat (limited to 'src/com/android/settings/accounts')
-rw-r--r--src/com/android/settings/accounts/AccountSyncSettings.java18
-rw-r--r--src/com/android/settings/accounts/AddAccountSettings.java10
2 files changed, 19 insertions, 9 deletions
diff --git a/src/com/android/settings/accounts/AccountSyncSettings.java b/src/com/android/settings/accounts/AccountSyncSettings.java
index c346017..64c4d4a 100644
--- a/src/com/android/settings/accounts/AccountSyncSettings.java
+++ b/src/com/android/settings/accounts/AccountSyncSettings.java
@@ -28,17 +28,16 @@ import android.app.Dialog;
import android.content.ContentResolver;
import android.content.Context;
import android.content.DialogInterface;
-import android.content.Intent;
import android.content.SyncAdapterType;
import android.content.SyncInfo;
import android.content.SyncStatusInfo;
import android.content.pm.ProviderInfo;
import android.net.ConnectivityManager;
import android.os.Bundle;
+import android.os.UserManager;
import android.preference.Preference;
import android.preference.PreferenceScreen;
import android.text.TextUtils;
-import android.text.format.DateFormat;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
@@ -93,10 +92,12 @@ public class AccountSyncSettings extends AccountPreferenceBase {
.setNegativeButton(android.R.string.cancel, null)
.setPositiveButton(R.string.remove_account_label,
new DialogInterface.OnClickListener() {
+ @Override
public void onClick(DialogInterface dialog, int which) {
AccountManager.get(AccountSyncSettings.this.getActivity())
.removeAccount(mAccount,
new AccountManagerCallback<Boolean>() {
+ @Override
public void run(AccountManagerFuture<Boolean> future) {
// If already out of this screen, don't proceed.
if (!AccountSyncSettings.this.isResumed()) {
@@ -233,12 +234,15 @@ public class AccountSyncSettings extends AccountPreferenceBase {
MenuItem syncCancel = menu.add(0, MENU_SYNC_CANCEL_ID, 0,
getString(R.string.sync_menu_sync_cancel))
.setIcon(com.android.internal.R.drawable.ic_menu_close_clear_cancel);
- MenuItem removeAccount = menu.add(0, MENU_REMOVE_ACCOUNT_ID, 0,
- getString(R.string.remove_account_label))
- .setIcon(R.drawable.ic_menu_delete_holo_dark);
- removeAccount.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER |
- MenuItem.SHOW_AS_ACTION_WITH_TEXT);
+ final UserManager um = (UserManager) getSystemService(Context.USER_SERVICE);
+ if (!um.hasUserRestriction(UserManager.DISALLOW_MODIFY_ACCOUNTS)) {
+ MenuItem removeAccount = menu.add(0, MENU_REMOVE_ACCOUNT_ID, 0,
+ getString(R.string.remove_account_label))
+ .setIcon(R.drawable.ic_menu_delete_holo_dark);
+ removeAccount.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER |
+ MenuItem.SHOW_AS_ACTION_WITH_TEXT);
+ }
syncNow.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER |
MenuItem.SHOW_AS_ACTION_WITH_TEXT);
syncCancel.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER |
diff --git a/src/com/android/settings/accounts/AddAccountSettings.java b/src/com/android/settings/accounts/AddAccountSettings.java
index 6f7e29a..f1b7752 100644
--- a/src/com/android/settings/accounts/AddAccountSettings.java
+++ b/src/com/android/settings/accounts/AddAccountSettings.java
@@ -23,8 +23,10 @@ import android.accounts.AuthenticatorException;
import android.accounts.OperationCanceledException;
import android.app.Activity;
import android.app.PendingIntent;
+import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
+import android.os.UserManager;
import android.util.Log;
import com.android.settings.Utils;
@@ -71,7 +73,8 @@ public class AddAccountSettings extends Activity {
private PendingIntent mPendingIntent;
- private AccountManagerCallback<Bundle> mCallback = new AccountManagerCallback<Bundle>() {
+ private final AccountManagerCallback<Bundle> mCallback = new AccountManagerCallback<Bundle>() {
+ @Override
public void run(AccountManagerFuture<Bundle> future) {
boolean done = true;
try {
@@ -120,8 +123,10 @@ public class AddAccountSettings extends Activity {
if (Log.isLoggable(TAG, Log.VERBOSE)) Log.v(TAG, "restored");
}
- if (mAddAccountCalled) {
+ final UserManager um = (UserManager) getSystemService(Context.USER_SERVICE);
+ if (mAddAccountCalled || um.hasUserRestriction(UserManager.DISALLOW_MODIFY_ACCOUNTS)) {
// We already called add account - maybe the callback was lost.
+ // Or we aren't allowed to add an account.
finish();
return;
}
@@ -162,6 +167,7 @@ public class AddAccountSettings extends Activity {
}
}
+ @Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putBoolean(KEY_ADD_CALLED, mAddAccountCalled);