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

Commit 7514e211 authored by Jack Yu's avatar Jack Yu
Browse files

Support isDataAllow correctly

Migrated isDataAllow logic to the new data stack.

Fix: 227244255
Test: atest FrameworksTelephonyTests
Change-Id: I4c6323b5f250d74c29a767583da2673405224157
parent d3f3058c
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -1209,6 +1209,21 @@ public class DataNetworkController extends Handler {
        return !evaluation.containsDisallowedReasons();
    }

    /**
     * @return List of the reasons why internet data is not allowed. An empty list if internet
     * is allowed.
     */
    public @NonNull List<DataDisallowedReason> getInternetDataDisallowedReasons() {
        TelephonyNetworkRequest internetRequest = new TelephonyNetworkRequest(
                new NetworkRequest.Builder()
                        .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
                        .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
                        .build(), mPhone);
        DataEvaluation evaluation = evaluateNetworkRequest(internetRequest,
                DataEvaluationReason.EXTERNAL_QUERY);
        return evaluation.getDataDisallowedReasons();
    }

    /**
     * Evaluate a network request. The goal is to find a suitable {@link DataProfile} that can be
     * used to setup the data network.
+15 −0
Original line number Diff line number Diff line
@@ -97,6 +97,7 @@ import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneConstants;
import com.android.internal.telephony.TelephonyTest;
import com.android.internal.telephony.data.AccessNetworksManager.AccessNetworksManagerCallback;
import com.android.internal.telephony.data.DataEvaluation.DataDisallowedReason;
import com.android.internal.telephony.data.DataNetworkController.HandoverRule;
import com.android.internal.telephony.data.DataRetryManager.DataRetryManagerCallback;
import com.android.internal.telephony.ims.ImsResolver;
@@ -2079,4 +2080,18 @@ public class DataNetworkControllerTest extends TelephonyTest {
                any(DataProfile.class), anyBoolean(), anyBoolean(), anyInt(), any(), anyInt(),
                any(), any(), anyBoolean(), any(Message.class));
    }

    @Test
    public void testGetInternetDataDisallowedReasons() {
        List<DataDisallowedReason> reasons = mDataNetworkControllerUT
                .getInternetDataDisallowedReasons();
        assertThat(reasons).isEmpty();

        serviceStateChanged(TelephonyManager.NETWORK_TYPE_UNKNOWN,
                NetworkRegistrationInfo.REGISTRATION_STATE_NOT_REGISTERED_OR_SEARCHING);

        reasons = mDataNetworkControllerUT.getInternetDataDisallowedReasons();
        assertThat(reasons).containsExactly(DataDisallowedReason.NOT_IN_SERVICE,
                DataDisallowedReason.NO_SUITABLE_DATA_PROFILE);
    }
}