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

Commit cd928cf9 authored by Sarah Chin's avatar Sarah Chin
Browse files

Implement DataConfigManager methods

Test: atest FrameworksTelephonyTests
Bug: 202183044
Change-Id: I64844211cc7e321e14ea9f25c4a2ec79227cf37e
parent 61e6e280
Loading
Loading
Loading
Loading
+518 −74

File changed.

Preview size limit exceeded, changes collapsed.

+15 −24
Original line number Diff line number Diff line
@@ -49,7 +49,6 @@ import android.telephony.LinkCapacityEstimate;
import android.telephony.NetworkRegistrationInfo;
import android.telephony.PreciseDataConnectionState;
import android.telephony.ServiceState;
import android.telephony.TelephonyDisplayInfo;
import android.telephony.TelephonyManager;
import android.telephony.data.ApnSetting;
import android.telephony.data.DataCallResponse;
@@ -415,6 +414,12 @@ public class DataNetwork extends StateMachine {
            this.downlinkBandwidthKbps = downlinkBandwidthKbps;
            this.uplinkBandwidthKbps = uplinkBandwidthKbps;
        }

        @Override
        public String toString() {
            return String.format("NetworkBandwidth=[downlink=%d, uplink=%d]",
                    downlinkBandwidthKbps, uplinkBandwidthKbps);
        }
    }

    /**
@@ -1333,26 +1338,21 @@ public class DataNetwork extends StateMachine {
     *
     * @return The TCP config string used in {@link LinkProperties#setTcpBufferSizes(String)}.
     */
    private @NonNull String getTcpConfig() {
    private @Nullable String getTcpConfig() {
        ServiceState ss = mPhone.getServiceState();
        NetworkRegistrationInfo nrs = ss.getNetworkRegistrationInfo(
                NetworkRegistrationInfo.DOMAIN_PS, mTransport);
        int networkType = TelephonyManager.NETWORK_TYPE_UNKNOWN;
        if (nrs != null) {
            networkType = nrs.getAccessNetworkTechnology();
            if (networkType == TelephonyManager.NETWORK_TYPE_LTE && isNrConnected()) {
                // Use the 5G SA TCP config for 5G NSA.
                networkType = TelephonyManager.NETWORK_TYPE_NR;
            }

            if (networkType == TelephonyManager.NETWORK_TYPE_LTE
                    && nrs.isUsingCarrierAggregation()) {
                // Although LTE_CA is not a real RAT, but since LTE CA gernally has higher speed,
                // so we use a different network type to get a different TCP config for LTE CA.
                // Although LTE_CA is not a real RAT, but since LTE CA generally has higher speed
                // we use LTE_CA to get a different TCP config for LTE CA.
                networkType = TelephonyManager.NETWORK_TYPE_LTE_CA;
            }
        }
        return mDataConfigManager.getTcpConfigString(networkType);
        return mDataConfigManager.getTcpConfigString(networkType, ss);
    }

    /**
@@ -1565,13 +1565,8 @@ public class DataNetwork extends StateMachine {
    private void onBandwidthUpdated(int uplinkBandwidthKbps, int downlinkBandwidthKbps) {
        log("onBandwidthUpdated: downlinkBandwidthKbps=" + downlinkBandwidthKbps
                + ", uplinkBandwidthKbps=" + uplinkBandwidthKbps);
        TelephonyDisplayInfo displayInfo = mPhone.getDisplayInfoController()
                .getTelephonyDisplayInfo();
        NetworkBandwidth bandwidthFromConfig = null;
        if (displayInfo != null) {
            bandwidthFromConfig = mDataConfigManager.getBandwidthForNetworkType(
                    getDataNetworkType(), displayInfo.getOverrideNetworkType());
        }
        NetworkBandwidth bandwidthFromConfig =  mDataConfigManager.getBandwidthForNetworkType(
                getDataNetworkType(), mPhone.getServiceState());

        if (downlinkBandwidthKbps == LinkCapacityEstimate.INVALID && bandwidthFromConfig != null) {
            // Fallback to carrier config.
@@ -1609,14 +1604,10 @@ public class DataNetwork extends StateMachine {
            return;
        }
        log("updateBandwidthFromDataConfig");
        TelephonyDisplayInfo displayInfo = mPhone.getDisplayInfoController()
                .getTelephonyDisplayInfo();
        if (displayInfo != null) {
        mNetworkBandwidth = mDataConfigManager.getBandwidthForNetworkType(
                    getDataNetworkType(), displayInfo.getOverrideNetworkType());
                getDataNetworkType(), mPhone.getServiceState());
        updateNetworkCapabilities();
    }
    }

    /**
     * @return The unique context id assigned by the data service in
+3 −6
Original line number Diff line number Diff line
@@ -89,6 +89,7 @@ import com.android.internal.telephony.RIL;
import com.android.internal.telephony.RILConstants;
import com.android.internal.telephony.RetryManager;
import com.android.internal.telephony.TelephonyStatsLog;
import com.android.internal.telephony.data.DataConfigManager;
import com.android.internal.telephony.dataconnection.DcTracker.ReleaseNetworkType;
import com.android.internal.telephony.dataconnection.DcTracker.RequestNetworkType;
import com.android.internal.telephony.metrics.DataCallSessionStats;
@@ -1567,12 +1568,8 @@ public class DataConnection extends StateMachine {
    }

    private void updateLinkBandwidthsFromCarrierConfig(int rilRat) {
        String ratName = ServiceState.rilRadioTechnologyToString(rilRat);
        if (rilRat == ServiceState.RIL_RADIO_TECHNOLOGY_LTE && isNRConnected()) {
            ratName = mPhone.getServiceState().getNrFrequencyRange()
                    == ServiceState.FREQUENCY_RANGE_MMWAVE
                    ? DctConstants.RAT_NAME_NR_NSA_MMWAVE : DctConstants.RAT_NAME_NR_NSA;
        }
        String ratName = DataConfigManager.getDataConfigNetworkType(
                ServiceState.rilRadioTechnologyToNetworkType(rilRat), mPhone.getServiceState());

        if (DBG) log("updateLinkBandwidthsFromCarrierConfig: " + ratName);

+12 −8
Original line number Diff line number Diff line
@@ -118,6 +118,7 @@ import com.android.internal.telephony.RILConstants;
import com.android.internal.telephony.RetryManager;
import com.android.internal.telephony.SettingsObserver;
import com.android.internal.telephony.SubscriptionInfoUpdater;
import com.android.internal.telephony.data.DataConfigManager;
import com.android.internal.telephony.dataconnection.DataConnectionReasons.DataAllowedReasonType;
import com.android.internal.telephony.dataconnection.DataConnectionReasons.DataDisallowedReasonType;
import com.android.internal.telephony.dataconnection.DataEnabledSettings.DataEnabledChangedReason;
@@ -4300,15 +4301,18 @@ public class DcTracker extends Handler {
            }
        }
        if (useLte) {
            Pair<Integer, Integer> ltePair = temp.get(DctConstants.RAT_NAME_LTE);
            Pair<Integer, Integer> ltePair =
                    temp.get(DataConfigManager.DATA_CONFIG_NETWORK_TYPE_LTE);
            if (ltePair != null) {
                if (temp.containsKey(DctConstants.RAT_NAME_NR_NSA)) {
                    temp.put(DctConstants.RAT_NAME_NR_NSA, new Pair<>(
                            temp.get(DctConstants.RAT_NAME_NR_NSA).first, ltePair.second));
                if (temp.containsKey(DataConfigManager.DATA_CONFIG_NETWORK_TYPE_NR_NSA)) {
                    temp.put(DataConfigManager.DATA_CONFIG_NETWORK_TYPE_NR_NSA, new Pair<>(
                            temp.get(DataConfigManager.DATA_CONFIG_NETWORK_TYPE_NR_NSA).first,
                            ltePair.second));
                }
                if (temp.containsKey(DctConstants.RAT_NAME_NR_NSA_MMWAVE)) {
                    temp.put(DctConstants.RAT_NAME_NR_NSA_MMWAVE, new Pair<>(
                            temp.get(DctConstants.RAT_NAME_NR_NSA_MMWAVE).first, ltePair.second));
                if (temp.containsKey(DataConfigManager.DATA_CONFIG_NETWORK_TYPE_NR_NSA_MMWAVE)) {
                    temp.put(DataConfigManager.DATA_CONFIG_NETWORK_TYPE_NR_NSA_MMWAVE, new Pair<>(
                            temp.get(DataConfigManager.DATA_CONFIG_NETWORK_TYPE_NR_NSA_MMWAVE)
                                    .first, ltePair.second));
                }
            }
        }
@@ -5584,7 +5588,7 @@ public class DcTracker extends Handler {
                    bandwidths = b.getStringArray(CarrierConfigManager.KEY_BANDWIDTH_STRING_ARRAY);
                }
                useLte = b.getBoolean(CarrierConfigManager
                        .KEY_BANDWIDTH_NR_NSA_USE_LTE_VALUE_FOR_UPSTREAM_BOOL);
                        .KEY_BANDWIDTH_NR_NSA_USE_LTE_VALUE_FOR_UPLINK_BOOL);
                mWatchdogTimeMs = b.getLong(CarrierConfigManager.KEY_5G_WATCHDOG_TIME_MS_LONG);
                mNrNsaAllUnmetered = b.getBoolean(CarrierConfigManager.KEY_UNMETERED_NR_NSA_BOOL);
                mNrNsaMmwaveUnmetered = b.getBoolean(