Loading src/java/com/android/internal/telephony/subscription/SubscriptionManagerService.java +19 −0 Original line number Diff line number Diff line Loading @@ -87,6 +87,7 @@ import com.android.internal.telephony.MccTable; import com.android.internal.telephony.MultiSimSettingController; import com.android.internal.telephony.Phone; import com.android.internal.telephony.PhoneFactory; import com.android.internal.telephony.ProxyController; import com.android.internal.telephony.RILConstants; import com.android.internal.telephony.SubscriptionController; import com.android.internal.telephony.TelephonyIntents; Loading Loading @@ -2708,6 +2709,8 @@ public class SubscriptionManagerService extends ISub.Stub { final long token = Binder.clearCallingIdentity(); try { if (mDefaultDataSubId.set(subId)) { remapRafIfApplicable(); MultiSimSettingController.getInstance().notifyDefaultDataSubChanged(); Intent intent = new Intent( Loading @@ -2723,6 +2726,22 @@ public class SubscriptionManagerService extends ISub.Stub { } } /** * Remap Radio Access Family if needed. */ private void remapRafIfApplicable() { boolean applicable = mSlotIndexToSubId.containsValue(getDefaultDataSubId()); if (!applicable) return; ProxyController proxyController = ProxyController.getInstance(); RadioAccessFamily[] rafs = new RadioAccessFamily[mTelephonyManager.getActiveModemCount()]; for (int phoneId = 0; phoneId < rafs.length; phoneId++) { int raf = mSlotIndexToSubId.get(phoneId) == getDefaultDataSubId() ? proxyController.getMaxRafSupported() : proxyController.getMinRafSupported(); rafs[phoneId] = new RadioAccessFamily(phoneId, raf); } proxyController.setRadioCapability(rafs); } /** * @return The default subscription id for voice. */ Loading tests/telephonytests/src/com/android/internal/telephony/subscription/SubscriptionManagerServiceTest.java +1 −0 Original line number Diff line number Diff line Loading @@ -605,6 +605,7 @@ public class SubscriptionManagerServiceTest extends TelephonyTest { mSubscriptionManagerServiceUT.setDefaultDataSubId(1); assertThat(mSubscriptionManagerServiceUT.getDefaultDataSubId()).isEqualTo(1); verify(mProxyController).setRadioCapability(any()); assertThat(Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.MULTI_SIM_DATA_CALL_SUBSCRIPTION)).isEqualTo(1); Loading Loading
src/java/com/android/internal/telephony/subscription/SubscriptionManagerService.java +19 −0 Original line number Diff line number Diff line Loading @@ -87,6 +87,7 @@ import com.android.internal.telephony.MccTable; import com.android.internal.telephony.MultiSimSettingController; import com.android.internal.telephony.Phone; import com.android.internal.telephony.PhoneFactory; import com.android.internal.telephony.ProxyController; import com.android.internal.telephony.RILConstants; import com.android.internal.telephony.SubscriptionController; import com.android.internal.telephony.TelephonyIntents; Loading Loading @@ -2708,6 +2709,8 @@ public class SubscriptionManagerService extends ISub.Stub { final long token = Binder.clearCallingIdentity(); try { if (mDefaultDataSubId.set(subId)) { remapRafIfApplicable(); MultiSimSettingController.getInstance().notifyDefaultDataSubChanged(); Intent intent = new Intent( Loading @@ -2723,6 +2726,22 @@ public class SubscriptionManagerService extends ISub.Stub { } } /** * Remap Radio Access Family if needed. */ private void remapRafIfApplicable() { boolean applicable = mSlotIndexToSubId.containsValue(getDefaultDataSubId()); if (!applicable) return; ProxyController proxyController = ProxyController.getInstance(); RadioAccessFamily[] rafs = new RadioAccessFamily[mTelephonyManager.getActiveModemCount()]; for (int phoneId = 0; phoneId < rafs.length; phoneId++) { int raf = mSlotIndexToSubId.get(phoneId) == getDefaultDataSubId() ? proxyController.getMaxRafSupported() : proxyController.getMinRafSupported(); rafs[phoneId] = new RadioAccessFamily(phoneId, raf); } proxyController.setRadioCapability(rafs); } /** * @return The default subscription id for voice. */ Loading
tests/telephonytests/src/com/android/internal/telephony/subscription/SubscriptionManagerServiceTest.java +1 −0 Original line number Diff line number Diff line Loading @@ -605,6 +605,7 @@ public class SubscriptionManagerServiceTest extends TelephonyTest { mSubscriptionManagerServiceUT.setDefaultDataSubId(1); assertThat(mSubscriptionManagerServiceUT.getDefaultDataSubId()).isEqualTo(1); verify(mProxyController).setRadioCapability(any()); assertThat(Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.MULTI_SIM_DATA_CALL_SUBSCRIPTION)).isEqualTo(1); Loading