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

Commit 681580a0 authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 11019292 from c7b2a23e to 24Q1-release

Change-Id: Ie94f0bd17792a27290e605a646bfb1f40c647462
parents 3879c434 c7b2a23e
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -20,3 +20,10 @@ flag {
  description: "Allow bring up MMTEL in nonVops area specified by carrier config."
  bug: "241198464"
}

flag {
  name: "metered_embb_urlcc"
  namespace: "telephony"
  description: "Force networks that have PRIORITIZE_BANDWIDTH or PRIORITIZE_LATENCY to be metered."
  bug: "301310451"
}
+12 −2
Original line number Diff line number Diff line
@@ -598,10 +598,20 @@ public class DataConfigManager extends Handler {
     */
    public @NonNull @NetCapability Set<Integer> getMeteredNetworkCapabilities(boolean isRoaming) {
        Set<Integer> meteredApnTypes = isRoaming ? mRoamingMeteredApnTypes : mMeteredApnTypes;
        return meteredApnTypes.stream()
        Set<Integer> meteredCapabilities = meteredApnTypes.stream()
                .map(DataUtils::apnTypeToNetworkCapability)
                .filter(cap -> cap >= 0)
                .collect(Collectors.toUnmodifiableSet());
                .collect(Collectors.toSet());

        // Consumer slices are the slices that are allowed to be accessed by regular application to
        // get better performance. They should be metered. This can be turned into configurations in
        // the future.
        if (mFeatureFlags.meteredEmbbUrlcc()) {
            meteredCapabilities.add(NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_BANDWIDTH);
            meteredCapabilities.add(NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_LATENCY);
        }

        return Collections.unmodifiableSet(meteredCapabilities);
    }

    /**
+22 −4
Original line number Diff line number Diff line
@@ -18,18 +18,17 @@ package com.android.internal.telephony.data;

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import android.net.NetworkCapabilities;
import android.os.Looper;
import android.os.PersistableBundle;
import android.telephony.CarrierConfigManager;
import android.telephony.SignalStrength;
import android.telephony.TelephonyDisplayInfo;
import android.telephony.TelephonyManager;
import android.telephony.data.ApnSetting;
import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper;

@@ -51,7 +50,6 @@ public class DataConfigManagerTest extends TelephonyTest {
        logd("DataConfigManagerTest +Setup!");
        super.setUp(getClass().getSimpleName());
        mBundle = mContextFixture.getCarrierConfigBundle();
        when(mCarrierConfigManager.getConfigForSubId(anyInt(), any())).thenReturn(mBundle);
        mDataConfigManagerUT = new DataConfigManager(mPhone, Looper.myLooper(), mFeatureFlags);
        logd("DataConfigManagerTest -Setup!");
    }
@@ -145,4 +143,24 @@ public class DataConfigManagerTest extends TelephonyTest {
                signalStrength))
                .isEqualTo(0/*OUT_OF_SERVICE_AUTO_DATA_SWITCH_SCORE*/);
    }

    @Test
    public void testMeteredNetworkCapabilities() {
        doReturn(true).when(mFeatureFlags).meteredEmbbUrlcc();
        mBundle.putStringArray(CarrierConfigManager.KEY_CARRIER_METERED_APN_TYPES_STRINGS,
                new String[] {ApnSetting.TYPE_MMS_STRING, ApnSetting.TYPE_DEFAULT_STRING});
        mBundle.putStringArray(CarrierConfigManager.KEY_CARRIER_METERED_ROAMING_APN_TYPES_STRINGS,
                new String[] {ApnSetting.TYPE_SUPL_STRING, ApnSetting.TYPE_MCX_STRING});
        mDataConfigManagerUT.sendEmptyMessage(1/*EVENT_CARRIER_CONFIG_CHANGED*/);
        processAllMessages();

        assertThat(mDataConfigManagerUT.getMeteredNetworkCapabilities(false)).containsExactly(
                NetworkCapabilities.NET_CAPABILITY_MMS, NetworkCapabilities.NET_CAPABILITY_INTERNET,
                NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_BANDWIDTH,
                NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_LATENCY);
        assertThat(mDataConfigManagerUT.getMeteredNetworkCapabilities(true)).containsExactly(
                NetworkCapabilities.NET_CAPABILITY_SUPL, NetworkCapabilities.NET_CAPABILITY_MCX,
                NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_BANDWIDTH,
                NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_LATENCY);
    }
}