Disable instead of hiding add account preference

Bug: 29236399
Change-Id: Ieb1af7f31a54b1502ae99682fc423e37c86a2353
This commit is contained in:
Tony Mak
2016-07-14 13:42:50 +08:00
parent 2c5a27dc7a
commit 981e9a96dc
2 changed files with 14 additions and 8 deletions

View File

@@ -316,9 +316,11 @@ public class AccountSettings extends SettingsPreferenceFragment
if (userInfo.isEnabled()) { if (userInfo.isEnabled()) {
profileData.authenticatorHelper = new AuthenticatorHelper(context, profileData.authenticatorHelper = new AuthenticatorHelper(context,
userInfo.getUserHandle(), this); userInfo.getUserHandle(), this);
if (!RestrictedLockUtils.hasBaseUserRestriction(context,
UserManager.DISALLOW_MODIFY_ACCOUNTS, userInfo.id)) {
profileData.addAccountPreference = newAddAccountPreference(context); profileData.addAccountPreference = newAddAccountPreference(context);
if (RestrictedLockUtils.hasBaseUserRestriction(context,
UserManager.DISALLOW_MODIFY_ACCOUNTS, userInfo.id)) {
profileData.addAccountPreference.setEnabled(false);
} else {
profileData.addAccountPreference.checkRestrictionAndSetDisabled( profileData.addAccountPreference.checkRestrictionAndSetDisabled(
DISALLOW_MODIFY_ACCOUNTS, userInfo.id); DISALLOW_MODIFY_ACCOUNTS, userInfo.id);
} }

View File

@@ -267,13 +267,16 @@ public class AccountSyncSettings extends AccountPreferenceBase {
MenuItem syncCancel = menu.add(0, MENU_SYNC_CANCEL_ID, 0, MenuItem syncCancel = menu.add(0, MENU_SYNC_CANCEL_ID, 0,
getString(R.string.sync_menu_sync_cancel)) getString(R.string.sync_menu_sync_cancel))
.setIcon(com.android.internal.R.drawable.ic_menu_close_clear_cancel); .setIcon(com.android.internal.R.drawable.ic_menu_close_clear_cancel);
if (!RestrictedLockUtils.hasBaseUserRestriction(getPrefContext(),
UserManager.DISALLOW_MODIFY_ACCOUNTS, mUserHandle.getIdentifier())) {
MenuItem removeAccount = menu.add(0, MENU_REMOVE_ACCOUNT_ID, 0, MenuItem removeAccount = menu.add(0, MENU_REMOVE_ACCOUNT_ID, 0,
getString(R.string.remove_account_label)) getString(R.string.remove_account_label))
.setIcon(R.drawable.ic_menu_delete); .setIcon(R.drawable.ic_menu_delete);
removeAccount.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER | removeAccount.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER |
MenuItem.SHOW_AS_ACTION_WITH_TEXT); MenuItem.SHOW_AS_ACTION_WITH_TEXT);
if (RestrictedLockUtils.hasBaseUserRestriction(getPrefContext(),
UserManager.DISALLOW_MODIFY_ACCOUNTS, mUserHandle.getIdentifier())) {
removeAccount.setEnabled(false);
} else {
EnforcedAdmin admin = RestrictedLockUtils.checkIfRestrictionEnforced( EnforcedAdmin admin = RestrictedLockUtils.checkIfRestrictionEnforced(
getPrefContext(), UserManager.DISALLOW_MODIFY_ACCOUNTS, getPrefContext(), UserManager.DISALLOW_MODIFY_ACCOUNTS,
mUserHandle.getIdentifier()); mUserHandle.getIdentifier());
@@ -284,6 +287,7 @@ public class AccountSyncSettings extends AccountPreferenceBase {
RestrictedLockUtils.setMenuItemAsDisabledByAdmin(getPrefContext(), RestrictedLockUtils.setMenuItemAsDisabledByAdmin(getPrefContext(),
removeAccount, admin); removeAccount, admin);
} }
syncNow.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER | syncNow.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER |
MenuItem.SHOW_AS_ACTION_WITH_TEXT); MenuItem.SHOW_AS_ACTION_WITH_TEXT);
syncCancel.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER | syncCancel.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER |