diff options
Diffstat (limited to 'src/com/android/settings/wifi/AdvancedWifiSettings.java')
-rw-r--r-- | src/com/android/settings/wifi/AdvancedWifiSettings.java | 38 |
1 files changed, 16 insertions, 22 deletions
diff --git a/src/com/android/settings/wifi/AdvancedWifiSettings.java b/src/com/android/settings/wifi/AdvancedWifiSettings.java index f764dd4..b933a28 100644 --- a/src/com/android/settings/wifi/AdvancedWifiSettings.java +++ b/src/com/android/settings/wifi/AdvancedWifiSettings.java @@ -60,7 +60,6 @@ public class AdvancedWifiSettings extends SettingsPreferenceFragment private static final String KEY_COUNTRY_CODE = "wifi_countrycode"; private static final String KEY_NOTIFY_OPEN_NETWORKS = "notify_open_networks"; private static final String KEY_SLEEP_POLICY = "sleep_policy"; - private static final String KEY_POOR_NETWORK_DETECTION = "wifi_poor_network_detection"; private static final String KEY_INSTALL_CREDENTIALS = "install_credentials"; private static final String KEY_WIFI_ASSISTANT = "wifi_assistant"; private static final String KEY_WIFI_DIRECT = "wifi_direct"; @@ -71,6 +70,9 @@ public class AdvancedWifiSettings extends SettingsPreferenceFragment private NetworkScoreManager mNetworkScoreManager; private AppListSwitchPreference mWifiAssistantPreference; + private Preference mWpsPushPref; + private Preference mWpsPinPref; + private IntentFilter mFilter; private final BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override @@ -79,6 +81,11 @@ public class AdvancedWifiSettings extends SettingsPreferenceFragment if (action.equals(WifiManager.LINK_CONFIGURATION_CHANGED_ACTION) || action.equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)) { refreshWifiInfo(); + } else if (action.equals(WifiManager.WIFI_STATE_CHANGED_ACTION)) { + int state = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, + WifiManager.WIFI_STATE_UNKNOWN); + mWpsPushPref.setEnabled(WifiManager.WIFI_STATE_ENABLED == state); + mWpsPinPref.setEnabled(WifiManager.WIFI_STATE_ENABLED == state); } } }; @@ -101,6 +108,7 @@ public class AdvancedWifiSettings extends SettingsPreferenceFragment mFilter = new IntentFilter(); mFilter.addAction(WifiManager.LINK_CONFIGURATION_CHANGED_ACTION); mFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION); + mFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION); mNetworkScoreManager = (NetworkScoreManager) getSystemService(Context.NETWORK_SCORE_SERVICE); } @@ -126,19 +134,6 @@ public class AdvancedWifiSettings extends SettingsPreferenceFragment Settings.Global.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON, 0) == 1); notifyOpenNetworks.setEnabled(mWifiManager.isWifiEnabled()); - SwitchPreference poorNetworkDetection = - (SwitchPreference) findPreference(KEY_POOR_NETWORK_DETECTION); - if (poorNetworkDetection != null) { - if (Utils.isWifiOnly(getActivity())) { - getPreferenceScreen().removePreference(poorNetworkDetection); - } else { - poorNetworkDetection.setChecked(Settings.Global.getInt(getContentResolver(), - Settings.Global.WIFI_WATCHDOG_POOR_NETWORK_TEST_ENABLED, - WifiManager.DEFAULT_POOR_NETWORK_AVOIDANCE_ENABLED ? - 1 : 0) == 1); - } - } - Intent intent = new Intent(Credentials.INSTALL_AS_USER_ACTION); intent.setClassName("com.android.certinstaller", "com.android.certinstaller.CertInstallerMain"); @@ -162,25 +157,28 @@ public class AdvancedWifiSettings extends SettingsPreferenceFragment Preference wifiDirectPref = findPreference(KEY_WIFI_DIRECT); wifiDirectPref.setIntent(wifiDirectIntent); + final int wifiState = mWifiManager.getWifiState(); // WpsDialog: Create the dialog like WifiSettings does. - Preference wpsPushPref = findPreference(KEY_WPS_PUSH); - wpsPushPref.setOnPreferenceClickListener(new OnPreferenceClickListener() { + mWpsPushPref = findPreference(KEY_WPS_PUSH); + mWpsPushPref.setOnPreferenceClickListener(new OnPreferenceClickListener() { public boolean onPreferenceClick(Preference arg0) { WpsFragment wpsFragment = new WpsFragment(WpsInfo.PBC); wpsFragment.show(getFragmentManager(), KEY_WPS_PUSH); return true; } }); + mWpsPushPref.setEnabled(WifiManager.WIFI_STATE_ENABLED == wifiState); // WpsDialog: Create the dialog like WifiSettings does. - Preference wpsPinPref = findPreference(KEY_WPS_PIN); - wpsPinPref.setOnPreferenceClickListener(new OnPreferenceClickListener(){ + mWpsPinPref = findPreference(KEY_WPS_PIN); + mWpsPinPref.setOnPreferenceClickListener(new OnPreferenceClickListener(){ public boolean onPreferenceClick(Preference arg0) { WpsFragment wpsFragment = new WpsFragment(WpsInfo.DISPLAY); wpsFragment.show(getFragmentManager(), KEY_WPS_PIN); return true; } }); + mWpsPinPref.setEnabled(WifiManager.WIFI_STATE_ENABLED == wifiState); ListPreference frequencyPref = (ListPreference) findPreference(KEY_FREQUENCY_BAND); @@ -277,10 +275,6 @@ public class AdvancedWifiSettings extends SettingsPreferenceFragment Global.putInt(getContentResolver(), Settings.Global.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON, ((SwitchPreference) preference).isChecked() ? 1 : 0); - } else if (KEY_POOR_NETWORK_DETECTION.equals(key)) { - Global.putInt(getContentResolver(), - Global.WIFI_WATCHDOG_POOR_NETWORK_TEST_ENABLED, - ((SwitchPreference) preference).isChecked() ? 1 : 0); } else { return super.onPreferenceTreeClick(screen, preference); } |