return null;
}
+ private int inferLegacyTypeForNetworkCapabilities(NetworkCapabilities netCap) {
+ if (netCap == null) {
+ return TYPE_NONE;
+ }
+ if (!netCap.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) {
+ return TYPE_NONE;
+ }
+ if (netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_CBS)) {
+ if (netCap.equals(networkCapabilitiesForFeature(TYPE_MOBILE, "enableCBS"))) {
+ return TYPE_MOBILE_CBS;
+ } else {
+ return TYPE_NONE;
+ }
+ }
+ if (netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_IMS)) {
+ if (netCap.equals(networkCapabilitiesForFeature(TYPE_MOBILE, "enableIMS"))) {
+ return TYPE_MOBILE_IMS;
+ } else {
+ return TYPE_NONE;
+ }
+ }
+ if (netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_FOTA)) {
+ if (netCap.equals(networkCapabilitiesForFeature(TYPE_MOBILE, "enableFOTA"))) {
+ return TYPE_MOBILE_FOTA;
+ } else {
+ return TYPE_NONE;
+ }
+ }
+ if (netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_DUN)) {
+ if (netCap.equals(networkCapabilitiesForFeature(TYPE_MOBILE, "enableDUN"))) {
+ return TYPE_MOBILE_DUN;
+ } else {
+ return TYPE_NONE;
+ }
+ }
+ if (netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_SUPL)) {
+ if (netCap.equals(networkCapabilitiesForFeature(TYPE_MOBILE, "enableSUPL"))) {
+ return TYPE_MOBILE_SUPL;
+ } else {
+ return TYPE_NONE;
+ }
+ }
+ if (netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_MMS)) {
+ if (netCap.equals(networkCapabilitiesForFeature(TYPE_MOBILE, "enableMMS"))) {
+ return TYPE_MOBILE_MMS;
+ } else {
+ return TYPE_NONE;
+ }
+ }
+ if (netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)) {
+ if (netCap.equals(networkCapabilitiesForFeature(TYPE_MOBILE, "enableHIPRI"))) {
+ return TYPE_MOBILE_HIPRI;
+ } else {
+ return TYPE_NONE;
+ }
+ }
+ return TYPE_NONE;
+ }
+
private int legacyTypeForNetworkCapabilities(NetworkCapabilities netCap) {
if (netCap == null) return TYPE_NONE;
if (netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_CBS)) {
/**
* Report a problem network to the framework. This provides a hint to the system
- * that there might be connectivity problems on this network and may cause
+ * that there might be connectivity problems on this network and may cause
* the framework to re-evaluate network connectivity and/or switch to another
* network.
*
*/
public void requestNetwork(NetworkRequest request, NetworkCallback networkCallback) {
sendRequestForNetwork(request.networkCapabilities, networkCallback, 0,
- REQUEST, TYPE_NONE);
+ REQUEST, inferLegacyTypeForNetworkCapabilities(request.networkCapabilities));
}
/**
public void requestNetwork(NetworkRequest request, NetworkCallback networkCallback,
int timeoutMs) {
sendRequestForNetwork(request.networkCapabilities, networkCallback, timeoutMs,
- REQUEST, TYPE_NONE);
+ REQUEST, inferLegacyTypeForNetworkCapabilities(request.networkCapabilities));
}
/**