Loading src/java/com/android/internal/telephony/data/PhoneSwitcher.java +8 −3 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import static android.telephony.TelephonyManager.SET_OPPORTUNISTIC_SUB_VALIDATIO import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM; import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN; import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_NONE; import static java.util.Arrays.copyOf; import android.annotation.NonNull; Loading Loading @@ -1502,18 +1503,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; } Loading tests/telephonytests/src/com/android/internal/telephony/data/PhoneSwitcherTest.java +12 −1 Original line number Diff line number Diff line Loading @@ -26,8 +26,10 @@ import static android.telephony.TelephonyManager.SIM_STATE_LOADED; import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM; import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN; import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_LTE; import static com.android.internal.telephony.data.AutoDataSwitchController.EVALUATION_REASON_VOICE_CALL_END; import static com.android.internal.telephony.data.PhoneSwitcher.ECBM_DEFAULT_DATA_SWITCH_BASE_TIME_MS; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; Loading Loading @@ -1390,13 +1392,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()); Loading Loading
src/java/com/android/internal/telephony/data/PhoneSwitcher.java +8 −3 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import static android.telephony.TelephonyManager.SET_OPPORTUNISTIC_SUB_VALIDATIO import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM; import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN; import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_NONE; import static java.util.Arrays.copyOf; import android.annotation.NonNull; Loading Loading @@ -1502,18 +1503,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; } Loading
tests/telephonytests/src/com/android/internal/telephony/data/PhoneSwitcherTest.java +12 −1 Original line number Diff line number Diff line Loading @@ -26,8 +26,10 @@ import static android.telephony.TelephonyManager.SIM_STATE_LOADED; import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM; import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN; import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_LTE; import static com.android.internal.telephony.data.AutoDataSwitchController.EVALUATION_REASON_VOICE_CALL_END; import static com.android.internal.telephony.data.PhoneSwitcher.ECBM_DEFAULT_DATA_SWITCH_BASE_TIME_MS; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; Loading Loading @@ -1390,13 +1392,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()); Loading