Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 60a45aff authored by Robert Greenwalt's avatar Robert Greenwalt
Browse files

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.
parent 3c513ed9
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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;