Fix Wifi+Cell on boot after wifi in use.
The gist of it is: Ignore reconnect fail of default APN during boot. A long path: 1 If wifi is started at boot it starts fast - before the PhoneService is available. 2 Wifi starts by failing - you get DISCONNECTED/Scanning events so CM starts the other default network (mobile). 3 Trying to restart mobile fails because the phone service isn't up yet. 4 The failure is noted and the net is marked as not-enabled. 5 The phone trys to auto-start the mobile network and succeeds, sending state-changed events 6 The CM ignores the state-changed events because the net isn't enabled (see 4). The long term fix is to remove two-way state tracking from the MobileDataStateTracker and instead just consume the state fed to us in state-change events. Near term fix is to not mark the default net disabled when we have failure (step 4) if the phone service isn't available.
This commit is contained in:
@@ -316,6 +316,12 @@ public class MobileDataStateTracker extends NetworkStateTracker {
|
||||
// no need to do anything - we're already due some status update intents
|
||||
break;
|
||||
case Phone.APN_REQUEST_FAILED:
|
||||
if (mPhoneService == null && mApnType == Phone.APN_TYPE_DEFAULT) {
|
||||
// on startup we may try to talk to the phone before it's ready
|
||||
// just leave mEnabled as it is for the default apn.
|
||||
return false;
|
||||
}
|
||||
// else fall through
|
||||
case Phone.APN_TYPE_NOT_AVAILABLE:
|
||||
mEnabled = false;
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user