Loading src/java/com/android/internal/telephony/data/DataNetworkController.java +13 −0 Original line number Diff line number Diff line Loading @@ -1318,6 +1318,19 @@ public class DataNetworkController extends Handler { return !evaluation.containsDisallowedReasons(); } /** * @return {@code true} internet is unmetered. */ public boolean isInternetUnmetered() { return mDataNetworkList.stream() .filter(dataNetwork -> !dataNetwork.isConnecting() && !dataNetwork.isDisconnected()) .filter(DataNetwork::isInternetSupported) .allMatch(dataNetwork -> dataNetwork.getNetworkCapabilities() .hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED) || dataNetwork.getNetworkCapabilities() .hasCapability(NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED)); } /** * @return List of the reasons why internet data is not allowed. An empty list if internet * is allowed. Loading tests/telephonytests/src/com/android/internal/telephony/data/DataNetworkControllerTest.java +7 −0 Original line number Diff line number Diff line Loading @@ -1455,6 +1455,7 @@ public class DataNetworkControllerTest extends TelephonyTest { mDataNetworkControllerUT.getUnmeteredOverrideNetworkTypes()); assertFalse(dataNetwork.getNetworkCapabilities().hasCapability( NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED)); assertThat(mDataNetworkControllerUT.isInternetUnmetered()).isFalse(); // Change data network type to NR serviceStateChanged(TelephonyManager.NETWORK_TYPE_NR, Loading @@ -1463,6 +1464,7 @@ public class DataNetworkControllerTest extends TelephonyTest { processAllMessages(); assertTrue(dataNetwork.getNetworkCapabilities().hasCapability( NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED)); assertThat(mDataNetworkControllerUT.isInternetUnmetered()).isTrue(); // Set all network types metered unmeteredNetworkTypes.clear(); Loading @@ -1474,6 +1476,7 @@ public class DataNetworkControllerTest extends TelephonyTest { assertTrue(mDataNetworkControllerUT.getUnmeteredOverrideNetworkTypes().isEmpty()); assertFalse(dataNetwork.getNetworkCapabilities().hasCapability( NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED)); assertThat(mDataNetworkControllerUT.isInternetUnmetered()).isFalse(); } @Test Loading Loading @@ -1506,6 +1509,8 @@ public class DataNetworkControllerTest extends TelephonyTest { assertEquals(subscriptionPlans, mDataNetworkControllerUT.getSubscriptionPlans()); assertFalse(dataNetwork.getNetworkCapabilities().hasCapability( NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED)); assertThat(mDataNetworkControllerUT.isInternetUnmetered()).isFalse(); // Change data network type to NR serviceStateChanged(TelephonyManager.NETWORK_TYPE_NR, Loading @@ -1514,6 +1519,7 @@ public class DataNetworkControllerTest extends TelephonyTest { processAllMessages(); assertTrue(dataNetwork.getNetworkCapabilities().hasCapability( NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED)); assertThat(mDataNetworkControllerUT.isInternetUnmetered()).isTrue(); // Set all network types metered subscriptionPlans.clear(); Loading @@ -1524,6 +1530,7 @@ public class DataNetworkControllerTest extends TelephonyTest { assertTrue(mDataNetworkControllerUT.getSubscriptionPlans().isEmpty()); assertFalse(dataNetwork.getNetworkCapabilities().hasCapability( NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED)); assertThat(mDataNetworkControllerUT.isInternetUnmetered()).isFalse(); } @Test Loading Loading
src/java/com/android/internal/telephony/data/DataNetworkController.java +13 −0 Original line number Diff line number Diff line Loading @@ -1318,6 +1318,19 @@ public class DataNetworkController extends Handler { return !evaluation.containsDisallowedReasons(); } /** * @return {@code true} internet is unmetered. */ public boolean isInternetUnmetered() { return mDataNetworkList.stream() .filter(dataNetwork -> !dataNetwork.isConnecting() && !dataNetwork.isDisconnected()) .filter(DataNetwork::isInternetSupported) .allMatch(dataNetwork -> dataNetwork.getNetworkCapabilities() .hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED) || dataNetwork.getNetworkCapabilities() .hasCapability(NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED)); } /** * @return List of the reasons why internet data is not allowed. An empty list if internet * is allowed. Loading
tests/telephonytests/src/com/android/internal/telephony/data/DataNetworkControllerTest.java +7 −0 Original line number Diff line number Diff line Loading @@ -1455,6 +1455,7 @@ public class DataNetworkControllerTest extends TelephonyTest { mDataNetworkControllerUT.getUnmeteredOverrideNetworkTypes()); assertFalse(dataNetwork.getNetworkCapabilities().hasCapability( NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED)); assertThat(mDataNetworkControllerUT.isInternetUnmetered()).isFalse(); // Change data network type to NR serviceStateChanged(TelephonyManager.NETWORK_TYPE_NR, Loading @@ -1463,6 +1464,7 @@ public class DataNetworkControllerTest extends TelephonyTest { processAllMessages(); assertTrue(dataNetwork.getNetworkCapabilities().hasCapability( NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED)); assertThat(mDataNetworkControllerUT.isInternetUnmetered()).isTrue(); // Set all network types metered unmeteredNetworkTypes.clear(); Loading @@ -1474,6 +1476,7 @@ public class DataNetworkControllerTest extends TelephonyTest { assertTrue(mDataNetworkControllerUT.getUnmeteredOverrideNetworkTypes().isEmpty()); assertFalse(dataNetwork.getNetworkCapabilities().hasCapability( NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED)); assertThat(mDataNetworkControllerUT.isInternetUnmetered()).isFalse(); } @Test Loading Loading @@ -1506,6 +1509,8 @@ public class DataNetworkControllerTest extends TelephonyTest { assertEquals(subscriptionPlans, mDataNetworkControllerUT.getSubscriptionPlans()); assertFalse(dataNetwork.getNetworkCapabilities().hasCapability( NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED)); assertThat(mDataNetworkControllerUT.isInternetUnmetered()).isFalse(); // Change data network type to NR serviceStateChanged(TelephonyManager.NETWORK_TYPE_NR, Loading @@ -1514,6 +1519,7 @@ public class DataNetworkControllerTest extends TelephonyTest { processAllMessages(); assertTrue(dataNetwork.getNetworkCapabilities().hasCapability( NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED)); assertThat(mDataNetworkControllerUT.isInternetUnmetered()).isTrue(); // Set all network types metered subscriptionPlans.clear(); Loading @@ -1524,6 +1530,7 @@ public class DataNetworkControllerTest extends TelephonyTest { assertTrue(mDataNetworkControllerUT.getSubscriptionPlans().isEmpty()); assertFalse(dataNetwork.getNetworkCapabilities().hasCapability( NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED)); assertThat(mDataNetworkControllerUT.isInternetUnmetered()).isFalse(); } @Test Loading