Loading src/java/com/android/internal/telephony/data/DataNetworkController.java +15 −0 Original line number Diff line number Diff line Loading @@ -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. Loading tests/telephonytests/src/com/android/internal/telephony/data/DataNetworkControllerTest.java +15 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } } Loading
src/java/com/android/internal/telephony/data/DataNetworkController.java +15 −0 Original line number Diff line number Diff line Loading @@ -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. Loading
tests/telephonytests/src/com/android/internal/telephony/data/DataNetworkControllerTest.java +15 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } }