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

Commit f9c12549 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix SIM load race condition" into main

parents 5ebd2170 f190ad93
Loading
Loading
Loading
Loading
+0 −9
Original line number Diff line number Diff line
@@ -696,13 +696,6 @@ public class DataNetworkController extends Handler {
         */
        public void onDataServiceBound(@TransportType int transport) {}

        /**
         * Called when SIM load state changed.
         *
         * @param simState The current SIM state
         */
        public void onSimStateChanged(@SimState int simState) {}

        /**
         * Called when QosBearerSessions changed.
         *
@@ -3605,8 +3598,6 @@ public class DataNetworkController extends Handler {
                sendMessage(obtainMessage(EVENT_REEVALUATE_UNSATISFIED_NETWORK_REQUESTS,
                        DataEvaluationReason.SIM_LOADED));
            }
            mDataNetworkControllerCallbacks.forEach(callback -> callback.invokeFromExecutor(
                    () -> callback.onSimStateChanged(mSimState)));
        }
    }

+2 −11
Original line number Diff line number Diff line
@@ -37,7 +37,6 @@ import android.telephony.CarrierConfigManager;
import android.telephony.NetworkRegistrationInfo;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.telephony.TelephonyManager.SimState;
import android.telephony.data.ApnSetting;
import android.telephony.data.DataProfile;
import android.telephony.data.TrafficDescriptor;
@@ -47,6 +46,7 @@ import android.util.IndentingPrintWriter;
import android.util.LocalLog;
import android.util.LruCache;

import com.android.internal.telephony.IccCardConstants;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.data.DataConfigManager.DataConfigManagerCallback;
import com.android.internal.telephony.data.DataNetworkController.DataNetworkControllerCallback;
@@ -120,10 +120,6 @@ public class DataProfileManager extends Handler {
    @NonNull
    private final Set<DataProfileManagerCallback> mDataProfileManagerCallbacks = new ArraySet<>();

    /** SIM state. */
    @SimState
    private int mSimState = TelephonyManager.SIM_STATE_UNKNOWN;

    /** Feature flags controlling which feature is enabled. */
    @NonNull
    private final FeatureFlags mFeatureFlags;
@@ -186,11 +182,6 @@ public class DataProfileManager extends Handler {
                        if (internetNetworks.isEmpty()) return;
                        DataProfileManager.this.onInternetDataNetworkConnected(internetNetworks);
                    }

                    @Override
                    public void onSimStateChanged(@SimState int simState) {
                        DataProfileManager.this.mSimState = simState;
                    }
                });
        mDataConfigManager.registerCallback(new DataConfigManagerCallback(this::post) {
            @Override
@@ -315,7 +306,7 @@ public class DataProfileManager extends Handler {

        DataProfile dataProfile;

        if (mSimState == TelephonyManager.SIM_STATE_LOADED) {
        if (IccCardConstants.State.LOADED.equals(mPhone.getIccCard().getState())) {
            // Check if any of the profile already supports IMS, if not, add the default one.
            dataProfile = profiles.stream()
                    .filter(dp -> dp.canSatisfy(NetworkCapabilities.NET_CAPABILITY_IMS))
+3 −2
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ import android.test.mock.MockContentResolver;
import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper;

import com.android.internal.telephony.IccCardConstants;
import com.android.internal.telephony.TelephonyTest;
import com.android.internal.telephony.data.DataConfigManager.DataConfigManagerCallback;
import com.android.internal.telephony.data.DataNetworkController.DataNetworkControllerCallback;
@@ -1353,7 +1354,7 @@ public class DataProfileManagerTest extends TelephonyTest {
    }

    @Test
    public void testSimInsertedAgain() throws Exception {
    public void testSimInsertedAgain() {
        testSimRemoval();
        Mockito.clearInvocations(mDataProfileManagerCallback);
        Mockito.clearInvocations(mMockedWwanDataServiceManager);
@@ -1955,7 +1956,7 @@ public class DataProfileManagerTest extends TelephonyTest {

    private void changeSimStateTo(@TelephonyManager.SimState int simState) {
        mSimInserted = simState == TelephonyManager.SIM_STATE_LOADED;
        mDataNetworkControllerCallback.onSimStateChanged(simState);
        doReturn(IccCardConstants.State.intToState(simState)).when(mIccCard).getState();
    }

    @Test