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

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

Merge "Completely detach old data stack"

parents 39779ee0 d27e45d1
Loading
Loading
Loading
Loading
+22 −20
Original line number Original line Diff line number Diff line
@@ -309,8 +309,10 @@ public class GsmCdmaPhone extends Phone {
        mAccessNetworksManager = mTelephonyComponentFactory
        mAccessNetworksManager = mTelephonyComponentFactory
                .inject(AccessNetworksManager.class.getName())
                .inject(AccessNetworksManager.class.getName())
                .makeAccessNetworksManager(this);
                .makeAccessNetworksManager(this);
        if (!isUsingNewDataStack()) {
            mTransportManager = mTelephonyComponentFactory.inject(TransportManager.class.getName())
            mTransportManager = mTelephonyComponentFactory.inject(TransportManager.class.getName())
                    .makeTransportManager(this);
                    .makeTransportManager(this);
        }
        // SST/DSM depends on SSC, so SSC is instanced before SST/DSM
        // SST/DSM depends on SSC, so SSC is instanced before SST/DSM
        mSignalStrengthController = mTelephonyComponentFactory.inject(
        mSignalStrengthController = mTelephonyComponentFactory.inject(
                SignalStrengthController.class.getName()).makeSignalStrengthController(this);
                SignalStrengthController.class.getName()).makeSignalStrengthController(this);
@@ -319,8 +321,10 @@ public class GsmCdmaPhone extends Phone {
        mEmergencyNumberTracker = mTelephonyComponentFactory
        mEmergencyNumberTracker = mTelephonyComponentFactory
                .inject(EmergencyNumberTracker.class.getName()).makeEmergencyNumberTracker(
                .inject(EmergencyNumberTracker.class.getName()).makeEmergencyNumberTracker(
                        this, this.mCi);
                        this, this.mCi);
        if (!isUsingNewDataStack()) {
            mDataEnabledSettings = mTelephonyComponentFactory
            mDataEnabledSettings = mTelephonyComponentFactory
                    .inject(DataEnabledSettings.class.getName()).makeDataEnabledSettings(this);
                    .inject(DataEnabledSettings.class.getName()).makeDataEnabledSettings(this);
        }
        mDeviceStateMonitor = mTelephonyComponentFactory.inject(DeviceStateMonitor.class.getName())
        mDeviceStateMonitor = mTelephonyComponentFactory.inject(DeviceStateMonitor.class.getName())
                .makeDeviceStateMonitor(this);
                .makeDeviceStateMonitor(this);


@@ -329,19 +333,19 @@ public class GsmCdmaPhone extends Phone {
        mDisplayInfoController = mTelephonyComponentFactory.inject(
        mDisplayInfoController = mTelephonyComponentFactory.inject(
                DisplayInfoController.class.getName()).makeDisplayInfoController(this);
                DisplayInfoController.class.getName()).makeDisplayInfoController(this);


        if (isUsingNewDataStack()) {
            mDataNetworkController = mTelephonyComponentFactory.inject(
                    DataNetworkController.class.getName())
                    .makeDataNetworkController(this, getLooper());
        } else {
            // DcTracker uses ServiceStateTracker and DisplayInfoController so needs to be created
            // DcTracker uses ServiceStateTracker and DisplayInfoController so needs to be created
            // after they are instantiated
            // after they are instantiated
        for (int transport : mTransportManager.getAvailableTransports()) {
            for (int transport : mAccessNetworksManager.getAvailableTransports()) {
                DcTracker dcTracker = mTelephonyComponentFactory.inject(DcTracker.class.getName())
                DcTracker dcTracker = mTelephonyComponentFactory.inject(DcTracker.class.getName())
                        .makeDcTracker(this, transport);
                        .makeDcTracker(this, transport);
                mDcTrackers.put(transport, dcTracker);
                mDcTrackers.put(transport, dcTracker);
            mTransportManager.registerDataThrottler(dcTracker.getDataThrottler());
                mAccessNetworksManager.registerDataThrottler(dcTracker.getDataThrottler());
            }
            }

        if (isUsingNewDataStack()) {
            mDataNetworkController = mTelephonyComponentFactory.inject(
                    DataNetworkController.class.getName())
                    .makeDataNetworkController(this, getLooper());
        }
        }


        mCarrierResolver = mTelephonyComponentFactory.inject(CarrierResolver.class.getName())
        mCarrierResolver = mTelephonyComponentFactory.inject(CarrierResolver.class.getName())
@@ -706,12 +710,6 @@ public class GsmCdmaPhone extends Phone {
        return mPendingMMIs;
        return mPendingMMIs;
    }
    }


    private @NonNull DcTracker getActiveDcTrackerForApn(@NonNull String apnType) {
        int currentTransport = mTransportManager.getCurrentTransport(
                ApnSetting.getApnTypesBitmaskFromString(apnType));
        return getDcTracker(currentTransport);
    }

    @Override
    @Override
    public boolean isDataSuspended() {
    public boolean isDataSuspended() {
        return mCT.mState != PhoneConstants.State.IDLE && !mSST.isConcurrentVoiceAndDataAllowed();
        return mCT.mState != PhoneConstants.State.IDLE && !mSST.isConcurrentVoiceAndDataAllowed();
@@ -737,7 +735,7 @@ public class GsmCdmaPhone extends Phone {


            ret = PhoneConstants.DataState.DISCONNECTED;
            ret = PhoneConstants.DataState.DISCONNECTED;
        } else { /* mSST.gprsState == ServiceState.STATE_IN_SERVICE */
        } else { /* mSST.gprsState == ServiceState.STATE_IN_SERVICE */
            int currentTransport = mTransportManager.getCurrentTransport(
            int currentTransport = mAccessNetworksManager.getCurrentTransport(
                    ApnSetting.getApnTypesBitmaskFromString(apnType));
                    ApnSetting.getApnTypesBitmaskFromString(apnType));
            if (getDcTracker(currentTransport) != null) {
            if (getDcTracker(currentTransport) != null) {
                switch (getDcTracker(currentTransport).getState(apnType)) {
                switch (getDcTracker(currentTransport).getState(apnType)) {
@@ -764,6 +762,10 @@ public class GsmCdmaPhone extends Phone {


    @Override
    @Override
    public DataActivityState getDataActivityState() {
    public DataActivityState getDataActivityState() {
        if (isUsingNewDataStack()) {
            // TODO: Support it correctly.
            return DataActivityState.NONE;
        }
        DataActivityState ret = DataActivityState.NONE;
        DataActivityState ret = DataActivityState.NONE;


        if (mSST.getCurrentDataConnectionState() == ServiceState.STATE_IN_SERVICE
        if (mSST.getCurrentDataConnectionState() == ServiceState.STATE_IN_SERVICE
+20 −105
Original line number Original line Diff line number Diff line
@@ -24,8 +24,6 @@ import android.content.Context;
import android.content.Intent;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.content.res.Configuration;
import android.net.LinkProperties;
import android.net.NetworkCapabilities;
import android.net.Uri;
import android.net.Uri;
import android.os.AsyncResult;
import android.os.AsyncResult;
import android.os.Build;
import android.os.Build;
@@ -51,6 +49,7 @@ import android.telephony.CellInfo;
import android.telephony.ClientRequestStats;
import android.telephony.ClientRequestStats;
import android.telephony.ImsiEncryptionInfo;
import android.telephony.ImsiEncryptionInfo;
import android.telephony.LinkCapacityEstimate;
import android.telephony.LinkCapacityEstimate;
import android.telephony.NetworkRegistrationInfo;
import android.telephony.PhoneStateListener;
import android.telephony.PhoneStateListener;
import android.telephony.PhysicalChannelConfig;
import android.telephony.PhysicalChannelConfig;
import android.telephony.PreciseDataConnectionState;
import android.telephony.PreciseDataConnectionState;
@@ -114,7 +113,6 @@ import java.io.FileReader;
import java.io.IOException;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashMap;
import java.util.HashSet;
import java.util.HashSet;
@@ -3576,31 +3574,6 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
        mRadioOffOrNotAvailableRegistrants.remove(h);
        mRadioOffOrNotAvailableRegistrants.remove(h);
    }
    }


    /**
     * Returns an array of string identifiers for the APN types serviced by the
     * currently active subscription.
     *
     * @return The string array of APN types. Return null if no active APN types.
     */
    @UnsupportedAppUsage
    @NonNull
    public String[] getActiveApnTypes() {
        if (mTransportManager == null || mDcTrackers == null)  {
            Rlog.e(LOG_TAG, "Invalid state for Transport/DcTrackers");
            return new String[0];
        }

        Set<String> activeApnTypes = new HashSet<String>();
        for (int transportType : mTransportManager.getAvailableTransports()) {
            DcTracker dct = getDcTracker(transportType);
            if (dct == null) continue; // TODO: should this ever happen?
            activeApnTypes.addAll(Arrays.asList(dct.getActiveApnTypes()));
        }

        return activeApnTypes.toArray(new String[activeApnTypes.size()]);
    }


    /**
    /**
     *  Location to an updatable file listing carrier provisioning urls.
     *  Location to an updatable file listing carrier provisioning urls.
     *  An example:
     *  An example:
@@ -3697,6 +3670,15 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
     * @return true if there is a matching DUN APN.
     * @return true if there is a matching DUN APN.
     */
     */
    public boolean hasMatchedTetherApnSetting() {
    public boolean hasMatchedTetherApnSetting() {
        if (isUsingNewDataStack()) {
            NetworkRegistrationInfo nrs = getServiceState().getNetworkRegistrationInfo(
                    NetworkRegistrationInfo.DOMAIN_PS, AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
            if (nrs != null) {
                return getDataNetworkController().getDataProfileManager()
                        .isTetheringDataProfileExisting(nrs.getAccessNetworkTechnology());
            }
            return false;
        }
        if (getDcTracker(AccessNetworkConstants.TRANSPORT_TYPE_WWAN) != null) {
        if (getDcTracker(AccessNetworkConstants.TRANSPORT_TYPE_WWAN) != null) {
            return getDcTracker(AccessNetworkConstants.TRANSPORT_TYPE_WWAN)
            return getDcTracker(AccessNetworkConstants.TRANSPORT_TYPE_WWAN)
                    .hasMatchedTetherApnSetting();
                    .hasMatchedTetherApnSetting();
@@ -3704,50 +3686,6 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
        return false;
        return false;
    }
    }


    /**
     * Returns string for the active APN host.
     *  @return type as a string or null if none.
     */
    public String getActiveApnHost(String apnType) {
        if (mTransportManager != null) {
            int transportType = mTransportManager.getCurrentTransport(
                    ApnSetting.getApnTypesBitmaskFromString(apnType));
            if (getDcTracker(transportType) != null) {
                return getDcTracker(transportType).getActiveApnString(apnType);
            }
        }

        return null;
    }

    /**
     * Return the LinkProperties for the named apn or null if not available
     */
    public LinkProperties getLinkProperties(String apnType) {
        if (mTransportManager != null) {
            int transport = mTransportManager.getCurrentTransport(
                    ApnSetting.getApnTypesBitmaskFromString(apnType));
            if (getDcTracker(transport) != null) {
                return getDcTracker(transport).getLinkProperties(apnType);
            }
        }
        return null;
    }

    /**
     * Return the NetworkCapabilities
     */
    public NetworkCapabilities getNetworkCapabilities(String apnType) {
        if (mTransportManager != null) {
            int transportType = mTransportManager.getCurrentTransport(
                    ApnSetting.getApnTypesBitmaskFromString(apnType));
            if (getDcTracker(transportType) != null) {
                return getDcTracker(transportType).getNetworkCapabilities(apnType);
            }
        }
        return null;
    }

    /**
    /**
     * Report on whether data connectivity is allowed for given APN type.
     * Report on whether data connectivity is allowed for given APN type.
     *
     *
@@ -3767,8 +3705,8 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
     * @return True if data is allowed to be established
     * @return True if data is allowed to be established
     */
     */
    public boolean isDataAllowed(@ApnType int apnType, DataConnectionReasons reasons) {
    public boolean isDataAllowed(@ApnType int apnType, DataConnectionReasons reasons) {
        if (mTransportManager != null) {
        if (mAccessNetworksManager != null) {
            int transport = mTransportManager.getCurrentTransport(apnType);
            int transport = mAccessNetworksManager.getCurrentTransport(apnType);
            if (getDcTracker(transport) != null) {
            if (getDcTracker(transport) != null) {
                return getDcTracker(transport).isDataAllowed(reasons);
                return getDcTracker(transport).isDataAllowed(reasons);
            }
            }
@@ -3968,22 +3906,6 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
        return mUiccController.getUiccPort(mPhoneId);
        return mUiccController.getUiccPort(mPhoneId);
    }
    }


    /**
     * Get P-CSCF address from PCO after data connection is established or modified.
     * @param apnType the apnType, "ims" for IMS APN, "emergency" for EMERGENCY APN
     */
    public String[] getPcscfAddress(String apnType) {
        if (mTransportManager != null) {
            int transportType = mTransportManager.getCurrentTransport(
                    ApnSetting.getApnTypesBitmaskFromString(apnType));
            if (getDcTracker(transportType) != null) {
                return getDcTracker(transportType).getPcscfAddress(apnType);
            }
        }

        return null;
    }

    /**
    /**
     * Set IMS registration state
     * Set IMS registration state
     */
     */
@@ -4574,8 +4496,8 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
     * @return True if all data connections are disconnected.
     * @return True if all data connections are disconnected.
     */
     */
    public boolean areAllDataDisconnected() {
    public boolean areAllDataDisconnected() {
        if (mTransportManager != null) {
        if (mAccessNetworksManager != null) {
            for (int transport : mTransportManager.getAvailableTransports()) {
            for (int transport : mAccessNetworksManager.getAvailableTransports()) {
                if (getDcTracker(transport) != null
                if (getDcTracker(transport) != null
                        && !getDcTracker(transport).areAllDataDisconnected()) {
                        && !getDcTracker(transport).areAllDataDisconnected()) {
                    return false;
                    return false;
@@ -4587,8 +4509,8 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {


    public void registerForAllDataDisconnected(Handler h, int what) {
    public void registerForAllDataDisconnected(Handler h, int what) {
        mAllDataDisconnectedRegistrants.addUnique(h, what, null);
        mAllDataDisconnectedRegistrants.addUnique(h, what, null);
        if (mTransportManager != null) {
        if (mAccessNetworksManager != null) {
            for (int transport : mTransportManager.getAvailableTransports()) {
            for (int transport : mAccessNetworksManager.getAvailableTransports()) {
                if (getDcTracker(transport) != null
                if (getDcTracker(transport) != null
                        && !getDcTracker(transport).areAllDataDisconnected()) {
                        && !getDcTracker(transport).areAllDataDisconnected()) {
                    getDcTracker(transport).registerForAllDataDisconnected(
                    getDcTracker(transport).registerForAllDataDisconnected(
@@ -4956,7 +4878,6 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
        pw.println(" getPhoneName()=" + getPhoneName());
        pw.println(" getPhoneName()=" + getPhoneName());
        pw.println(" getPhoneType()=" + getPhoneType());
        pw.println(" getPhoneType()=" + getPhoneType());
        pw.println(" getVoiceMessageCount()=" + getVoiceMessageCount());
        pw.println(" getVoiceMessageCount()=" + getVoiceMessageCount());
        pw.println(" getActiveApnTypes()=" + getActiveApnTypes());
        pw.println(" needsOtaServiceProvisioning=" + needsOtaServiceProvisioning());
        pw.println(" needsOtaServiceProvisioning=" + needsOtaServiceProvisioning());
        pw.println(" isInEmergencySmsMode=" + isInEmergencySmsMode());
        pw.println(" isInEmergencySmsMode=" + isInEmergencySmsMode());
        pw.println(" isEcmCanceledForEmergency=" + isEcmCanceledForEmergency());
        pw.println(" isEcmCanceledForEmergency=" + isEcmCanceledForEmergency());
@@ -4976,8 +4897,8 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
            pw.println("++++++++++++++++++++++++++++++++");
            pw.println("++++++++++++++++++++++++++++++++");
        }
        }


        if (mTransportManager != null) {
        if (mAccessNetworksManager != null) {
            for (int transport : mTransportManager.getAvailableTransports()) {
            for (int transport : mAccessNetworksManager.getAvailableTransports()) {
                if (getDcTracker(transport) != null) {
                if (getDcTracker(transport) != null) {
                    getDcTracker(transport).dump(fd, pw, args);
                    getDcTracker(transport).dump(fd, pw, args);
                    pw.flush();
                    pw.flush();
@@ -5096,15 +5017,9 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
            pw.println("++++++++++++++++++++++++++++++++");
            pw.println("++++++++++++++++++++++++++++++++");
        }
        }


        if (isUsingNewDataStack()) {
        if (mAccessNetworksManager != null) {
        if (mAccessNetworksManager != null) {
            mAccessNetworksManager.dump(fd, pw, args);
            mAccessNetworksManager.dump(fd, pw, args);
        }
        }
        } else {
            if (mTransportManager != null) {
                mTransportManager.dump(fd, pw, args);
            }
        }


        if (mCi != null && mCi instanceof RIL) {
        if (mCi != null && mCi instanceof RIL) {
            try {
            try {
+24 −24
Original line number Original line Diff line number Diff line
@@ -92,10 +92,10 @@ import com.android.internal.telephony.cdma.EriInfo;
import com.android.internal.telephony.cdma.EriManager;
import com.android.internal.telephony.cdma.EriManager;
import com.android.internal.telephony.cdnr.CarrierDisplayNameData;
import com.android.internal.telephony.cdnr.CarrierDisplayNameData;
import com.android.internal.telephony.cdnr.CarrierDisplayNameResolver;
import com.android.internal.telephony.cdnr.CarrierDisplayNameResolver;
import com.android.internal.telephony.data.AccessNetworksManager;
import com.android.internal.telephony.data.DataNetwork;
import com.android.internal.telephony.data.DataNetwork;
import com.android.internal.telephony.data.DataNetworkController.DataNetworkControllerCallback;
import com.android.internal.telephony.data.DataNetworkController.DataNetworkControllerCallback;
import com.android.internal.telephony.dataconnection.DataConnection;
import com.android.internal.telephony.dataconnection.DataConnection;
import com.android.internal.telephony.dataconnection.TransportManager;
import com.android.internal.telephony.metrics.ServiceStateStats;
import com.android.internal.telephony.metrics.ServiceStateStats;
import com.android.internal.telephony.metrics.TelephonyMetrics;
import com.android.internal.telephony.metrics.TelephonyMetrics;
import com.android.internal.telephony.uicc.IccCardApplicationStatus.AppState;
import com.android.internal.telephony.uicc.IccCardApplicationStatus.AppState;
@@ -610,7 +610,7 @@ public class ServiceStateTracker extends Handler {
    private String mRegistrationDeniedReason;
    private String mRegistrationDeniedReason;
    private String mCurrentCarrier = null;
    private String mCurrentCarrier = null;


    private final TransportManager mTransportManager;
    private final AccessNetworksManager mAccessNetworksManager;
    private final SparseArray<NetworkRegistrationManager> mRegStateManagers = new SparseArray<>();
    private final SparseArray<NetworkRegistrationManager> mRegStateManagers = new SparseArray<>();


    /* Last known TAC/LAC */
    /* Last known TAC/LAC */
@@ -658,11 +658,11 @@ public class ServiceStateTracker extends Handler {
                new android.os.HandlerExecutor(this), mOnSubscriptionsChangedListener);
                new android.os.HandlerExecutor(this), mOnSubscriptionsChangedListener);
        mRestrictedState = new RestrictedState();
        mRestrictedState = new RestrictedState();


        mTransportManager = mPhone.getTransportManager();
        mAccessNetworksManager = mPhone.getAccessNetworksManager();
        mOutOfServiceSS = new ServiceState();
        mOutOfServiceSS = new ServiceState();
        mOutOfServiceSS.setOutOfService(mTransportManager.isInLegacyMode(), false);
        mOutOfServiceSS.setOutOfService(mAccessNetworksManager.isInLegacyMode(), false);


        for (int transportType : mTransportManager.getAvailableTransports()) {
        for (int transportType : mAccessNetworksManager.getAvailableTransports()) {
            mRegStateManagers.append(transportType, new NetworkRegistrationManager(
            mRegStateManagers.append(transportType, new NetworkRegistrationManager(
                    transportType, phone));
                    transportType, phone));
            mRegStateManagers.get(transportType).registerForNetworkRegistrationInfoChanged(
            mRegStateManagers.get(transportType).registerForNetworkRegistrationInfoChanged(
@@ -744,7 +744,7 @@ public class ServiceStateTracker extends Handler {
        }
        }


        // If we are previously in service, we need to notify that we are out of service now.
        // If we are previously in service, we need to notify that we are out of service now.
        for (int transport : mTransportManager.getAvailableTransports()) {
        for (int transport : mAccessNetworksManager.getAvailableTransports()) {
            if (mSS != null) {
            if (mSS != null) {
                NetworkRegistrationInfo nrs = mSS.getNetworkRegistrationInfo(
                NetworkRegistrationInfo nrs = mSS.getNetworkRegistrationInfo(
                        NetworkRegistrationInfo.DOMAIN_PS, transport);
                        NetworkRegistrationInfo.DOMAIN_PS, transport);
@@ -756,9 +756,9 @@ public class ServiceStateTracker extends Handler {
        }
        }


        mSS = new ServiceState();
        mSS = new ServiceState();
        mSS.setOutOfService(mTransportManager.isInLegacyMode(), false);
        mSS.setOutOfService(mAccessNetworksManager.isInLegacyMode(), false);
        mNewSS = new ServiceState();
        mNewSS = new ServiceState();
        mNewSS.setOutOfService(mTransportManager.isInLegacyMode(), false);
        mNewSS.setOutOfService(mAccessNetworksManager.isInLegacyMode(), false);
        mLastCellInfoReqTime = 0;
        mLastCellInfoReqTime = 0;
        mLastCellInfoList = null;
        mLastCellInfoList = null;
        mStartedGprsRegCheck = false;
        mStartedGprsRegCheck = false;
@@ -817,7 +817,7 @@ public class ServiceStateTracker extends Handler {


        // Tell everybody that the registration state and RAT have changed.
        // Tell everybody that the registration state and RAT have changed.
        notifyVoiceRegStateRilRadioTechnologyChanged();
        notifyVoiceRegStateRilRadioTechnologyChanged();
        for (int transport : mTransportManager.getAvailableTransports()) {
        for (int transport : mAccessNetworksManager.getAvailableTransports()) {
            notifyDataRegStateRilRadioTechnologyChanged(transport);
            notifyDataRegStateRilRadioTechnologyChanged(transport);
        }
        }
    }
    }
@@ -2171,7 +2171,7 @@ public class ServiceStateTracker extends Handler {
                NetworkRegistrationInfo.DOMAIN_PS, AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
                NetworkRegistrationInfo.DOMAIN_PS, AccessNetworkConstants.TRANSPORT_TYPE_WWAN);


        // Check if any APN is preferred on IWLAN.
        // Check if any APN is preferred on IWLAN.
        boolean isIwlanPreferred = mTransportManager.isAnyApnOnIwlan();
        boolean isIwlanPreferred = mAccessNetworksManager.isAnyApnOnIwlan();
        serviceState.setIwlanPreferred(isIwlanPreferred);
        serviceState.setIwlanPreferred(isIwlanPreferred);
        if (wlanPsRegState != null
        if (wlanPsRegState != null
                && wlanPsRegState.getAccessNetworkTechnology()
                && wlanPsRegState.getAccessNetworkTechnology()
@@ -3322,7 +3322,7 @@ public class ServiceStateTracker extends Handler {


        switch (mCi.getRadioState()) {
        switch (mCi.getRadioState()) {
            case TelephonyManager.RADIO_POWER_UNAVAILABLE:
            case TelephonyManager.RADIO_POWER_UNAVAILABLE:
                mNewSS.setOutOfService(mTransportManager.isInLegacyMode(), false);
                mNewSS.setOutOfService(mAccessNetworksManager.isInLegacyMode(), false);
                mPhone.getSignalStrengthController().setSignalStrengthDefaultValues();
                mPhone.getSignalStrengthController().setSignalStrengthDefaultValues();
                mLastNitzData = null;
                mLastNitzData = null;
                mNitzState.handleNetworkUnavailable();
                mNitzState.handleNetworkUnavailable();
@@ -3330,7 +3330,7 @@ public class ServiceStateTracker extends Handler {
                break;
                break;


            case TelephonyManager.RADIO_POWER_OFF:
            case TelephonyManager.RADIO_POWER_OFF:
                mNewSS.setOutOfService(mTransportManager.isInLegacyMode(), true);
                mNewSS.setOutOfService(mAccessNetworksManager.isInLegacyMode(), true);
                mPhone.getSignalStrengthController().setSignalStrengthDefaultValues();
                mPhone.getSignalStrengthController().setSignalStrengthDefaultValues();
                mLastNitzData = null;
                mLastNitzData = null;
                mNitzState.handleNetworkUnavailable();
                mNitzState.handleNetworkUnavailable();
@@ -3453,13 +3453,13 @@ public class ServiceStateTracker extends Handler {
                        && mNewSS.getState() != ServiceState.STATE_POWER_OFF;
                        && mNewSS.getState() != ServiceState.STATE_POWER_OFF;


        SparseBooleanArray hasDataAttached = new SparseBooleanArray(
        SparseBooleanArray hasDataAttached = new SparseBooleanArray(
                mTransportManager.getAvailableTransports().length);
                mAccessNetworksManager.getAvailableTransports().length);
        SparseBooleanArray hasDataDetached = new SparseBooleanArray(
        SparseBooleanArray hasDataDetached = new SparseBooleanArray(
                mTransportManager.getAvailableTransports().length);
                mAccessNetworksManager.getAvailableTransports().length);
        SparseBooleanArray hasRilDataRadioTechnologyChanged = new SparseBooleanArray(
        SparseBooleanArray hasRilDataRadioTechnologyChanged = new SparseBooleanArray(
                mTransportManager.getAvailableTransports().length);
                mAccessNetworksManager.getAvailableTransports().length);
        SparseBooleanArray hasDataRegStateChanged = new SparseBooleanArray(
        SparseBooleanArray hasDataRegStateChanged = new SparseBooleanArray(
                mTransportManager.getAvailableTransports().length);
                mAccessNetworksManager.getAvailableTransports().length);
        boolean anyDataRegChanged = false;
        boolean anyDataRegChanged = false;
        boolean anyDataRatChanged = false;
        boolean anyDataRatChanged = false;
        boolean hasAlphaRawChanged =
        boolean hasAlphaRawChanged =
@@ -3467,7 +3467,7 @@ public class ServiceStateTracker extends Handler {
                        || !TextUtils.equals(mSS.getOperatorAlphaShortRaw(),
                        || !TextUtils.equals(mSS.getOperatorAlphaShortRaw(),
                        mNewSS.getOperatorAlphaShortRaw());
                        mNewSS.getOperatorAlphaShortRaw());


        for (int transport : mTransportManager.getAvailableTransports()) {
        for (int transport : mAccessNetworksManager.getAvailableTransports()) {
            NetworkRegistrationInfo oldNrs = mSS.getNetworkRegistrationInfo(
            NetworkRegistrationInfo oldNrs = mSS.getNetworkRegistrationInfo(
                    NetworkRegistrationInfo.DOMAIN_PS, transport);
                    NetworkRegistrationInfo.DOMAIN_PS, transport);
            NetworkRegistrationInfo newNrs = mNewSS.getNetworkRegistrationInfo(
            NetworkRegistrationInfo newNrs = mNewSS.getNetworkRegistrationInfo(
@@ -3653,7 +3653,7 @@ public class ServiceStateTracker extends Handler {
        ServiceState oldMergedSS = new ServiceState(mPhone.getServiceState());
        ServiceState oldMergedSS = new ServiceState(mPhone.getServiceState());
        mSS = new ServiceState(mNewSS);
        mSS = new ServiceState(mNewSS);


        mNewSS.setOutOfService(mTransportManager.isInLegacyMode(), false);
        mNewSS.setOutOfService(mAccessNetworksManager.isInLegacyMode(), false);


        mCellIdentity = primaryCellIdentity;
        mCellIdentity = primaryCellIdentity;
        if (mSS.getState() == ServiceState.STATE_IN_SERVICE && primaryCellIdentity != null) {
        if (mSS.getState() == ServiceState.STATE_IN_SERVICE && primaryCellIdentity != null) {
@@ -3803,7 +3803,7 @@ public class ServiceStateTracker extends Handler {
            mPhone.getSignalStrengthController().notifySignalStrength();
            mPhone.getSignalStrengthController().notifySignalStrength();
        }
        }


        for (int transport : mTransportManager.getAvailableTransports()) {
        for (int transport : mAccessNetworksManager.getAvailableTransports()) {
            if (hasRilDataRadioTechnologyChanged.get(transport)) {
            if (hasRilDataRadioTechnologyChanged.get(transport)) {
                shouldLogRatChange = true;
                shouldLogRatChange = true;
                mPhone.getSignalStrengthController().notifySignalStrength();
                mPhone.getSignalStrengthController().notifySignalStrength();
@@ -4994,7 +4994,7 @@ public class ServiceStateTracker extends Handler {
                        || (dds != mPhone.getSubId()
                        || (dds != mPhone.getSubId()
                        && ProxyController.getInstance().areAllDataDisconnected(dds)))) {
                        && ProxyController.getInstance().areAllDataDisconnected(dds)))) {
                    // To minimize race conditions we do this after isDisconnected
                    // To minimize race conditions we do this after isDisconnected
                    for (int transport : mTransportManager.getAvailableTransports()) {
                    for (int transport : mAccessNetworksManager.getAvailableTransports()) {
                        if (mPhone.getDcTracker(transport) != null) {
                        if (mPhone.getDcTracker(transport) != null) {
                            mPhone.getDcTracker(transport).cleanUpAllConnections(
                            mPhone.getDcTracker(transport).cleanUpAllConnections(
                                    Phone.REASON_RADIO_TURNED_OFF);
                                    Phone.REASON_RADIO_TURNED_OFF);
@@ -5011,7 +5011,7 @@ public class ServiceStateTracker extends Handler {
                        mPhone.mCT.mBackgroundCall.hangupIfAlive();
                        mPhone.mCT.mBackgroundCall.hangupIfAlive();
                        mPhone.mCT.mForegroundCall.hangupIfAlive();
                        mPhone.mCT.mForegroundCall.hangupIfAlive();
                    }
                    }
                    for (int transport : mTransportManager.getAvailableTransports()) {
                    for (int transport : mAccessNetworksManager.getAvailableTransports()) {
                        if (mPhone.getDcTracker(transport) != null) {
                        if (mPhone.getDcTracker(transport) != null) {
                            mPhone.getDcTracker(transport).cleanUpAllConnections(
                            mPhone.getDcTracker(transport).cleanUpAllConnections(
                                    Phone.REASON_RADIO_TURNED_OFF);
                                    Phone.REASON_RADIO_TURNED_OFF);
@@ -5577,7 +5577,7 @@ public class ServiceStateTracker extends Handler {
            }
            }
            // operator info should be kept in SS
            // operator info should be kept in SS
            String operator = mNewSS.getOperatorAlphaLong();
            String operator = mNewSS.getOperatorAlphaLong();
            mNewSS.setOutOfService(mTransportManager.isInLegacyMode(), true);
            mNewSS.setOutOfService(mAccessNetworksManager.isInLegacyMode(), true);
            if (resetIwlanRatVal) {
            if (resetIwlanRatVal) {
                mNewSS.setDataRegState(ServiceState.STATE_IN_SERVICE);
                mNewSS.setDataRegState(ServiceState.STATE_IN_SERVICE);
                NetworkRegistrationInfo nri = new NetworkRegistrationInfo.Builder()
                NetworkRegistrationInfo nri = new NetworkRegistrationInfo.Builder()
@@ -5587,7 +5587,7 @@ public class ServiceStateTracker extends Handler {
                        .setRegistrationState(NetworkRegistrationInfo.REGISTRATION_STATE_HOME)
                        .setRegistrationState(NetworkRegistrationInfo.REGISTRATION_STATE_HOME)
                        .build();
                        .build();
                mNewSS.addNetworkRegistrationInfo(nri);
                mNewSS.addNetworkRegistrationInfo(nri);
                if (mTransportManager.isInLegacyMode()) {
                if (mAccessNetworksManager.isInLegacyMode()) {
                    // If in legacy mode, simulate the behavior that IWLAN registration info
                    // If in legacy mode, simulate the behavior that IWLAN registration info
                    // is reported through WWAN transport.
                    // is reported through WWAN transport.
                    nri = new NetworkRegistrationInfo.Builder()
                    nri = new NetworkRegistrationInfo.Builder()
@@ -5615,7 +5615,7 @@ public class ServiceStateTracker extends Handler {
        // unfortunate limitation we have when the device operates in legacy mode. In AP-assisted
        // unfortunate limitation we have when the device operates in legacy mode. In AP-assisted
        // mode, the WWAN registration will correctly report the actual cellular registration info
        // mode, the WWAN registration will correctly report the actual cellular registration info
        // when the device camps on IWLAN.
        // when the device camps on IWLAN.
        if (mTransportManager.isInLegacyMode()) {
        if (mAccessNetworksManager.isInLegacyMode()) {
            NetworkRegistrationInfo wwanNri = mNewSS.getNetworkRegistrationInfo(
            NetworkRegistrationInfo wwanNri = mNewSS.getNetworkRegistrationInfo(
                    NetworkRegistrationInfo.DOMAIN_PS, AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
                    NetworkRegistrationInfo.DOMAIN_PS, AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
            if (wwanNri != null && wwanNri.getAccessNetworkTechnology()
            if (wwanNri != null && wwanNri.getAccessNetworkTechnology()
+15 −46

File changed.

Preview size limit exceeded, changes collapsed.

+1 −1
Original line number Original line Diff line number Diff line
@@ -175,7 +175,7 @@ public class DataServiceManager extends Handler {
    private void revokePermissionsFromUnusedDataServices() {
    private void revokePermissionsFromUnusedDataServices() {
        // Except the current data services from having their permissions removed.
        // Except the current data services from having their permissions removed.
        Set<String> dataServices = getAllDataServicePackageNames();
        Set<String> dataServices = getAllDataServicePackageNames();
        for (int transportType : mPhone.getTransportManager().getAvailableTransports()) {
        for (int transportType : mPhone.getAccessNetworksManager().getAvailableTransports()) {
            dataServices.remove(getDataServicePackageName(transportType));
            dataServices.remove(getDataServicePackageName(transportType));
        }
        }


Loading