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

Commit 7d9aed10 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Port setRadioCapability on dds change" into main am: 4d167cc5

parents a1bea777 4d167cc5
Loading
Loading
Loading
Loading
+19 −0
Original line number Original line Diff line number Diff line
@@ -87,6 +87,7 @@ import com.android.internal.telephony.MccTable;
import com.android.internal.telephony.MultiSimSettingController;
import com.android.internal.telephony.MultiSimSettingController;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneFactory;
import com.android.internal.telephony.PhoneFactory;
import com.android.internal.telephony.ProxyController;
import com.android.internal.telephony.RILConstants;
import com.android.internal.telephony.RILConstants;
import com.android.internal.telephony.SubscriptionController;
import com.android.internal.telephony.SubscriptionController;
import com.android.internal.telephony.TelephonyIntents;
import com.android.internal.telephony.TelephonyIntents;
@@ -2708,6 +2709,8 @@ public class SubscriptionManagerService extends ISub.Stub {
        final long token = Binder.clearCallingIdentity();
        final long token = Binder.clearCallingIdentity();
        try {
        try {
            if (mDefaultDataSubId.set(subId)) {
            if (mDefaultDataSubId.set(subId)) {
                remapRafIfApplicable();

                MultiSimSettingController.getInstance().notifyDefaultDataSubChanged();
                MultiSimSettingController.getInstance().notifyDefaultDataSubChanged();


                Intent intent = new Intent(
                Intent intent = new Intent(
@@ -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.
     * @return The default subscription id for voice.
     */
     */
+1 −0
Original line number Original line Diff line number Diff line
@@ -605,6 +605,7 @@ public class SubscriptionManagerServiceTest extends TelephonyTest {


        mSubscriptionManagerServiceUT.setDefaultDataSubId(1);
        mSubscriptionManagerServiceUT.setDefaultDataSubId(1);
        assertThat(mSubscriptionManagerServiceUT.getDefaultDataSubId()).isEqualTo(1);
        assertThat(mSubscriptionManagerServiceUT.getDefaultDataSubId()).isEqualTo(1);
        verify(mProxyController).setRadioCapability(any());


        assertThat(Settings.Global.getInt(mContext.getContentResolver(),
        assertThat(Settings.Global.getInt(mContext.getContentResolver(),
                        Settings.Global.MULTI_SIM_DATA_CALL_SUBSCRIPTION)).isEqualTo(1);
                        Settings.Global.MULTI_SIM_DATA_CALL_SUBSCRIPTION)).isEqualTo(1);