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