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

Commit b31798ee authored by Xiangyu/Malcolm Chen's avatar Xiangyu/Malcolm Chen Committed by Automerger Merge Worker
Browse files

Merge "Add default actions of DSDS switch and slot switch when eSIM is not...

Merge "Add default actions of DSDS switch and slot switch when eSIM is not available." am: cf2b86cf

Change-Id: Ie8ee3e1d2d8041924dc670d0afeb514b5809241a
parents def38ee6 cf2b86cf
Loading
Loading
Loading
Loading
+17 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.internal.telephony;

import static android.content.pm.PackageManager.PERMISSION_GRANTED;
import static android.telephony.TelephonyManager.MULTISIM_ALLOWED;
import static android.telephony.TelephonyManager.SET_OPPORTUNISTIC_SUB_REMOTE_SERVICE_EXCEPTION;
import static android.telephony.UiccSlotInfo.CARD_STATE_INFO_PRESENT;

@@ -3510,7 +3511,22 @@ public class SubscriptionController extends ISub.Stub {
            // We need to send intents to Euicc if we are turning on an inactive slot.
            // Euicc will decide whether to ask user to switch to DSDS, or change SIM
            // slot mapping.
            EuiccManager euiccManager =
                    (EuiccManager) mContext.getSystemService(Context.EUICC_SERVICE);
            if (euiccManager != null && euiccManager.isEnabled()) {
                enableSubscriptionOverEuiccManager(subId, enable, physicalSlotIndex);
            } else {
                // Enable / disable uicc applications.
                if (!info.areUiccApplicationsEnabled()) setUiccApplicationsEnabled(enable, subId);
                // If euiccManager is not enabled, we try to switch to DSDS if possible,
                // or switch slot if not.
                if (mTelephonyManager.isMultiSimSupported() == MULTISIM_ALLOWED) {
                    PhoneConfigurationManager.getInstance().switchMultiSimConfig(
                            mTelephonyManager.getSupportedModemCount());
                } else {
                    UiccController.getInstance().switchSlots(new int[]{physicalSlotIndex}, null);
                }
            }
            return true;
        } else {
            // Enable / disable uicc applications.