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

Commit 0896a93f authored by Hui Wang's avatar Hui Wang Committed by Automerger Merge Worker
Browse files

Merge "Always return success when set the opportunistic sub to default" into...

Merge "Always return success when set the opportunistic sub to default" into main am: b4a3c7d5 am: 807067d4

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



Change-Id: Id6c950805276230d3b89e3bfc04c8cd9895f62ed
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents d5b23e63 807067d4
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -1521,18 +1521,22 @@ public class PhoneSwitcher extends Handler {
     */
    private void validate(int subId, boolean needValidation, int switchReason,
            @Nullable ISetOpportunisticDataCallback callback) {
        logl("Validate subId " + subId + " due to " + switchReasonToString(switchReason)
                + " needValidation=" + needValidation);
        int subIdToValidate = (subId == SubscriptionManager.DEFAULT_SUBSCRIPTION_ID)
                ? mPrimaryDataSubId : subId;
        logl("Validate subId " + subId + " due to " + switchReasonToString(switchReason)
                + " needValidation=" + needValidation + " subIdToValidate=" + subIdToValidate
                + " mAutoSelectedDataSubId=" + mAutoSelectedDataSubId
                + " mPreferredDataSubId=" + mPreferredDataSubId.get());
        if (!isActiveSubId(subIdToValidate)) {
            logl("Can't switch data to inactive subId " + subIdToValidate);
            if (subId == SubscriptionManager.DEFAULT_SUBSCRIPTION_ID) {
                // the default data sub is not selected yet, store the intent of switching to
                // default subId once it becomes available.
                mAutoSelectedDataSubId = SubscriptionManager.DEFAULT_SUBSCRIPTION_ID;
            }
                sendSetOpptCallbackHelper(callback, SET_OPPORTUNISTIC_SUB_SUCCESS);
            } else {
                sendSetOpptCallbackHelper(callback, SET_OPPORTUNISTIC_SUB_INACTIVE_SUBSCRIPTION);
            }
            return;
        }

+10 −1
Original line number Diff line number Diff line
@@ -1408,13 +1408,22 @@ public class PhoneSwitcherTest extends TelephonyTest {
        // Switch to primary before a primary is selected/inactive.
        setDefaultDataSubId(SubscriptionManager.INVALID_SUBSCRIPTION_ID);
        mPhoneSwitcherUT.trySetOpportunisticDataSubscription(
                SubscriptionManager.DEFAULT_SUBSCRIPTION_ID, false, mSetOpptDataCallback1);
                SubscriptionManager.INVALID_SUBSCRIPTION_ID, false, mSetOpptDataCallback1);
        processAllMessages();

        assertEquals(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID,
                mPhoneSwitcherUT.getAutoSelectedDataSubId());
        verify(mSetOpptDataCallback1).onComplete(SET_OPPORTUNISTIC_SUB_INACTIVE_SUBSCRIPTION);

        // Verify that the switch to default sub is successful
        mPhoneSwitcherUT.trySetOpportunisticDataSubscription(
                SubscriptionManager.DEFAULT_SUBSCRIPTION_ID, false, mSetOpptDataCallback1);
        processAllMessages();

        assertEquals(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID,
                mPhoneSwitcherUT.getAutoSelectedDataSubId());
        verify(mSetOpptDataCallback1).onComplete(SET_OPPORTUNISTIC_SUB_SUCCESS);

        // once the primary is selected, it becomes the active sub.
        setDefaultDataSubId(2);
        assertEquals(2, mPhoneSwitcherUT.getActiveDataSubId());