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

Commit 3294256b authored by Jack Yu's avatar Jack Yu
Browse files

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 c52a3cb7
Loading
Loading
Loading
Loading
+8 −9
Original line number Diff line number Diff line
@@ -1541,9 +1541,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) {
                super();
@@ -1561,14 +1560,14 @@ 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);
                if (!mSimAbsentSeen && IccCardConstants.INTENT_VALUE_ICC_ABSENT.equals(state)) {
                    mSimAbsentSeen = true;
                Log.d(TAG, "got Sim changed to state " + state + ", mSimNotLoadedSeen=" +
                        mSimNotLoadedSeen);
                if (!mSimNotLoadedSeen && !IccCardConstants.INTENT_VALUE_ICC_LOADED.equals(state)) {
                    mSimNotLoadedSeen = true;
                }

                if (mSimAbsentSeen && IccCardConstants.INTENT_VALUE_ICC_LOADED.equals(state)) {
                    mSimAbsentSeen = false;
                if (mSimNotLoadedSeen && IccCardConstants.INTENT_VALUE_ICC_LOADED.equals(state)) {
                    mSimNotLoadedSeen = false;
                    try {
                        if (mContext.getResources().getString(com.android.internal.R.string.
                                config_mobile_hotspot_provision_app_no_ui).isEmpty() == false) {