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

Commit 3f9de203 authored by Jack Yu's avatar Jack Yu Committed by Android (Google) Code Review
Browse files

Merge "Added umetered method for data network controller" into tm-dev

parents 4f333f82 be03984d
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -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.
+7 −0
Original line number Diff line number Diff line
@@ -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,
@@ -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();
@@ -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
@@ -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,
@@ -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();
@@ -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