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

Commit 2183b01e authored by Nazanin Bakhshi's avatar Nazanin Bakhshi Committed by android-build-merger
Browse files

Merge "add getPreferredDataSubId to SubscriptionManager and rename...

Merge "add getPreferredDataSubId to SubscriptionManager and rename setPreferredData -> serPreferredDataSubId" am: ef20ff5e
am: 0057ab7e

Change-Id: Ib666b38442b4e970292251629538fe1cfdebbd0c
parents 5d058253 0057ab7e
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -274,7 +274,7 @@ public class PhoneSwitcher extends Handler {
                break;
            }
            case EVENT_PREFERRED_SUBSCRIPTION_CHANGED: {
                onEvaluate(REQUESTS_UNCHANGED, "preferredDataSubIdChanged");
                onEvaluate(REQUESTS_UNCHANGED, "preferredDataSubscriptionIdChanged");
                break;
            }
            case EVENT_RADIO_AVAILABLE: {
@@ -477,7 +477,7 @@ public class PhoneSwitcher extends Handler {

    /**
     * Used when the modem may have been rebooted and we
     * want to resend setDataAllowed or setPreferredData
     * want to resend setDataAllowed or setPreferredDataSubscriptionId
     */
    public void onRadioCapChanged(int phoneId) {
        validatePhoneId(phoneId);
@@ -625,11 +625,11 @@ public class PhoneSwitcher extends Handler {

    /**
     * Set a subscription as preferred data subscription.
     * See {@link SubscriptionManager#setPreferredData(int)} for more details.
     * See {@link SubscriptionManager#setPreferredDataSubscriptionId(int)} for more details.
     */
    public void setPreferredData(int subId) {
    public void setPreferredDataSubscriptionId(int subId) {
        if (mPreferredDataSubId != subId) {
            log("setPreferredData subId changed to " + subId);
            log("setPreferredDataSubscriptionId subId changed to " + subId);
            mPreferredDataSubId = subId;
            Message msg = PhoneSwitcher.this.obtainMessage(EVENT_PREFERRED_SUBSCRIPTION_CHANGED);
            msg.sendToTarget();
+15 −4
Original line number Diff line number Diff line
@@ -173,7 +173,7 @@ public class SubscriptionController extends ISub.Stub {

    private int[] colorArr;
    private long mLastISubServiceRegTime;
    private int mPreferredDataSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
    private int mPreferredDataSubId = SubscriptionManager.DEFAULT_SUBSCRIPTION_ID;

    public static SubscriptionController init(Phone phone) {
        synchronized (SubscriptionController.class) {
@@ -247,6 +247,11 @@ public class SubscriptionController extends ISub.Stub {
                android.Manifest.permission.MODIFY_PHONE_STATE, message);
    }

    private void enforceReadPrivilegedPhoneState(String message) {
        mContext.enforceCallingOrSelfPermission(
                Manifest.permission.READ_PRIVILEGED_PHONE_STATE, message);
    }

    /**
     * Broadcast when SubscriptionInfo has changed
     * FIXME: Hopefully removed if the API council accepts SubscriptionInfoListener
@@ -2318,14 +2323,14 @@ public class SubscriptionController extends ISub.Stub {
    }

    @Override
    public int setPreferredData(int subId) {
        enforceModifyPhoneState("setPreferredData");
    public int setPreferredDataSubscriptionId(int subId) {
        enforceModifyPhoneState("setPreferredDataSubscriptionId");
        final long token = Binder.clearCallingIdentity();

        try {
            if (mPreferredDataSubId != subId) {
                mPreferredDataSubId = subId;
                PhoneSwitcher.getInstance().setPreferredData(subId);
                PhoneSwitcher.getInstance().setPreferredDataSubscriptionId(subId);
                notifyPreferredDataSubIdChanged();
            }

@@ -2335,6 +2340,12 @@ public class SubscriptionController extends ISub.Stub {
        }
    }

    @Override
    public int getPreferredDataSubscriptionId() {
        enforceReadPrivilegedPhoneState("getPreferredDataSubscriptionId");
        return mPreferredDataSubId;
    }

    private void notifyPreferredDataSubIdChanged() {
        ITelephonyRegistry tr = ITelephonyRegistry.Stub.asInterface(ServiceManager.getService(
                "telephony.registry"));
+4 −4
Original line number Diff line number Diff line
@@ -378,13 +378,13 @@ public class PhoneSwitcherTest extends TelephonyTest {
        assertTrue(mDataAllowed[0]);

        // Set sub 2 as preferred sub should make phone 1 activated and phone 0 deactivated.
        mPhoneSwitcher.setPreferredData(2);
        mPhoneSwitcher.setPreferredDataSubscriptionId(2);
        waitABit();
        assertFalse(mDataAllowed[0]);
        assertTrue(mDataAllowed[1]);

        // Unset preferred sub should make default data sub (phone 0 / sub 1) activated again.
        mPhoneSwitcher.setPreferredData(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID);
        mPhoneSwitcher.setPreferredDataSubscriptionId(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID);
        waitABit();
        assertTrue(mDataAllowed[0]);
        assertFalse(mDataAllowed[1]);
@@ -433,7 +433,7 @@ public class PhoneSwitcherTest extends TelephonyTest {
        assertTrue(mPhoneSwitcher.shouldApplyNetworkRequest(mmsRequest, 1));

        // Set sub 2 as preferred sub should make phone 1 preferredDataModem
        mPhoneSwitcher.setPreferredData(2);
        mPhoneSwitcher.setPreferredDataSubscriptionId(2);
        waitABit();
        verify(mMockRadioConfig).setPreferredDataModem(eq(1), any());
        verify(mActivePhoneSwitchHandler, times(2)).sendMessageAtTime(any(), anyLong());
@@ -446,7 +446,7 @@ public class PhoneSwitcherTest extends TelephonyTest {
        clearInvocations(mActivePhoneSwitchHandler);

        // Unset preferred sub should make phone0 preferredDataModem again.
        mPhoneSwitcher.setPreferredData(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID);
        mPhoneSwitcher.setPreferredDataSubscriptionId(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID);
        waitABit();
        verify(mMockRadioConfig).setPreferredDataModem(eq(0), any());
        verify(mActivePhoneSwitchHandler, times(2)).sendMessageAtTime(any(), anyLong());