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

Commit 326f7107 authored by Willy Hu's avatar Willy Hu Committed by Android (Google) Code Review
Browse files

Merge "Add flag in isInternetDataAllowed() function" into main

parents d60d3c88 c0ceeb4b
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -90,3 +90,10 @@ flag {
  description: "Collect vonr status in voice call metric"
  bug:"288449751"
}

flag {
  name: "ignore_existing_networks_for_internet_allowed_checking"
  namespace: "telephony"
  description: "Ignore existing networks when checking if internet is allowed"
  bug: "284420611"
}
+1 −1
Original line number Diff line number Diff line
@@ -3749,7 +3749,7 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
     * @return {@code true} if internet data is allowed to be established.
     */
    public boolean isDataAllowed() {
        return getDataNetworkController().isInternetDataAllowed();
        return getDataNetworkController().isInternetDataAllowed(false/* ignoreExistingNetworks */);
    }

    /**
+9 −5
Original line number Diff line number Diff line
@@ -1408,21 +1408,25 @@ public class DataNetworkController extends Handler {
    /**
     * Evaluate if telephony frameworks would allow data setup for internet in current environment.
     *
     * @param ignoreExistingNetworks {@code true} to skip the existing network check.
     * @return {@code true} if the environment is allowed for internet data. {@code false} if not
     * allowed. For example, if SIM is absent, or airplane mode is on, then data is NOT allowed.
     * This API does not reflect the currently internet data network status. It's possible there is
     * no internet data due to weak cellular signal or network side issue, but internet data is
     * still allowed in this case.
     */
    public boolean isInternetDataAllowed() {
    public boolean isInternetDataAllowed(boolean ignoreExistingNetworks) {
        TelephonyNetworkRequest internetRequest = new TelephonyNetworkRequest(
                new NetworkRequest.Builder()
                        .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
                        .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
                        .build(), mPhone);
        // If one of the existing networks can satisfy the internet request, then internet is
        // allowed.
        if (mDataNetworkList.stream().anyMatch(dataNetwork -> internetRequest.canBeSatisfiedBy(
        // If we don't skip checking existing network, then we should check If one of the
        // existing networks can satisfy the internet request, then internet is allowed.
        if ((!mFeatureFlags.ignoreExistingNetworksForInternetAllowedChecking()
                || !ignoreExistingNetworks)
                && mDataNetworkList.stream().anyMatch(
                        dataNetwork -> internetRequest.canBeSatisfiedBy(
                                dataNetwork.getNetworkCapabilities()))) {
            return true;
        }
+1 −1
Original line number Diff line number Diff line
@@ -781,7 +781,7 @@ public class DataStallRecoveryManager extends Handler {
            return false;
        }

        if (!mDataNetworkController.isInternetDataAllowed()) {
        if (!mDataNetworkController.isInternetDataAllowed(true/* ignoreExistingNetworks */)) {
            logl("skip data stall recovery as data not allowed.");
            return false;
        }
+2 −2
Original line number Diff line number Diff line
@@ -107,7 +107,7 @@ public class DataStallRecoveryManagerTest extends TelephonyTest {
        doReturn(dataStallRecoveryStepsArray)
                .when(mDataConfigManager)
                .getDataStallRecoveryShouldSkipArray();
        doReturn(true).when(mDataNetworkController).isInternetDataAllowed();
        doReturn(true).when(mDataNetworkController).isInternetDataAllowed(true);

        doAnswer(invocation -> {
            ((Runnable) invocation.getArguments()[0]).run();
@@ -347,7 +347,7 @@ public class DataStallRecoveryManagerTest extends TelephonyTest {
        mDataStallRecoveryManager.setRecoveryAction(1);
        doReturn(mSignalStrength).when(mPhone).getSignalStrength();
        doReturn(PhoneConstants.State.IDLE).when(mPhone).getState();
        doReturn(false).when(mDataNetworkController).isInternetDataAllowed();
        doReturn(false).when(mDataNetworkController).isInternetDataAllowed(true);

        logd("Sending validation failed callback");
        sendValidationStatusCallback(NetworkAgent.VALIDATION_STATUS_NOT_VALID);