WifiEnabler.java revision c591a8b95da1bdbda332d7827622829af30dad4a
1afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project/* 2b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh * Copyright (C) 2010 The Android Open Source Project 3afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * 4afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 5afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * you may not use this file except in compliance with the License. 6afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * You may obtain a copy of the License at 7afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * 8afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 9afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * 10afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 11afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 12afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * See the License for the specific language governing permissions and 14afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * limitations under the License. 15afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project */ 16afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 17afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectpackage com.android.settings.wifi; 18afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 19afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.content.BroadcastReceiver; 20afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.content.Context; 21afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.content.Intent; 22afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.content.IntentFilter; 23c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriffimport android.database.ContentObserver; 24afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.net.NetworkInfo; 25feeb75613241556ee2a6504a55a2f3849fb4ce4cChia-chi Yehimport android.net.wifi.SupplicantState; 26feeb75613241556ee2a6504a55a2f3849fb4ce4cChia-chi Yehimport android.net.wifi.WifiInfo; 27afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.net.wifi.WifiManager; 28c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriffimport android.os.UserHandle; 2983bcc98af19597a213a8d174e8f1b47453d513ceMike Lockwoodimport android.provider.Settings; 30e78c1879058571c00879f0d3e756951302adf513Gilles Debunneimport android.widget.CompoundButton; 31e78c1879058571c00879f0d3e756951302adf513Gilles Debunneimport android.widget.Switch; 32b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yehimport android.widget.Toast; 33afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 34e78c1879058571c00879f0d3e756951302adf513Gilles Debunneimport com.android.settings.R; 35e78c1879058571c00879f0d3e756951302adf513Gilles Debunneimport com.android.settings.WirelessSettings; 36e78c1879058571c00879f0d3e756951302adf513Gilles Debunne 37cb52d4b4ab1156aa326fc51c878c2e7ba3f1146cIrfan Sheriffimport java.util.concurrent.atomic.AtomicBoolean; 38cb52d4b4ab1156aa326fc51c878c2e7ba3f1146cIrfan Sheriff 39e78c1879058571c00879f0d3e756951302adf513Gilles Debunnepublic class WifiEnabler implements CompoundButton.OnCheckedChangeListener { 40cb52d4b4ab1156aa326fc51c878c2e7ba3f1146cIrfan Sheriff private final Context mContext; 41e78c1879058571c00879f0d3e756951302adf513Gilles Debunne private Switch mSwitch; 42cb52d4b4ab1156aa326fc51c878c2e7ba3f1146cIrfan Sheriff private AtomicBoolean mConnected = new AtomicBoolean(false); 43c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff private AtomicBoolean mNotifyScanMode = new AtomicBoolean(true); 44cb52d4b4ab1156aa326fc51c878c2e7ba3f1146cIrfan Sheriff 45b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh private final WifiManager mWifiManager; 46b1c0e0b1c93acbc71a2063411ae4ac86f9fc9fbfIrfan Sheriff private boolean mStateMachineEvent; 47b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh private final IntentFilter mIntentFilter; 48b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh private final BroadcastReceiver mReceiver = new BroadcastReceiver() { 49afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 50afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onReceive(Context context, Intent intent) { 51b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh String action = intent.getAction(); 52b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(action)) { 53b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh handleWifiStateChanged(intent.getIntExtra( 54b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_UNKNOWN)); 55feeb75613241556ee2a6504a55a2f3849fb4ce4cChia-chi Yeh } else if (WifiManager.SUPPLICANT_STATE_CHANGED_ACTION.equals(action)) { 56cb52d4b4ab1156aa326fc51c878c2e7ba3f1146cIrfan Sheriff if (!mConnected.get()) { 57cb52d4b4ab1156aa326fc51c878c2e7ba3f1146cIrfan Sheriff handleStateChanged(WifiInfo.getDetailedStateOf((SupplicantState) 58cb52d4b4ab1156aa326fc51c878c2e7ba3f1146cIrfan Sheriff intent.getParcelableExtra(WifiManager.EXTRA_NEW_STATE))); 59cb52d4b4ab1156aa326fc51c878c2e7ba3f1146cIrfan Sheriff } 60b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh } else if (WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(action)) { 61cb52d4b4ab1156aa326fc51c878c2e7ba3f1146cIrfan Sheriff NetworkInfo info = (NetworkInfo) intent.getParcelableExtra( 62cb52d4b4ab1156aa326fc51c878c2e7ba3f1146cIrfan Sheriff WifiManager.EXTRA_NETWORK_INFO); 63cb52d4b4ab1156aa326fc51c878c2e7ba3f1146cIrfan Sheriff mConnected.set(info.isConnected()); 64cb52d4b4ab1156aa326fc51c878c2e7ba3f1146cIrfan Sheriff handleStateChanged(info.getDetailedState()); 65afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 66afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 67afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 684e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh 69e78c1879058571c00879f0d3e756951302adf513Gilles Debunne public WifiEnabler(Context context, Switch switch_) { 70afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mContext = context; 71e78c1879058571c00879f0d3e756951302adf513Gilles Debunne mSwitch = switch_; 729dee8a96c5682aebff50adc8c87519ee6c36e3efChia-chi Yeh 739dee8a96c5682aebff50adc8c87519ee6c36e3efChia-chi Yeh mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); 74b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh mIntentFilter = new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION); 75feeb75613241556ee2a6504a55a2f3849fb4ce4cChia-chi Yeh // The order matters! We really should not depend on this. :( 76feeb75613241556ee2a6504a55a2f3849fb4ce4cChia-chi Yeh mIntentFilter.addAction(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION); 77b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh mIntentFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION); 78c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff registerForNotifyUserOnScanModeChange(); 79afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 80afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 81afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void resume() { 82b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh // Wi-Fi state is sticky, so just let the receiver update UI 83b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh mContext.registerReceiver(mReceiver, mIntentFilter); 84e78c1879058571c00879f0d3e756951302adf513Gilles Debunne mSwitch.setOnCheckedChangeListener(this); 85afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 86cb52d4b4ab1156aa326fc51c878c2e7ba3f1146cIrfan Sheriff 87afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void pause() { 88b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh mContext.unregisterReceiver(mReceiver); 89e78c1879058571c00879f0d3e756951302adf513Gilles Debunne mSwitch.setOnCheckedChangeListener(null); 90afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 91cb52d4b4ab1156aa326fc51c878c2e7ba3f1146cIrfan Sheriff 92e78c1879058571c00879f0d3e756951302adf513Gilles Debunne public void setSwitch(Switch switch_) { 93e78c1879058571c00879f0d3e756951302adf513Gilles Debunne if (mSwitch == switch_) return; 94e78c1879058571c00879f0d3e756951302adf513Gilles Debunne mSwitch.setOnCheckedChangeListener(null); 95e78c1879058571c00879f0d3e756951302adf513Gilles Debunne mSwitch = switch_; 96e78c1879058571c00879f0d3e756951302adf513Gilles Debunne mSwitch.setOnCheckedChangeListener(this); 97e78c1879058571c00879f0d3e756951302adf513Gilles Debunne 98e78c1879058571c00879f0d3e756951302adf513Gilles Debunne final int wifiState = mWifiManager.getWifiState(); 99e78c1879058571c00879f0d3e756951302adf513Gilles Debunne boolean isEnabled = wifiState == WifiManager.WIFI_STATE_ENABLED; 100e78c1879058571c00879f0d3e756951302adf513Gilles Debunne boolean isDisabled = wifiState == WifiManager.WIFI_STATE_DISABLED; 101e78c1879058571c00879f0d3e756951302adf513Gilles Debunne mSwitch.setChecked(isEnabled); 102e78c1879058571c00879f0d3e756951302adf513Gilles Debunne mSwitch.setEnabled(isEnabled || isDisabled); 103e78c1879058571c00879f0d3e756951302adf513Gilles Debunne } 104cb52d4b4ab1156aa326fc51c878c2e7ba3f1146cIrfan Sheriff 105c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff private void getPersistedNotifyScanMode() { 106c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff mNotifyScanMode.set(Settings.Global.getInt(mContext.getContentResolver(), 107c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff Settings.Global.WIFI_NOTIFY_SCAN_ALWAYS_AVAILABLE, 1) == 1); 108c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff } 109c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff 110c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff /** 111c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff * Observes settings changes to notify the user when scan mode is active and 112c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff * Wi-Fi is turned off 113c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff */ 114c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff private void registerForNotifyUserOnScanModeChange() { 115c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff ContentObserver contentObserver = new ContentObserver(null) { 116c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff @Override 117c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff public void onChange(boolean selfChange) { 118c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff getPersistedNotifyScanMode(); 119c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff } 120c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff }; 121c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff 122c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff mContext.getContentResolver().registerContentObserver( 123c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff Settings.Global.getUriFor(Settings.Global.WIFI_NOTIFY_SCAN_ALWAYS_AVAILABLE), 124c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff false, contentObserver); 125c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff getPersistedNotifyScanMode(); 126c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff } 127c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff 128e78c1879058571c00879f0d3e756951302adf513Gilles Debunne public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 129b1c0e0b1c93acbc71a2063411ae4ac86f9fc9fbfIrfan Sheriff //Do nothing if called as a result of a state machine event 130b1c0e0b1c93acbc71a2063411ae4ac86f9fc9fbfIrfan Sheriff if (mStateMachineEvent) { 131b1c0e0b1c93acbc71a2063411ae4ac86f9fc9fbfIrfan Sheriff return; 132b1c0e0b1c93acbc71a2063411ae4ac86f9fc9fbfIrfan Sheriff } 133b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh // Show toast message if Wi-Fi is not allowed in airplane mode 134860eceba2c1e5aea13eafb0d60b64abe9f7c700dJeff Sharkey if (isChecked && !WirelessSettings.isRadioAllowed(mContext, Settings.Global.RADIO_WIFI)) { 135e78c1879058571c00879f0d3e756951302adf513Gilles Debunne Toast.makeText(mContext, R.string.wifi_in_airplane_mode, Toast.LENGTH_SHORT).show(); 136e78c1879058571c00879f0d3e756951302adf513Gilles Debunne // Reset switch to off. No infinite check/listenenr loop. 137e78c1879058571c00879f0d3e756951302adf513Gilles Debunne buttonView.setChecked(false); 138afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 139afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 140e78c1879058571c00879f0d3e756951302adf513Gilles Debunne // Disable tethering if enabling Wifi 141a6a74e222a994e29a1daa7178943a1fc9dd06c47Irfan Sheriff int wifiApState = mWifiManager.getWifiApState(); 142e78c1879058571c00879f0d3e756951302adf513Gilles Debunne if (isChecked && ((wifiApState == WifiManager.WIFI_AP_STATE_ENABLING) || 143a6a74e222a994e29a1daa7178943a1fc9dd06c47Irfan Sheriff (wifiApState == WifiManager.WIFI_AP_STATE_ENABLED))) { 144a6a74e222a994e29a1daa7178943a1fc9dd06c47Irfan Sheriff mWifiManager.setWifiApEnabled(null, false); 145a6a74e222a994e29a1daa7178943a1fc9dd06c47Irfan Sheriff } 146e78c1879058571c00879f0d3e756951302adf513Gilles Debunne 147c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff if (isChecked == false) { 148c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff if (mWifiManager.isScanAlwaysAvailable() && mNotifyScanMode.get()) { 149c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff Intent intent = new Intent(WifiManager.ACTION_NOTIFY_SCAN_ALWAYS_AVAILABLE); 150c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff mContext.startActivityAsUser(intent, null, UserHandle.CURRENT); 151c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff } 152c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff } 153c591a8b95da1bdbda332d7827622829af30dad4aIrfan Sheriff 154e78c1879058571c00879f0d3e756951302adf513Gilles Debunne if (mWifiManager.setWifiEnabled(isChecked)) { 155e78c1879058571c00879f0d3e756951302adf513Gilles Debunne // Intent has been taken into account, disable until new state is active 156e78c1879058571c00879f0d3e756951302adf513Gilles Debunne mSwitch.setEnabled(false); 157b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh } else { 158e78c1879058571c00879f0d3e756951302adf513Gilles Debunne // Error 159e78c1879058571c00879f0d3e756951302adf513Gilles Debunne Toast.makeText(mContext, R.string.wifi_error, Toast.LENGTH_SHORT).show(); 160afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 161b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh } 162cb52d4b4ab1156aa326fc51c878c2e7ba3f1146cIrfan Sheriff 163b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh private void handleWifiStateChanged(int state) { 164b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh switch (state) { 165b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh case WifiManager.WIFI_STATE_ENABLING: 166e78c1879058571c00879f0d3e756951302adf513Gilles Debunne mSwitch.setEnabled(false); 167b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh break; 168b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh case WifiManager.WIFI_STATE_ENABLED: 169b1c0e0b1c93acbc71a2063411ae4ac86f9fc9fbfIrfan Sheriff setSwitchChecked(true); 170e78c1879058571c00879f0d3e756951302adf513Gilles Debunne mSwitch.setEnabled(true); 171b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh break; 172b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh case WifiManager.WIFI_STATE_DISABLING: 173e78c1879058571c00879f0d3e756951302adf513Gilles Debunne mSwitch.setEnabled(false); 174b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh break; 175b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh case WifiManager.WIFI_STATE_DISABLED: 176b1c0e0b1c93acbc71a2063411ae4ac86f9fc9fbfIrfan Sheriff setSwitchChecked(false); 177e78c1879058571c00879f0d3e756951302adf513Gilles Debunne mSwitch.setEnabled(true); 178b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh break; 179b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh default: 180b1c0e0b1c93acbc71a2063411ae4ac86f9fc9fbfIrfan Sheriff setSwitchChecked(false); 181e78c1879058571c00879f0d3e756951302adf513Gilles Debunne mSwitch.setEnabled(true); 182b1c0e0b1c93acbc71a2063411ae4ac86f9fc9fbfIrfan Sheriff break; 183b1c0e0b1c93acbc71a2063411ae4ac86f9fc9fbfIrfan Sheriff } 184b1c0e0b1c93acbc71a2063411ae4ac86f9fc9fbfIrfan Sheriff } 185b1c0e0b1c93acbc71a2063411ae4ac86f9fc9fbfIrfan Sheriff 186b1c0e0b1c93acbc71a2063411ae4ac86f9fc9fbfIrfan Sheriff private void setSwitchChecked(boolean checked) { 187b1c0e0b1c93acbc71a2063411ae4ac86f9fc9fbfIrfan Sheriff if (checked != mSwitch.isChecked()) { 188b1c0e0b1c93acbc71a2063411ae4ac86f9fc9fbfIrfan Sheriff mStateMachineEvent = true; 189b1c0e0b1c93acbc71a2063411ae4ac86f9fc9fbfIrfan Sheriff mSwitch.setChecked(checked); 190b1c0e0b1c93acbc71a2063411ae4ac86f9fc9fbfIrfan Sheriff mStateMachineEvent = false; 191afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 192afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 193afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 194e78c1879058571c00879f0d3e756951302adf513Gilles Debunne private void handleStateChanged(@SuppressWarnings("unused") NetworkInfo.DetailedState state) { 195e78c1879058571c00879f0d3e756951302adf513Gilles Debunne // After the refactoring from a CheckBoxPreference to a Switch, this method is useless since 196e78c1879058571c00879f0d3e756951302adf513Gilles Debunne // there is nowhere to display a summary. 197e78c1879058571c00879f0d3e756951302adf513Gilles Debunne // This code is kept in case a future change re-introduces an associated text. 198e78c1879058571c00879f0d3e756951302adf513Gilles Debunne /* 199feeb75613241556ee2a6504a55a2f3849fb4ce4cChia-chi Yeh // WifiInfo is valid if and only if Wi-Fi is enabled. 200e78c1879058571c00879f0d3e756951302adf513Gilles Debunne // Here we use the state of the switch as an optimization. 201e78c1879058571c00879f0d3e756951302adf513Gilles Debunne if (state != null && mSwitch.isChecked()) { 202feeb75613241556ee2a6504a55a2f3849fb4ce4cChia-chi Yeh WifiInfo info = mWifiManager.getConnectionInfo(); 203feeb75613241556ee2a6504a55a2f3849fb4ce4cChia-chi Yeh if (info != null) { 204e78c1879058571c00879f0d3e756951302adf513Gilles Debunne //setSummary(Summary.get(mContext, info.getSSID(), state)); 205feeb75613241556ee2a6504a55a2f3849fb4ce4cChia-chi Yeh } 206afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 207e78c1879058571c00879f0d3e756951302adf513Gilles Debunne */ 208afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 209afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project} 210