Remember wifi disable due to airplane

Add the wifi disabled due to airplane mode as a seperate settings so
that wifi is restored after a reboot when airplane mode is turned off

Bug: 5365718
Change-Id: I36a9694bbcacd5bb5f89498e4adc47c81e611da6
This commit is contained in:
Irfan Sheriff
2011-10-03 12:13:20 -07:00
parent ce0a7ade96
commit 31b92e28a5

View File

@ -149,6 +149,8 @@ public class WifiService extends IWifiManager.Stub {
private static final int WIFI_ENABLED = 1;
/* Wifi enabled while in airplane mode */
private static final int WIFI_ENABLED_AIRPLANE_OVERRIDE = 2;
/* Wifi disabled due to airplane mode on */
private static final int WIFI_DISABLED_AIRPLANE_ON = 3;
private AtomicInteger mWifiState = new AtomicInteger(WIFI_DISABLED);
private AtomicBoolean mAirplaneModeOn = new AtomicBoolean(false);
@ -478,14 +480,19 @@ public class WifiService extends IWifiManager.Stub {
private void persistWifiEnabled(boolean enabled) {
final ContentResolver cr = mContext.getContentResolver();
boolean airplane = mAirplaneModeOn.get() && isAirplaneToggleable();
if (enabled) {
if (isAirplaneModeOn() && isAirplaneToggleable()) {
if (airplane) {
mWifiState.set(WIFI_ENABLED_AIRPLANE_OVERRIDE);
} else {
mWifiState.set(WIFI_ENABLED);
}
} else {
mWifiState.set(WIFI_DISABLED);
if (airplane) {
mWifiState.set(WIFI_DISABLED_AIRPLANE_ON);
} else {
mWifiState.set(WIFI_DISABLED);
}
}
Settings.Secure.putInt(cr, Settings.Secure.WIFI_ON, mWifiState.get());
}