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

Commit 70b9fcf0 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge changes I42ad1ec0,Ifc72802f

* changes:
  Migrated PhoneSwitcher to use SubscriptionManagerService
  Replaced more places to use SubscriptionManagerService
parents 5e840c73 0e25db6d
Loading
Loading
Loading
Loading
+23 −8
Original line number Diff line number Diff line
@@ -2379,17 +2379,29 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
     * Loads the allowed network type from subscription database.
     */
    public void loadAllowedNetworksFromSubscriptionDatabase() {
        String result = null;
        if (isSubscriptionManagerServiceEnabled()) {
            SubscriptionInfoInternal subInfo = mSubscriptionManagerService
                    .getSubscriptionInfoInternal(getSubId());
            if (subInfo != null) {
                result = subInfo.getAllowedNetworkTypesForReasons();
            }
        } else {
            // Try to load ALLOWED_NETWORK_TYPES from SIMINFO.
            if (SubscriptionController.getInstance() == null) {
                return;
            }

        String result = SubscriptionController.getInstance().getSubscriptionProperty(
            result = SubscriptionController.getInstance().getSubscriptionProperty(
                    getSubId(),
                    SubscriptionManager.ALLOWED_NETWORK_TYPES);
        }

        // After fw load network type from DB, do unlock if subId is valid.
        mIsAllowedNetworkTypesLoadedFromDb = SubscriptionManager.isValidSubscriptionId(getSubId());
        if (result == null) {
        mIsAllowedNetworkTypesLoadedFromDb = SubscriptionManager.isValidSubscriptionId(
                getSubId());

        if (TextUtils.isEmpty(result)) {
            return;
        }

@@ -4057,6 +4069,9 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
     */
    @UnsupportedAppUsage
    public int getSubId() {
        if (isSubscriptionManagerServiceEnabled()) {
            return mSubscriptionManagerService.getSubId(mPhoneId);
        }
        if (SubscriptionController.getInstance() == null) {
            // TODO b/78359408 getInstance sometimes returns null in Treehugger tests, which causes
            // flakiness. Even though we haven't seen this crash in the wild we should keep this
+20 −2
Original line number Diff line number Diff line
@@ -82,6 +82,8 @@ import com.android.internal.R;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.GsmAlphabet.TextEncodingDetails;
import com.android.internal.telephony.cdma.sms.UserData;
import com.android.internal.telephony.subscription.SubscriptionInfoInternal;
import com.android.internal.telephony.subscription.SubscriptionManagerService;
import com.android.internal.telephony.uicc.IccRecords;
import com.android.telephony.Rlog;

@@ -397,8 +399,16 @@ public abstract class SMSDispatcher extends Handler {
                 */
                mMessageRef = getTpmrValueFromSIM();
                if (mMessageRef == -1) {
                    if (mPhone.isSubscriptionManagerServiceEnabled()) {
                        SubscriptionInfoInternal subInfo = SubscriptionManagerService.getInstance()
                                .getSubscriptionInfoInternal(msg.arg1);
                        if (subInfo != null) {
                            mMessageRef = subInfo.getLastUsedTPMessageReference();
                        }
                    } else {
                        mMessageRef = SubscriptionController.getInstance().getMessageRef(msg.arg1);
                    }
                }
                break;

            default:
@@ -419,7 +429,12 @@ public abstract class SMSDispatcher extends Handler {
        updateSIMLastTPMRValue(mMessageRef);
        final long identity = Binder.clearCallingIdentity();
        try {
            if (PhoneFactory.isSubscriptionManagerServiceEnabled()) {
                SubscriptionManagerService.getInstance()
                        .setLastUsedTPMessageReference(getSubId(), mMessageRef);
            } else {
                SubscriptionController.getInstance().updateMessageRef(getSubId(), mMessageRef);
            }
        } catch (SecurityException e) {
            Rlog.e(TAG, "Security Exception caused on messageRef updation to DB " + e.getMessage());
        } finally {
@@ -2707,6 +2722,9 @@ public abstract class SMSDispatcher extends Handler {

    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
    protected int getSubId() {
        if (mPhone.isSubscriptionManagerServiceEnabled()) {
            return SubscriptionManagerService.getInstance().getSubId(mPhone.getPhoneId());
        }
        return SubscriptionController.getInstance().getSubId(mPhone.getPhoneId());
    }

+21 −6
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ import android.telephony.TelephonyFrameworkInitializer;
import android.telephony.TelephonyManager;

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

@@ -519,19 +520,33 @@ public class SmsController extends ISmsImplBase {
    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
    @Override
    public int getPreferredSmsSubscription() {
        int defaultSubId;
        if (PhoneFactory.isSubscriptionManagerServiceEnabled()) {
            // If there is a default, choose that one.
        int defaultSubId = SubscriptionController.getInstance().getDefaultSmsSubId();
            defaultSubId = SubscriptionManagerService.getInstance().getDefaultSmsSubId();
        } else {
            // If there is a default, choose that one.
            defaultSubId = SubscriptionController.getInstance().getDefaultSmsSubId();
        }
        if (SubscriptionManager.isValidSubscriptionId(defaultSubId)) {
            return defaultSubId;
        }
        // No default, if there is only one sub active, choose that as the "preferred" sub id.
        long token = Binder.clearCallingIdentity();
        try {
            if (PhoneFactory.isSubscriptionManagerServiceEnabled()) {
                int[] activeSubs = SubscriptionManagerService.getInstance()
                        .getActiveSubIdList(true /*visibleOnly*/);
                if (activeSubs.length == 1) {
                    return activeSubs[0];
                }
            } else {
                int[] activeSubs = SubscriptionController.getInstance()
                        .getActiveSubIdList(true /*visibleOnly*/);
                if (activeSubs.length == 1) {
                    return activeSubs[0];
                }
            }
        } finally {
            Binder.restoreCallingIdentity(token);
        }
+8 −2
Original line number Diff line number Diff line
@@ -19,11 +19,12 @@
package com.android.internal.telephony;

import android.compat.annotation.UnsupportedAppUsage;
import android.content.ContentValues;
import android.os.Build;
import android.os.TelephonyServiceManager.ServiceRegisterer;
import android.telephony.TelephonyFrameworkInitializer;
import android.content.ContentValues;

import com.android.internal.telephony.subscription.SubscriptionManagerService;
import com.android.internal.telephony.uicc.AdnCapacity;
import com.android.internal.telephony.uicc.AdnRecord;
import com.android.telephony.Rlog;
@@ -146,7 +147,12 @@ public class UiccPhoneBookController extends IIccPhoneBook.Stub {
    private IccPhoneBookInterfaceManager
            getIccPhoneBookInterfaceManager(int subId) {

        int phoneId = SubscriptionController.getInstance().getPhoneId(subId);
        int phoneId;
        if (PhoneFactory.isSubscriptionManagerServiceEnabled()) {
            phoneId = SubscriptionManagerService.getInstance().getPhoneId(subId);
        } else {
            phoneId = SubscriptionController.getInstance().getPhoneId(subId);
        }
        try {
            return PhoneFactory.getPhone(phoneId).getIccPhoneBookInterfaceManager();
        } catch (NullPointerException e) {
+12 −3
Original line number Diff line number Diff line
@@ -38,7 +38,9 @@ import android.telephony.TelephonyManager;

import com.android.internal.telephony.CommandsInterface;
import com.android.internal.telephony.PhoneConstants;
import com.android.internal.telephony.PhoneFactory;
import com.android.internal.telephony.SubscriptionController;
import com.android.internal.telephony.subscription.SubscriptionManagerService;
import com.android.internal.telephony.uicc.IccCardStatus.CardState;
import com.android.internal.telephony.uicc.IccFileHandler;
import com.android.internal.telephony.uicc.IccRecords;
@@ -808,10 +810,17 @@ public class CatService extends Handler implements AppInterface {
    //TODO Need to take care for MSIM
    public static AppInterface getInstance() {
        int slotId = PhoneConstants.DEFAULT_SLOT_INDEX;
        if (PhoneFactory.isSubscriptionManagerServiceEnabled()) {
            if (SubscriptionManagerService.getInstance() != null) {
                slotId = SubscriptionManagerService.getInstance().getSlotIndex(
                        SubscriptionManagerService.getInstance().getDefaultSubId());
            }
        } else {
            SubscriptionController sControl = SubscriptionController.getInstance();
            if (sControl != null) {
                slotId = sControl.getSlotIndex(sControl.getDefaultSubId());
            }
        }
        return getInstance(null, null, null, slotId);
    }

Loading