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

Commit ec63139d authored by Jack Yu's avatar Jack Yu Committed by Gerrit Code Review
Browse files

Merge changes from topics "default_sub", "default_vonr"

* changes:
  Added default voice/data/sms subscription support
  Improve data set up time
  Added getAvailableSubscriptionInfoList
  Added getSubscriptionsInGroup support
  Use default VoNR setting if the setting has not been overwritten before
parents aa0bee6f daca795b
Loading
Loading
Loading
Loading
+21 −14
Original line number Diff line number Diff line
@@ -100,6 +100,7 @@ import com.android.internal.telephony.imsphone.ImsPhoneCallTracker;
import com.android.internal.telephony.imsphone.ImsPhoneMmiCode;
import com.android.internal.telephony.metrics.TelephonyMetrics;
import com.android.internal.telephony.metrics.VoiceCallSessionStats;
import com.android.internal.telephony.subscription.SubscriptionInfoInternal;
import com.android.internal.telephony.subscription.SubscriptionManagerService.SubscriptionManagerServiceCallback;
import com.android.internal.telephony.test.SimulatedRadioControl;
import com.android.internal.telephony.uicc.IccCardApplicationStatus.AppType;
@@ -4652,28 +4653,34 @@ public class GsmCdmaPhone extends Phone {

        boolean mIsVonrEnabledByCarrier =
                config.getBoolean(CarrierConfigManager.KEY_VONR_ENABLED_BOOL);

        String result = SubscriptionController.getInstance().getSubscriptionProperty(
                getSubId(),
                SubscriptionManager.NR_ADVANCED_CALLING_ENABLED);
        boolean mDefaultVonr =
                config.getBoolean(CarrierConfigManager.KEY_VONR_ON_BY_DEFAULT_BOOL);

        int setting = -1;
        if (isSubscriptionManagerServiceEnabled()) {
            SubscriptionInfoInternal subInfo = mSubscriptionManagerService
                    .getSubscriptionInfoInternal(getSubId());
            if (subInfo != null) {
                setting = subInfo.getNrAdvancedCallingEnabled();
            }
        } else {
            String result = SubscriptionController.getInstance().getSubscriptionProperty(
                    getSubId(), SubscriptionManager.NR_ADVANCED_CALLING_ENABLED);
            if (result != null) {
                setting = Integer.parseInt(result);
            }
        }

        logd("VoNR setting from telephony.db:"
                + setting
                + " ,vonr_enabled_bool:"
                + mIsVonrEnabledByCarrier);
                + mIsVonrEnabledByCarrier
                + " ,vonr_on_by_default_bool:"
                + mDefaultVonr);

        if (!mIsVonrEnabledByCarrier) {
            mCi.setVoNrEnabled(false, obtainMessage(EVENT_SET_VONR_ENABLED_DONE), null);
        } else if (setting == 1 || setting == -1) {
            mCi.setVoNrEnabled(true, obtainMessage(EVENT_SET_VONR_ENABLED_DONE), null);
        } else if (setting == 0) {
            mCi.setVoNrEnabled(false, obtainMessage(EVENT_SET_VONR_ENABLED_DONE), null);
        }
        boolean enbleVonr = mIsVonrEnabledByCarrier
                && (setting == 1 || (setting == -1 && mDefaultVonr));
        mCi.setVoNrEnabled(enbleVonr, obtainMessage(EVENT_SET_VONR_ENABLED_DONE), null);
    }

    private void updateCdmaRoamingSettingsAfterCarrierConfigChanged(PersistableBundle config) {
+11 −5
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ import android.util.Log;

import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.data.DataSettingsManager.DataSettingsManagerCallback;
import com.android.internal.telephony.subscription.SubscriptionManagerService;
import com.android.internal.telephony.util.ArrayUtils;

import java.lang.annotation.Retention;
@@ -903,11 +904,16 @@ public class MultiSimSettingController extends Handler {
     * are synced.
     */
    private void setRoamingDataEnabledForGroup(int subId, boolean enable) {
        SubscriptionController subController = SubscriptionController.getInstance();
        List<SubscriptionInfo> infoList = subController.getSubscriptionsInGroup(
        List<SubscriptionInfo> infoList;
        if (PhoneFactory.getDefaultPhone().isSubscriptionManagerServiceEnabled()) {
            infoList = SubscriptionManagerService.getInstance().getSubscriptionsInGroup(
                    mSubController.getGroupUuid(subId), mContext.getOpPackageName(),
                    mContext.getAttributionTag());

        } else {
            infoList = SubscriptionController.getInstance().getSubscriptionsInGroup(
                    mSubController.getGroupUuid(subId), mContext.getOpPackageName(),
                    mContext.getAttributionTag());
        }
        if (infoList == null) return;

        for (SubscriptionInfo info : infoList) {
+9 −0
Original line number Diff line number Diff line
@@ -42,6 +42,8 @@ import android.telephony.SubscriptionInfo;
import android.telephony.TelephonyScanManager;
import android.util.Log;

import com.android.internal.telephony.subscription.SubscriptionManagerService;

import java.util.Collection;
import java.util.List;
import java.util.Set;
@@ -195,6 +197,13 @@ public final class NetworkScanRequestTracker {
    public static Set<String> getAllowedMccMncsForLocationRestrictedScan(Context context) {
        final long token = Binder.clearCallingIdentity();
        try {
            if (PhoneFactory.getDefaultPhone().isSubscriptionManagerServiceEnabled()) {
                return SubscriptionManagerService.getInstance()
                        .getAvailableSubscriptionInfoList(context.getOpPackageName(),
                                context.getAttributionTag()).stream()
                        .flatMap(NetworkScanRequestTracker::getAllowableMccMncsFromSubscriptionInfo)
                        .collect(Collectors.toSet());
            }
            return SubscriptionController.getInstance()
                    .getAvailableSubscriptionInfoList(context.getOpPackageName(),
                            context.getAttributionTag()).stream()
+1 −2
Original line number Diff line number Diff line
@@ -2333,8 +2333,7 @@ public class DataNetworkController extends Handler {
                + "carrier specific. mSimState="
                + SubscriptionInfoUpdater.simStateString(mSimState));
        updateNetworkRequestsPriority();
        sendMessage(obtainMessage(EVENT_REEVALUATE_UNSATISFIED_NETWORK_REQUESTS,
                DataEvaluationReason.DATA_CONFIG_CHANGED));
        onReevaluateUnsatisfiedNetworkRequests(DataEvaluationReason.DATA_CONFIG_CHANGED);
    }

    /**
+18 −9
Original line number Diff line number Diff line
@@ -628,11 +628,12 @@ public class SubscriptionInfoInternal {
     * @return {@code true} if enhanced 4G mode is enabled by the user or not.
     */
    public boolean isEnhanced4GModeEnabled() {
        return mIsEnhanced4GModeEnabled != 0;
        return mIsEnhanced4GModeEnabled == 1;
    }

    /**
     * @return {@code 1} if enhanced 4G mode is enabled by the user or not.
     * @return {@code 1} if enhanced 4G mode is enabled by the user or not. {@code 0} if disabled.
     * {@code -1} if the user did not change any setting.
     */
    public int getEnhanced4GModeEnabled() {
        return mIsEnhanced4GModeEnabled;
@@ -657,12 +658,12 @@ public class SubscriptionInfoInternal {
     * roaming.
     */
    public boolean isWifiCallingEnabled() {
        return mIsWifiCallingEnabled != 0;
        return mIsWifiCallingEnabled == 1;
    }

    /**
     * @return {@code 1} if Wi-Fi calling is enabled by the user or not when the device is not
     * roaming.
     * roaming. {@code 0} if disabled. {@code -1} if the user did not change any setting.
     */
    public int getWifiCallingEnabled() {
        return mIsWifiCallingEnabled;
@@ -686,10 +687,10 @@ public class SubscriptionInfoInternal {

    /**
     * @return {@code true} if Wi-Fi calling is enabled by the user or not when the device is
     * roaming.
     * roaming. {@code 0} if disabled. {@code -1} if the user did not change any setting.
     */
    public boolean isWifiCallingEnabledForRoaming() {
        return mIsWifiCallingEnabledForRoaming != 0;
        return mIsWifiCallingEnabledForRoaming == 1;
    }

    /**
@@ -894,11 +895,12 @@ public class SubscriptionInfoInternal {
     * @return {@code true} if the user has enabled NR advanced calling.
     */
    public boolean isNrAdvancedCallingEnabled() {
        return mIsNrAdvancedCallingEnabled != 0;
        return mIsNrAdvancedCallingEnabled == 1;
    }

    /**
     * @return {@code 1} if the user has enabled NR advanced calling.
     * @return {@code 1} if the user has enabled NR advanced calling. {code 0} if disabled.
     * {code -1} if the user did not change any setting.
     */
    public int getNrAdvancedCallingEnabled() {
        return mIsNrAdvancedCallingEnabled;
@@ -971,6 +973,13 @@ public class SubscriptionInfoInternal {
        return mIsGroupDisabled;
    }

    /**
     * @return {@code true} if the subscription is from the actively used SIM.
     */
    public boolean isActive() {
        return mSimSlotIndex >= 0 || mType == SubscriptionManager.SUBSCRIPTION_TYPE_REMOTE_SIM;
    }

    /** @return converted {@link SubscriptionInfo}. */
    @NonNull
    public SubscriptionInfo toSubscriptionInfo() {
@@ -1407,7 +1416,7 @@ public class SubscriptionInfoInternal {
        /**
         * Whether the user has enabled NR advanced calling.
         */
        private int mIsNrAdvancedCallingEnabled = 0;
        private int mIsNrAdvancedCallingEnabled = -1;

        /**
         * The phone number retrieved from carrier.
Loading