Fix tethering
Using sendMessageAtFrontofQueue() causes issues here since there can be a start
that is deferred and it basically has no effect. Use defer which is more clean
and obvious here.
Bug: 8410547
Change-Id: I4fbf299283847e7c3009b87a81cb56e765b0e1e1
diff --git a/wifi/java/android/net/wifi/WifiStateMachine.java b/wifi/java/android/net/wifi/WifiStateMachine.java
index 8cdfe03..b57910f5 100644
--- a/wifi/java/android/net/wifi/WifiStateMachine.java
+++ b/wifi/java/android/net/wifi/WifiStateMachine.java
@@ -3584,6 +3584,8 @@
setWifiApState(WIFI_AP_STATE_DISABLING);
stopTethering();
transitionTo(mUntetheringState);
+ // More work to do after untethering
+ deferMessage(message);
break;
default:
return NOT_HANDLED;
@@ -3610,15 +3612,11 @@
if (isWifiTethered(stateChange.active)) break;
transitionTo(mSoftApStartedState);
- // Needs to be first thing handled
- sendMessageAtFrontOfQueue(CMD_STOP_AP);
break;
case CMD_TETHER_NOTIFICATION_TIMED_OUT:
if (message.arg1 == mTetherToken) {
loge("Failed to get tether update, force stop access point");
transitionTo(mSoftApStartedState);
- // Needs to be first thing handled
- sendMessageAtFrontOfQueue(CMD_STOP_AP);
}
break;
case CMD_START_SUPPLICANT: