fix wifi checkbox status update

Bug: 3277268
Change-Id: Idfabf1be41c5e54cd93695de1bb06164760d7fad
This commit is contained in:
Irfan Sheriff
2010-12-16 14:58:02 -08:00
parent 73e70721b0
commit cb52d4b4ab

View File

@@ -33,11 +33,15 @@ import android.provider.Settings;
import android.text.TextUtils; import android.text.TextUtils;
import android.widget.Toast; import android.widget.Toast;
import java.util.concurrent.atomic.AtomicBoolean;
public class WifiEnabler implements Preference.OnPreferenceChangeListener { public class WifiEnabler implements Preference.OnPreferenceChangeListener {
private final Context mContext; private final Context mContext;
private final CheckBoxPreference mCheckBox; private final CheckBoxPreference mCheckBox;
private final CharSequence mOriginalSummary; private final CharSequence mOriginalSummary;
private AtomicBoolean mConnected = new AtomicBoolean(false);
private final WifiManager mWifiManager; private final WifiManager mWifiManager;
private final IntentFilter mIntentFilter; private final IntentFilter mIntentFilter;
private final BroadcastReceiver mReceiver = new BroadcastReceiver() { private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@@ -48,11 +52,15 @@ public class WifiEnabler implements Preference.OnPreferenceChangeListener {
handleWifiStateChanged(intent.getIntExtra( handleWifiStateChanged(intent.getIntExtra(
WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_UNKNOWN)); WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_UNKNOWN));
} else if (WifiManager.SUPPLICANT_STATE_CHANGED_ACTION.equals(action)) { } else if (WifiManager.SUPPLICANT_STATE_CHANGED_ACTION.equals(action)) {
handleStateChanged(WifiInfo.getDetailedStateOf((SupplicantState) if (!mConnected.get()) {
intent.getParcelableExtra(WifiManager.EXTRA_NEW_STATE))); handleStateChanged(WifiInfo.getDetailedStateOf((SupplicantState)
intent.getParcelableExtra(WifiManager.EXTRA_NEW_STATE)));
}
} else if (WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(action)) { } else if (WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(action)) {
handleStateChanged(((NetworkInfo) intent.getParcelableExtra( NetworkInfo info = (NetworkInfo) intent.getParcelableExtra(
WifiManager.EXTRA_NETWORK_INFO)).getDetailedState()); WifiManager.EXTRA_NETWORK_INFO);
mConnected.set(info.isConnected());
handleStateChanged(info.getDetailedState());
} }
} }
}; };