From 7ff7ea1e7f010f294b411fb58586c3bfb7f386e6 Mon Sep 17 00:00:00 2001 From: Sudheer Shanka Date: Wed, 27 Jan 2016 14:08:44 +0000 Subject: [PATCH] Made changes to menu items in WifiSettings and AccountSyncSettings. When the admin has set disallow_config_wifi, menu items are not added. we need to check if the menu items can be added after this fragment is resumed. And for remove account menuitem, check whether any admin has disabled management of a specific account type. Change-Id: I58f5a59fe0614c9bc7068b15f43f89527939359d --- src/com/android/settings/accounts/AccountSyncSettings.java | 6 +++++- src/com/android/settings/wifi/WifiSettings.java | 13 +++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/accounts/AccountSyncSettings.java b/src/com/android/settings/accounts/AccountSyncSettings.java index ed56651b54..8471dbaafa 100644 --- a/src/com/android/settings/accounts/AccountSyncSettings.java +++ b/src/com/android/settings/accounts/AccountSyncSettings.java @@ -270,9 +270,13 @@ public class AccountSyncSettings extends AccountPreferenceBase { .setIcon(R.drawable.ic_menu_delete); removeAccount.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER | MenuItem.SHOW_AS_ACTION_WITH_TEXT); - final EnforcedAdmin admin = RestrictedLockUtils.checkIfRestrictionEnforced( + EnforcedAdmin admin = RestrictedLockUtils.checkIfRestrictionEnforced( getPrefContext(), UserManager.DISALLOW_MODIFY_ACCOUNTS, mUserHandle.getIdentifier()); + if (admin == null) { + admin = RestrictedLockUtils.checkIfAccountManagementDisabled( + getPrefContext(), mAccount.type); + } RestrictedLockUtils.setMenuItemAsDisabledByAdmin(getPrefContext(), removeAccount, admin); syncNow.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER | diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index 67f1c43fe4..2336899ea3 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -158,6 +158,8 @@ public class WifiSettings extends RestrictedSettingsFragment private AccessPointPreference.UserBadgeCache mUserBadgeCache; private Preference mAddPreference; + private MenuItem mScanMenuItem; + /* End of "used in Wifi Setup context" */ public WifiSettings() { @@ -324,6 +326,7 @@ public class WifiSettings extends RestrictedSettingsFragment } mWifiTracker.startTracking(); + activity.invalidateOptionsMenu(); } @Override @@ -350,8 +353,8 @@ public class WifiSettings extends RestrictedSettingsFragment */ void addOptionsMenuItems(Menu menu) { final boolean wifiIsEnabled = mWifiTracker.isWifiEnabled(); - menu.add(Menu.NONE, MENU_ID_SCAN, 0, R.string.menu_stats_refresh) - .setEnabled(wifiIsEnabled) + mScanMenuItem = menu.add(Menu.NONE, MENU_ID_SCAN, 0, R.string.menu_stats_refresh); + mScanMenuItem.setEnabled(wifiIsEnabled) .setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER); menu.add(Menu.NONE, MENU_ID_ADVANCED, 0, R.string.wifi_menu_advanced) .setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER); @@ -689,6 +692,9 @@ public class WifiSettings extends RestrictedSettingsFragment getPreferenceScreen().addPreference(mAddPreference); setProgressBarVisible(false); } + if (mScanMenuItem != null) { + mScanMenuItem.setEnabled(true); + } break; case WifiManager.WIFI_STATE_ENABLING: @@ -704,6 +710,9 @@ public class WifiSettings extends RestrictedSettingsFragment case WifiManager.WIFI_STATE_DISABLED: setOffMessage(); setProgressBarVisible(false); + if (mScanMenuItem != null) { + mScanMenuItem.setEnabled(false); + } break; } } -- 2.11.0