OSDN Git Service

Made changes to menu items in WifiSettings and AccountSyncSettings.
authorSudheer Shanka <sudheersai@google.com>
Wed, 27 Jan 2016 14:08:44 +0000 (14:08 +0000)
committerSudheer Shanka <sudheersai@google.com>
Wed, 27 Jan 2016 14:08:44 +0000 (14:08 +0000)
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
src/com/android/settings/wifi/WifiSettings.java

index ed56651..8471dba 100644 (file)
@@ -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 |
index 67f1c43..2336899 100644 (file)
@@ -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;
         }
     }