From 7e61c233061b4e87257a332be83f72f840d07c62 Mon Sep 17 00:00:00 2001 From: Maggie Benthall Date: Thu, 11 Apr 2013 15:45:58 -0400 Subject: [PATCH] Implement Settings app UX for when a user has wifi config locked down. When the user is restricted from configuring wifi: - Leave the on/off button enabled - Hide all menu options - Hide all networks, and display a message saying: "This user is not allowed to configure wireless networks." Change-Id: I20193b552ea071740686bd9091637459e9b668b5 --- res/values/strings.xml | 2 ++ src/com/android/settings/wifi/WifiSettings.java | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/res/values/strings.xml b/res/values/strings.xml index c266e0b5a2b..498f712719b 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1207,6 +1207,8 @@ Searching\u2026 No nearby wireless displays were found. + + This user is not allowed to configure wireless networks. Paired displays diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index 9e0f8d71e41..10a153d061d 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -17,6 +17,7 @@ package com.android.settings.wifi; import static android.net.wifi.WifiConfiguration.INVALID_NETWORK_ID; +import static android.os.UserManager.DISALLOW_CONFIG_WIFI; import android.app.ActionBar; import android.app.Activity; @@ -41,6 +42,7 @@ import android.net.wifi.WpsInfo; import android.os.Bundle; import android.os.Handler; import android.os.Message; +import android.os.UserManager; import android.preference.Preference; import android.preference.PreferenceActivity; import android.preference.PreferenceScreen; @@ -126,6 +128,8 @@ public class WifiSettings extends SettingsPreferenceFragment private boolean mP2pSupported; + private UserManager mUserManager; + private WifiEnabler mWifiEnabler; // An access point being editted is stored here. private AccessPoint mSelectedAccessPoint; @@ -276,6 +280,7 @@ public class WifiSettings extends SettingsPreferenceFragment mP2pSupported = getPackageManager().hasSystemFeature(PackageManager.FEATURE_WIFI_DIRECT); mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); + mUserManager = (UserManager) getSystemService(Context.USER_SERVICE); mConnectListener = new WifiManager.ActionListener() { @Override @@ -431,6 +436,9 @@ public class WifiSettings extends SettingsPreferenceFragment @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + // If the user is not allowed to configure wifi, do not show the menu. + if (mUserManager.hasUserRestriction(DISALLOW_CONFIG_WIFI)) return; + final boolean wifiIsEnabled = mWifiManager.isWifiEnabled(); if (mSetupWizardMode) { // FIXME: add setIcon() when graphics are available @@ -486,6 +494,9 @@ public class WifiSettings extends SettingsPreferenceFragment @Override public boolean onOptionsItemSelected(MenuItem item) { + // If the user is not allowed to configure wifi, do not handle menu selections. + if (mUserManager.hasUserRestriction(DISALLOW_CONFIG_WIFI)) return false; + switch (item.getItemId()) { case MENU_ID_WPS_PBC: showDialog(WPS_PBC_DIALOG_ID); @@ -704,6 +715,10 @@ public class WifiSettings extends SettingsPreferenceFragment // Safeguard from some delayed event handling if (getActivity() == null) return; + if (mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_WIFI)) { + addMessagePreference(R.string.wifi_display_settings_empty_list_user_restricted); + return; + } final int wifiState = mWifiManager.getWifiState(); switch (wifiState) {