summaryrefslogtreecommitdiffstats
path: root/service/java/com/android/server/wifi/WifiController.java
diff options
context:
space:
mode:
authorRicardo Cerqueira <ricardo@cyngn.com>2015-11-05 03:52:09 +0000
committerRicardo Cerqueira <ricardo@cyngn.com>2015-11-05 14:31:39 +0000
commit52ecfcad4bebc6ed3f373b7ded9bf6f1435c5860 (patch)
tree2896631ee6b0821721c59aeb21d08016ce57f514 /service/java/com/android/server/wifi/WifiController.java
parentee031dc696810e67203c60b96f921c50742ddae7 (diff)
parent0ae5739ef837aec1872f97c79b51e332aa1273e9 (diff)
downloadframeworks_opt_net_wifi-52ecfcad4bebc6ed3f373b7ded9bf6f1435c5860.tar.gz
frameworks_opt_net_wifi-52ecfcad4bebc6ed3f373b7ded9bf6f1435c5860.tar.bz2
frameworks_opt_net_wifi-52ecfcad4bebc6ed3f373b7ded9bf6f1435c5860.zip
Merge tag 'android-6.0.0_r26' into HEAD
Android 6.0.0 release 26 Conflicts: service/java/com/android/server/wifi/WifiStateMachine.java Change-Id: I05f1edf746073a8bf7511c1978df132ba918c73d
Diffstat (limited to 'service/java/com/android/server/wifi/WifiController.java')
-rw-r--r--service/java/com/android/server/wifi/WifiController.java34
1 files changed, 32 insertions, 2 deletions
diff --git a/service/java/com/android/server/wifi/WifiController.java b/service/java/com/android/server/wifi/WifiController.java
index 94e3764..92fc562 100644
--- a/service/java/com/android/server/wifi/WifiController.java
+++ b/service/java/com/android/server/wifi/WifiController.java
@@ -116,6 +116,9 @@ class WifiController extends StateMachine {
static final int CMD_USER_PRESENT = BASE + 12;
static final int CMD_AP_START_FAILURE = BASE + 13;
+ private static final int WIFI_DISABLED = 0;
+ private static final int WIFI_ENABLED = 1;
+
private DefaultState mDefaultState = new DefaultState();
private StaEnabledState mStaEnabledState = new StaEnabledState();
private ApStaDisabledState mApStaDisabledState = new ApStaDisabledState();
@@ -443,6 +446,10 @@ class WifiController extends StateMachine {
break;
case CMD_SET_AP:
if (msg.arg1 == 1) {
+ if (msg.arg2 == 0) { // previous wifi state has not been saved yet
+ Settings.Global.putInt(mContext.getContentResolver(),
+ Settings.Global.WIFI_SAVED_STATE, WIFI_DISABLED);
+ }
mWifiStateMachine.setHostApRunning((WifiConfiguration) msg.obj,
true);
transitionTo(mApEnabledState);
@@ -511,6 +518,15 @@ class WifiController extends StateMachine {
transitionTo(mEcmState);
break;
}
+ case CMD_SET_AP:
+ if (msg.arg1 == 1) {
+ // remeber that we were enabled
+ Settings.Global.putInt(mContext.getContentResolver(),
+ Settings.Global.WIFI_SAVED_STATE, WIFI_ENABLED);
+ deferMessage(obtainMessage(msg.what, msg.arg1, 1, msg.obj));
+ transitionTo(mApStaDisabledState);
+ }
+ break;
default:
return NOT_HANDLED;
@@ -569,7 +585,9 @@ class WifiController extends StateMachine {
case CMD_SET_AP:
// Before starting tethering, turn off supplicant for scan mode
if (msg.arg1 == 1) {
- deferMessage(msg);
+ Settings.Global.putInt(mContext.getContentResolver(),
+ Settings.Global.WIFI_SAVED_STATE, WIFI_DISABLED);
+ deferMessage(obtainMessage(msg.what, msg.arg1, 1, msg.obj));
transitionTo(mApStaDisabledState);
}
break;
@@ -619,7 +637,19 @@ class WifiController extends StateMachine {
case CMD_SET_AP:
if (msg.arg1 == 0) {
mWifiStateMachine.setHostApRunning(null, false);
- transitionTo(mApStaDisabledState);
+ int wifiSavedState = Settings.Global.getInt(mContext.getContentResolver(),
+ Settings.Global.WIFI_SAVED_STATE, WIFI_DISABLED);
+ if (wifiSavedState == WIFI_ENABLED) {
+ transitionTo(mStaEnabledState);
+ }
+ else {
+ if (mSettingsStore.isScanAlwaysAvailable()) {
+ transitionTo(mStaDisabledWithScanState);
+ }
+ else {
+ transitionTo(mApStaDisabledState);
+ }
+ }
}
break;
case CMD_AP_START_FAILURE: