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

Commit 748e9ffb authored by Jack Yu's avatar Jack Yu Committed by Automerger Merge Worker
Browse files

Merge "Added isActiveSubId support" am: 8e1f2ed9 am: d03c6c26

parents e92ed735 d03c6c26
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -905,7 +905,7 @@ public class MultiSimSettingController extends Handler {
     */
     */
    private void setRoamingDataEnabledForGroup(int subId, boolean enable) {
    private void setRoamingDataEnabledForGroup(int subId, boolean enable) {
        List<SubscriptionInfo> infoList;
        List<SubscriptionInfo> infoList;
        if (PhoneFactory.getDefaultPhone().isSubscriptionManagerServiceEnabled()) {
        if (PhoneFactory.isSubscriptionManagerServiceEnabled()) {
            infoList = SubscriptionManagerService.getInstance().getSubscriptionsInGroup(
            infoList = SubscriptionManagerService.getInstance().getSubscriptionsInGroup(
                    mSubController.getGroupUuid(subId), mContext.getOpPackageName(),
                    mSubController.getGroupUuid(subId), mContext.getOpPackageName(),
                    mContext.getAttributionTag());
                    mContext.getAttributionTag());
+1 −1
Original line number Original line Diff line number Diff line
@@ -197,7 +197,7 @@ public final class NetworkScanRequestTracker {
    public static Set<String> getAllowedMccMncsForLocationRestrictedScan(Context context) {
    public static Set<String> getAllowedMccMncsForLocationRestrictedScan(Context context) {
        final long token = Binder.clearCallingIdentity();
        final long token = Binder.clearCallingIdentity();
        try {
        try {
            if (PhoneFactory.getDefaultPhone().isSubscriptionManagerServiceEnabled()) {
            if (PhoneFactory.isSubscriptionManagerServiceEnabled()) {
                return SubscriptionManagerService.getInstance()
                return SubscriptionManagerService.getInstance()
                        .getAvailableSubscriptionInfoList(context.getOpPackageName(),
                        .getAvailableSubscriptionInfoList(context.getOpPackageName(),
                                context.getAttributionTag()).stream()
                                context.getAttributionTag()).stream()
+11 −1
Original line number Original line Diff line number Diff line
@@ -82,6 +82,7 @@ import com.android.internal.telephony.imsphone.ImsPhone;
import com.android.internal.telephony.imsphone.ImsPhoneCall;
import com.android.internal.telephony.imsphone.ImsPhoneCall;
import com.android.internal.telephony.metrics.SmsStats;
import com.android.internal.telephony.metrics.SmsStats;
import com.android.internal.telephony.metrics.VoiceCallSessionStats;
import com.android.internal.telephony.metrics.VoiceCallSessionStats;
import com.android.internal.telephony.subscription.SubscriptionInfoInternal;
import com.android.internal.telephony.subscription.SubscriptionManagerService;
import com.android.internal.telephony.subscription.SubscriptionManagerService;
import com.android.internal.telephony.test.SimulatedRadioControl;
import com.android.internal.telephony.test.SimulatedRadioControl;
import com.android.internal.telephony.uicc.IccCardApplicationStatus.AppType;
import com.android.internal.telephony.uicc.IccCardApplicationStatus.AppType;
@@ -4377,7 +4378,16 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
    }
    }


    private int getResolvedUsageSetting(int subId) {
    private int getResolvedUsageSetting(int subId) {
        SubscriptionInfo subInfo = SubscriptionController.getInstance().getSubscriptionInfo(subId);
        SubscriptionInfo subInfo = null;
        if (isSubscriptionManagerServiceEnabled()) {
            SubscriptionInfoInternal subInfoInternal = mSubscriptionManagerService
                    .getSubscriptionInfoInternal(subId);
            if (subInfoInternal != null) {
                subInfo = subInfoInternal.toSubscriptionInfo();
            }
        } else {
            subInfo = SubscriptionController.getInstance().getSubscriptionInfo(subId);
        }


        if (subInfo == null
        if (subInfo == null
                || subInfo.getUsageSetting() == SubscriptionManager.USAGE_SETTING_UNKNOWN) {
                || subInfo.getUsageSetting() == SubscriptionManager.USAGE_SETTING_UNKNOWN) {
+13 −3
Original line number Original line Diff line number Diff line
@@ -35,6 +35,7 @@ import android.telephony.TelephonyManager;
import android.util.Log;
import android.util.Log;


import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.subscription.SubscriptionManagerService;
import com.android.telephony.Rlog;
import com.android.telephony.Rlog;


import java.util.HashMap;
import java.util.HashMap;
@@ -366,7 +367,11 @@ public class PhoneConfigurationManager {
            // eg if we are going from 2 phones to 1 phone, we need to deregister RIL for the
            // eg if we are going from 2 phones to 1 phone, we need to deregister RIL for the
            // second phone. This loop does nothing if numOfActiveModems is increasing.
            // second phone. This loop does nothing if numOfActiveModems is increasing.
            for (int phoneId = numOfActiveModems; phoneId < oldNumOfActiveModems; phoneId++) {
            for (int phoneId = numOfActiveModems; phoneId < oldNumOfActiveModems; phoneId++) {
                if (PhoneFactory.isSubscriptionManagerServiceEnabled()) {
                    SubscriptionManagerService.getInstance().markSubscriptionsInactive(phoneId);
                } else {
                    SubscriptionController.getInstance().clearSubInfoRecord(phoneId);
                    SubscriptionController.getInstance().clearSubInfoRecord(phoneId);
                }
                subInfoCleared = true;
                subInfoCleared = true;
                mPhones[phoneId].mCi.onSlotActiveStatusChange(
                mPhones[phoneId].mCi.onSlotActiveStatusChange(
                        SubscriptionManager.isValidPhoneId(phoneId));
                        SubscriptionManager.isValidPhoneId(phoneId));
@@ -400,8 +405,13 @@ public class PhoneConfigurationManager {
                        + "setting VOICE & SMS subId to -1 (No Preference)");
                        + "setting VOICE & SMS subId to -1 (No Preference)");


                //Set the default VOICE subId to -1 ("No Preference")
                //Set the default VOICE subId to -1 ("No Preference")
                if (PhoneFactory.isSubscriptionManagerServiceEnabled()) {
                    SubscriptionManagerService.getInstance().setDefaultVoiceSubId(
                            SubscriptionManager.INVALID_SUBSCRIPTION_ID);
                } else {
                    SubscriptionController.getInstance().setDefaultVoiceSubId(
                    SubscriptionController.getInstance().setDefaultVoiceSubId(
                            SubscriptionManager.INVALID_SUBSCRIPTION_ID);
                            SubscriptionManager.INVALID_SUBSCRIPTION_ID);
                }


                //TODO:: Set the default SMS sub to "No Preference". Tracking this bug (b/227386042)
                //TODO:: Set the default SMS sub to "No Preference". Tracking this bug (b/227386042)
            } else {
            } else {
+48 −25
Original line number Original line Diff line number Diff line
@@ -104,6 +104,8 @@ public class PhoneFactory {
    private static MetricsCollector sMetricsCollector;
    private static MetricsCollector sMetricsCollector;
    private static RadioInterfaceCapabilityController sRadioHalCapabilities;
    private static RadioInterfaceCapabilityController sRadioHalCapabilities;


    private static boolean sSubscriptionManagerServiceEnabled = false;

    //***** Class Methods
    //***** Class Methods


    public static void makeDefaultPhones(Context context) {
    public static void makeDefaultPhones(Context context) {
@@ -119,6 +121,10 @@ public class PhoneFactory {
        synchronized (sLockProxyPhones) {
        synchronized (sLockProxyPhones) {
            if (!sMadeDefaults) {
            if (!sMadeDefaults) {
                sContext = context;
                sContext = context;

                sSubscriptionManagerServiceEnabled = context.getResources().getBoolean(
                        com.android.internal.R.bool.config_using_subscription_manager_service);

                // create the telephony device controller.
                // create the telephony device controller.
                TelephonyDevController.create();
                TelephonyDevController.create();


@@ -196,8 +202,8 @@ public class PhoneFactory {
                // call getInstance()
                // call getInstance()
                sUiccController = UiccController.make(context);
                sUiccController = UiccController.make(context);


                if (sContext.getResources().getBoolean(

                        com.android.internal.R.bool.config_using_subscription_manager_service)) {
                if (isSubscriptionManagerServiceEnabled()) {
                    Rlog.i(LOG_TAG, "Creating SubscriptionManagerService");
                    Rlog.i(LOG_TAG, "Creating SubscriptionManagerService");
                    sSubscriptionManagerService = new SubscriptionManagerService(context,
                    sSubscriptionManagerService = new SubscriptionManagerService(context,
                            Looper.myLooper());
                            Looper.myLooper());
@@ -240,13 +246,15 @@ public class PhoneFactory {


                sMadeDefaults = true;
                sMadeDefaults = true;


                if (!isSubscriptionManagerServiceEnabled()) {
                    Rlog.i(LOG_TAG, "Creating SubInfoRecordUpdater ");
                    Rlog.i(LOG_TAG, "Creating SubInfoRecordUpdater ");
                    HandlerThread pfhandlerThread = new HandlerThread("PhoneFactoryHandlerThread");
                    HandlerThread pfhandlerThread = new HandlerThread("PhoneFactoryHandlerThread");
                    pfhandlerThread.start();
                    pfhandlerThread.start();
                    sSubInfoRecordUpdater = TelephonyComponentFactory.getInstance().inject(
                    sSubInfoRecordUpdater = TelephonyComponentFactory.getInstance().inject(
                        SubscriptionInfoUpdater.class.getName()).
                            SubscriptionInfoUpdater.class.getName())
                        makeSubscriptionInfoUpdater(pfhandlerThread.
                            .makeSubscriptionInfoUpdater(pfhandlerThread.getLooper(), context,
                        getLooper(), context, SubscriptionController.getInstance());
                                    SubscriptionController.getInstance());
                }


                // Only bring up IMS if the device supports having an IMS stack.
                // Only bring up IMS if the device supports having an IMS stack.
                if (context.getPackageManager().hasSystemFeature(
                if (context.getPackageManager().hasSystemFeature(
@@ -286,6 +294,14 @@ public class PhoneFactory {
        }
        }
    }
    }


    /**
     * @return {@code true} if the new {@link SubscriptionManagerService} is enabled, otherwise the
     * old {@link SubscriptionController} is used.
     */
    public static boolean isSubscriptionManagerServiceEnabled() {
        return sSubscriptionManagerServiceEnabled;
    }

    /**
    /**
     * Upon single SIM to dual SIM switch or vice versa, we dynamically allocate or de-allocate
     * Upon single SIM to dual SIM switch or vice versa, we dynamically allocate or de-allocate
     * Phone and CommandInterface objects.
     * Phone and CommandInterface objects.
@@ -442,6 +458,9 @@ public class PhoneFactory {
    /* Gets the default subscription */
    /* Gets the default subscription */
    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
    public static int getDefaultSubscription() {
    public static int getDefaultSubscription() {
        if (isSubscriptionManagerServiceEnabled()) {
            return SubscriptionManagerService.getInstance().getDefaultSubId();
        }
        return SubscriptionController.getInstance().getDefaultSubId();
        return SubscriptionController.getInstance().getDefaultSubId();
    }
    }


@@ -585,6 +604,9 @@ public class PhoneFactory {
        pw.decreaseIndent();
        pw.decreaseIndent();
        pw.println("++++++++++++++++++++++++++++++++");
        pw.println("++++++++++++++++++++++++++++++++");


        if (isSubscriptionManagerServiceEnabled()) {
            SubscriptionManagerService.getInstance().dump(fd, pw, args);
        } else {
            pw.println("SubscriptionController:");
            pw.println("SubscriptionController:");
            pw.increaseIndent();
            pw.increaseIndent();
            try {
            try {
@@ -603,6 +625,7 @@ public class PhoneFactory {
            } catch (Exception e) {
            } catch (Exception e) {
                e.printStackTrace();
                e.printStackTrace();
            }
            }
        }
        pw.flush();
        pw.flush();
        pw.decreaseIndent();
        pw.decreaseIndent();
        pw.println("++++++++++++++++++++++++++++++++");
        pw.println("++++++++++++++++++++++++++++++++");
Loading