Loading src/java/com/android/internal/telephony/data/DataConfigManager.java +14 −0 Original line number Diff line number Diff line Loading @@ -1271,6 +1271,20 @@ public class DataConfigManager extends Handler { } } /** * @return The unsupported network capabilities. The unsupported capabilities will be removed * from the default network capabilities that {@link TelephonyNetworkProvider} use to inform * connectivity service what network capabilities are supported by telephony. */ @NonNull @NetCapability public Set<Integer> getUnsupportedNetworkCapabilities() { return Arrays.stream(mResources.getStringArray(com.android.internal.R.array .config_unsupported_network_capabilities)) .map(DataUtils::getNetworkCapabilityFromString) .collect(Collectors.toSet()); } /** Update handover rules from carrier config. */ private void updateHandoverRules() { synchronized (this) { Loading src/java/com/android/internal/telephony/data/TelephonyNetworkProvider.java +3 −1 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.telephony.SubscriptionManager; import android.util.ArrayMap; import android.util.LocalLog; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.telephony.Phone; import com.android.internal.telephony.PhoneFactory; import com.android.internal.telephony.data.PhoneSwitcher.PhoneSwitcherCallback; Loading Loading @@ -233,8 +234,9 @@ public class TelephonyNetworkProvider extends NetworkProvider implements Network /** * @return The maximal network capabilities that telephony can support. */ @VisibleForTesting @NonNull private NetworkCapabilities makeNetworkFilter() { public NetworkCapabilities makeNetworkFilter() { final NetworkCapabilities.Builder builder = new NetworkCapabilities.Builder() .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR) .addCapability(NetworkCapabilities.NET_CAPABILITY_IA) Loading src/java/com/android/internal/telephony/data/TelephonyNetworkRequest.java +7 −1 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.telephony.data.TrafficDescriptor; import android.telephony.data.TrafficDescriptor.OsAppId; import com.android.internal.telephony.Phone; import com.android.internal.telephony.PhoneFactory; import com.android.internal.telephony.flags.FeatureFlags; import java.lang.annotation.Retention; Loading @@ -41,6 +42,7 @@ import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.Set; import java.util.stream.Collectors; /** Loading Loading @@ -437,7 +439,11 @@ public class TelephonyNetworkRequest { @NonNull @NetCapability public static List<Integer> getAllSupportedNetworkCapabilities() { return CAPABILITY_ATTRIBUTE_MAP.keySet().stream().toList(); Set<Integer> unsupportedCaps = PhoneFactory.getDefaultPhone() .getDataNetworkController().getDataConfigManager() .getUnsupportedNetworkCapabilities(); return CAPABILITY_ATTRIBUTE_MAP.keySet().stream() .filter(cap -> !unsupportedCaps.contains(cap)).toList(); } /** Loading tests/telephonytests/src/com/android/internal/telephony/data/TelephonyNetworkProviderTest.java +21 −0 Original line number Diff line number Diff line Loading @@ -391,4 +391,25 @@ public class TelephonyNetworkProviderTest extends TelephonyTest { verifyRequestReleasedOnPhone(1, request); verifyRequestSentOnPhone(0, request); } @Test public void testMakeNetworkFilter() { doReturn(Set.of(NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_BANDWIDTH, NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_LATENCY, NetworkCapabilities.NET_CAPABILITY_VSIM, NetworkCapabilities.NET_CAPABILITY_MMS, NetworkCapabilities.NET_CAPABILITY_XCAP)).when(mDataConfigManager) .getUnsupportedNetworkCapabilities(); NetworkCapabilities caps = mTelephonyNetworkProvider.makeNetworkFilter(); assertThat(caps.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)).isTrue(); assertThat(caps.hasCapability(NetworkCapabilities.NET_CAPABILITY_FOTA)).isTrue(); assertThat(caps.hasCapability(NetworkCapabilities.NET_CAPABILITY_IA)).isTrue(); assertThat(caps.hasCapability(NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_BANDWIDTH)) .isFalse(); assertThat(caps.hasCapability(NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_LATENCY)) .isFalse(); assertThat(caps.hasCapability(NetworkCapabilities.NET_CAPABILITY_VSIM)).isFalse(); assertThat(caps.hasCapability(NetworkCapabilities.NET_CAPABILITY_MMS)).isFalse(); assertThat(caps.hasCapability(NetworkCapabilities.NET_CAPABILITY_XCAP)).isFalse(); } } tests/telephonytests/src/com/android/internal/telephony/data/TelephonyNetworkRequestTest.java +24 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,9 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; import java.util.List; import java.util.Set; public class TelephonyNetworkRequestTest extends TelephonyTest { private static final ApnSetting INTERNET_APN_SETTING = new ApnSetting.Builder() Loading Loading @@ -487,4 +490,25 @@ public class TelephonyNetworkRequestTest extends TelephonyTest { assertThat(cellularRequest.canBeSatisfiedBy(cellularInternetDataProfile)).isTrue(); assertThat(generalRequest.canBeSatisfiedBy(cellularInternetDataProfile)).isTrue(); } @Test public void testGetAllSupportedNetworkCapabilities() { doReturn(Set.of(NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_BANDWIDTH, NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_LATENCY, NetworkCapabilities.NET_CAPABILITY_VSIM, NetworkCapabilities.NET_CAPABILITY_MMS, NetworkCapabilities.NET_CAPABILITY_XCAP)).when(mDataConfigManager) .getUnsupportedNetworkCapabilities(); List<Integer> caps = TelephonyNetworkRequest.getAllSupportedNetworkCapabilities(); assertThat(caps).contains(NetworkCapabilities.NET_CAPABILITY_INTERNET); assertThat(caps).contains(NetworkCapabilities.NET_CAPABILITY_FOTA); assertThat(caps).contains(NetworkCapabilities.NET_CAPABILITY_SUPL); assertThat(caps).contains(NetworkCapabilities.NET_CAPABILITY_CBS); assertThat(caps).contains(NetworkCapabilities.NET_CAPABILITY_RCS); assertThat(caps).doesNotContain(NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_BANDWIDTH); assertThat(caps).doesNotContain(NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_LATENCY); assertThat(caps).doesNotContain(NetworkCapabilities.NET_CAPABILITY_VSIM); assertThat(caps).doesNotContain(NetworkCapabilities.NET_CAPABILITY_MMS); assertThat(caps).doesNotContain(NetworkCapabilities.NET_CAPABILITY_XCAP); } } Loading
src/java/com/android/internal/telephony/data/DataConfigManager.java +14 −0 Original line number Diff line number Diff line Loading @@ -1271,6 +1271,20 @@ public class DataConfigManager extends Handler { } } /** * @return The unsupported network capabilities. The unsupported capabilities will be removed * from the default network capabilities that {@link TelephonyNetworkProvider} use to inform * connectivity service what network capabilities are supported by telephony. */ @NonNull @NetCapability public Set<Integer> getUnsupportedNetworkCapabilities() { return Arrays.stream(mResources.getStringArray(com.android.internal.R.array .config_unsupported_network_capabilities)) .map(DataUtils::getNetworkCapabilityFromString) .collect(Collectors.toSet()); } /** Update handover rules from carrier config. */ private void updateHandoverRules() { synchronized (this) { Loading
src/java/com/android/internal/telephony/data/TelephonyNetworkProvider.java +3 −1 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.telephony.SubscriptionManager; import android.util.ArrayMap; import android.util.LocalLog; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.telephony.Phone; import com.android.internal.telephony.PhoneFactory; import com.android.internal.telephony.data.PhoneSwitcher.PhoneSwitcherCallback; Loading Loading @@ -233,8 +234,9 @@ public class TelephonyNetworkProvider extends NetworkProvider implements Network /** * @return The maximal network capabilities that telephony can support. */ @VisibleForTesting @NonNull private NetworkCapabilities makeNetworkFilter() { public NetworkCapabilities makeNetworkFilter() { final NetworkCapabilities.Builder builder = new NetworkCapabilities.Builder() .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR) .addCapability(NetworkCapabilities.NET_CAPABILITY_IA) Loading
src/java/com/android/internal/telephony/data/TelephonyNetworkRequest.java +7 −1 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.telephony.data.TrafficDescriptor; import android.telephony.data.TrafficDescriptor.OsAppId; import com.android.internal.telephony.Phone; import com.android.internal.telephony.PhoneFactory; import com.android.internal.telephony.flags.FeatureFlags; import java.lang.annotation.Retention; Loading @@ -41,6 +42,7 @@ import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.Set; import java.util.stream.Collectors; /** Loading Loading @@ -437,7 +439,11 @@ public class TelephonyNetworkRequest { @NonNull @NetCapability public static List<Integer> getAllSupportedNetworkCapabilities() { return CAPABILITY_ATTRIBUTE_MAP.keySet().stream().toList(); Set<Integer> unsupportedCaps = PhoneFactory.getDefaultPhone() .getDataNetworkController().getDataConfigManager() .getUnsupportedNetworkCapabilities(); return CAPABILITY_ATTRIBUTE_MAP.keySet().stream() .filter(cap -> !unsupportedCaps.contains(cap)).toList(); } /** Loading
tests/telephonytests/src/com/android/internal/telephony/data/TelephonyNetworkProviderTest.java +21 −0 Original line number Diff line number Diff line Loading @@ -391,4 +391,25 @@ public class TelephonyNetworkProviderTest extends TelephonyTest { verifyRequestReleasedOnPhone(1, request); verifyRequestSentOnPhone(0, request); } @Test public void testMakeNetworkFilter() { doReturn(Set.of(NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_BANDWIDTH, NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_LATENCY, NetworkCapabilities.NET_CAPABILITY_VSIM, NetworkCapabilities.NET_CAPABILITY_MMS, NetworkCapabilities.NET_CAPABILITY_XCAP)).when(mDataConfigManager) .getUnsupportedNetworkCapabilities(); NetworkCapabilities caps = mTelephonyNetworkProvider.makeNetworkFilter(); assertThat(caps.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)).isTrue(); assertThat(caps.hasCapability(NetworkCapabilities.NET_CAPABILITY_FOTA)).isTrue(); assertThat(caps.hasCapability(NetworkCapabilities.NET_CAPABILITY_IA)).isTrue(); assertThat(caps.hasCapability(NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_BANDWIDTH)) .isFalse(); assertThat(caps.hasCapability(NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_LATENCY)) .isFalse(); assertThat(caps.hasCapability(NetworkCapabilities.NET_CAPABILITY_VSIM)).isFalse(); assertThat(caps.hasCapability(NetworkCapabilities.NET_CAPABILITY_MMS)).isFalse(); assertThat(caps.hasCapability(NetworkCapabilities.NET_CAPABILITY_XCAP)).isFalse(); } }
tests/telephonytests/src/com/android/internal/telephony/data/TelephonyNetworkRequestTest.java +24 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,9 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; import java.util.List; import java.util.Set; public class TelephonyNetworkRequestTest extends TelephonyTest { private static final ApnSetting INTERNET_APN_SETTING = new ApnSetting.Builder() Loading Loading @@ -487,4 +490,25 @@ public class TelephonyNetworkRequestTest extends TelephonyTest { assertThat(cellularRequest.canBeSatisfiedBy(cellularInternetDataProfile)).isTrue(); assertThat(generalRequest.canBeSatisfiedBy(cellularInternetDataProfile)).isTrue(); } @Test public void testGetAllSupportedNetworkCapabilities() { doReturn(Set.of(NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_BANDWIDTH, NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_LATENCY, NetworkCapabilities.NET_CAPABILITY_VSIM, NetworkCapabilities.NET_CAPABILITY_MMS, NetworkCapabilities.NET_CAPABILITY_XCAP)).when(mDataConfigManager) .getUnsupportedNetworkCapabilities(); List<Integer> caps = TelephonyNetworkRequest.getAllSupportedNetworkCapabilities(); assertThat(caps).contains(NetworkCapabilities.NET_CAPABILITY_INTERNET); assertThat(caps).contains(NetworkCapabilities.NET_CAPABILITY_FOTA); assertThat(caps).contains(NetworkCapabilities.NET_CAPABILITY_SUPL); assertThat(caps).contains(NetworkCapabilities.NET_CAPABILITY_CBS); assertThat(caps).contains(NetworkCapabilities.NET_CAPABILITY_RCS); assertThat(caps).doesNotContain(NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_BANDWIDTH); assertThat(caps).doesNotContain(NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_LATENCY); assertThat(caps).doesNotContain(NetworkCapabilities.NET_CAPABILITY_VSIM); assertThat(caps).doesNotContain(NetworkCapabilities.NET_CAPABILITY_MMS); assertThat(caps).doesNotContain(NetworkCapabilities.NET_CAPABILITY_XCAP); } }