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

Commit cf7f4ba3 authored by Jack Yu's avatar Jack Yu
Browse files

DO NOT MERGE - Fixed the logic for tethering provisioning re-evaluation

Previously we only re-evaluate provisioning for SIM swap case
The new logic covers both SIM swap case
(ABSENT->NOT_READY->UNKNOWN->READY->LOADED) and modem reset
case (NOT_READY->READY->LOADED)

Test: Manual
bug: 33815946

Merged-In: I9960123605b10d3fa5f3584c6c8b70b616acd6f8
Change-Id: I9960123605b10d3fa5f3584c6c8b70b616acd6f8
parent b38770b5
Loading
Loading
Loading
Loading
+8 −13
Original line number Diff line number Diff line
@@ -1244,10 +1244,6 @@ public class Tethering extends BaseNetworkObserver implements IControlsTethering
                return false;
            }

            private boolean isSimCardAbsent(String state) {
                return IccCardConstants.INTENT_VALUE_ICC_ABSENT.equals(state);
            }

            private boolean isSimCardLoaded(String state) {
                return IccCardConstants.INTENT_VALUE_ICC_LOADED.equals(state);
            }
@@ -1264,9 +1260,8 @@ public class Tethering extends BaseNetworkObserver implements IControlsTethering
                // used to verify this receiver is still current
                final private int mGenerationNumber;

                // we're interested in edge-triggered LOADED notifications, so
                // ignore LOADED unless we saw an ABSENT state first
                private boolean mSimAbsentSeen = false;
                // used to check the sim state transition from non-loaded to loaded
                private boolean mSimNotLoadedSeen = false;

                public SimChangeBroadcastReceiver(int generationNumber) {
                    mGenerationNumber = generationNumber;
@@ -1284,16 +1279,16 @@ public class Tethering extends BaseNetworkObserver implements IControlsTethering

                    final String state = intent.getStringExtra(
                            IccCardConstants.INTENT_KEY_ICC_STATE);
                    Log.d(TAG, "got Sim changed to state " + state + ", mSimAbsentSeen=" +
                            mSimAbsentSeen);
                    Log.d(TAG, "got Sim changed to state " + state + ", mSimNotLoadedSeen=" +
                            mSimNotLoadedSeen);

                    if (isSimCardAbsent(state)) {
                        if (!mSimAbsentSeen) mSimAbsentSeen = true;
                    if (!isSimCardLoaded(state)) {
                        if (!mSimNotLoadedSeen) mSimNotLoadedSeen = true;
                        return;
                    }

                    if (isSimCardLoaded(state) && mSimAbsentSeen) {
                        mSimAbsentSeen = false;
                    if (isSimCardLoaded(state) && mSimNotLoadedSeen) {
                        mSimNotLoadedSeen = false;

                        if (!hasMobileHotspotProvisionApp()) return;