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

Commit 57bc801f authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Use 3gpp2 as the default app type if voice RAT is CDMA." am: f3b6d203 am: fb148c1e

Original change: https://android-review.googlesource.com/c/platform/frameworks/opt/telephony/+/1366199

Change-Id: Ie5f6c092cdacf35cb0c5e9705a0ea0a8f55fdc38
parents 32e743e4 fb148c1e
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -134,7 +134,8 @@ public class UiccProfile extends IccCard {

    private RegistrantList mNetworkLockedRegistrants = new RegistrantList();

    private int mCurrentAppType = UiccController.APP_FAM_3GPP; //default to 3gpp?
    @VisibleForTesting
    public int mCurrentAppType = UiccController.APP_FAM_3GPP; //default to 3gpp?
    private UiccCardApplication mUiccApplication = null;
    private IccRecords mIccRecords = null;
    private IccCardConstants.State mExternalState = IccCardConstants.State.UNKNOWN;
@@ -352,7 +353,7 @@ public class UiccProfile extends IccCard {
                mCurrentAppType = UiccController.APP_FAM_3GPP;
            } else {
                UiccCardApplication newApp = getApplication(UiccController.APP_FAM_3GPP2);
                if(newApp != null) {
                if (newApp != null || getApplication(UiccController.APP_FAM_3GPP) == null) {
                    mCurrentAppType = UiccController.APP_FAM_3GPP2;
                } else {
                    mCurrentAppType = UiccController.APP_FAM_3GPP;
+41 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ import android.os.Handler;
import android.os.Message;
import android.os.PersistableBundle;
import android.telephony.CarrierConfigManager;
import android.telephony.ServiceState;
import android.telephony.SubscriptionInfo;
import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper;
@@ -606,4 +607,44 @@ public class UiccProfileTest extends TelephonyTest {
        assertTrue(mUiccProfile.isEmptyProfile());

    }

    private void testUpdateUiccProfileApplicationNoCsim() {
        /* update app status and index */
        IccCardApplicationStatus imsApp = composeUiccApplicationStatus(
                IccCardApplicationStatus.AppType.APPTYPE_ISIM,
                IccCardApplicationStatus.AppState.APPSTATE_UNKNOWN, "0xA1");
        IccCardApplicationStatus umtsApp = composeUiccApplicationStatus(
                IccCardApplicationStatus.AppType.APPTYPE_USIM,
                IccCardApplicationStatus.AppState.APPSTATE_UNKNOWN, "0xA2");
        mIccCardStatus.mApplications = new IccCardApplicationStatus[]{imsApp, umtsApp};
        mIccCardStatus.mCdmaSubscriptionAppIndex = -1;
        mIccCardStatus.mImsSubscriptionAppIndex = 0;
        mIccCardStatus.mGsmUmtsSubscriptionAppIndex = 1;
        logd("Update UICC Profile Applications");
        mUiccProfile.update(mContext, mSimulatedCommands, mIccCardStatus);
        processAllMessages();

        assertEquals(2, mUiccProfile.getNumApplications());
        assertFalse(mUiccProfile.isApplicationOnIcc(IccCardApplicationStatus.AppType.APPTYPE_CSIM));
        assertTrue(mUiccProfile.isApplicationOnIcc(IccCardApplicationStatus.AppType.APPTYPE_ISIM));
        assertTrue(mUiccProfile.isApplicationOnIcc(IccCardApplicationStatus.AppType.APPTYPE_USIM));
    }

    @Test
    @SmallTest
    public void testSetVoiceRadioTech() {
        // if voice rat is GSM, mCurrentAppType should be 3gpp
        mUiccProfile.setVoiceRadioTech(ServiceState.RIL_RADIO_TECHNOLOGY_GSM);
        assertEquals(UiccController.APP_FAM_3GPP, mUiccProfile.mCurrentAppType);

        // if voice rat is CDMA, mCurrentAppType should be 3gpp2
        mUiccProfile.setVoiceRadioTech(ServiceState.RIL_RADIO_TECHNOLOGY_IS95A);
        assertEquals(UiccController.APP_FAM_3GPP2, mUiccProfile.mCurrentAppType);

        // if voice rat is CDMA, there is no CSIM app, and there is a SIM/USIM app, then
        // mCurrentAppType should be 3gpp
        testUpdateUiccProfileApplicationNoCsim();
        mUiccProfile.setVoiceRadioTech(ServiceState.RIL_RADIO_TECHNOLOGY_IS95A);
        assertEquals(UiccController.APP_FAM_3GPP, mUiccProfile.mCurrentAppType);
    }
}