diff options
| author | 2014-07-23 18:53:02 +0000 | |
|---|---|---|
| committer | 2014-07-23 17:52:05 +0000 | |
| commit | e5ebd4bc76f37e13d2cb6d9d10f3bdb257562a6f (patch) | |
| tree | b522135e164a2a2be5a4471024e0d69c465d96ee | |
| parent | 8ed4d5ac664f2442c9fd9d9861abd6d589dac73b (diff) | |
| parent | b87875eb88216a84c3870e574780921eb00d34c3 (diff) | |
Merge "Infer legacy network type for ConnectivityManager.requestNetwork" into lmp-dev
| -rw-r--r-- | core/java/android/net/ConnectivityManager.java | 65 |
1 files changed, 62 insertions, 3 deletions
diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java index 13364cd945d7..e31f012c3d6c 100644 --- a/core/java/android/net/ConnectivityManager.java +++ b/core/java/android/net/ConnectivityManager.java @@ -1084,6 +1084,65 @@ public class ConnectivityManager { 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)) { @@ -1694,7 +1753,7 @@ public class ConnectivityManager { /** * 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. * @@ -2344,7 +2403,7 @@ public class ConnectivityManager { */ public void requestNetwork(NetworkRequest request, NetworkCallback networkCallback) { sendRequestForNetwork(request.networkCapabilities, networkCallback, 0, - REQUEST, TYPE_NONE); + REQUEST, inferLegacyTypeForNetworkCapabilities(request.networkCapabilities)); } /** @@ -2366,7 +2425,7 @@ public class ConnectivityManager { public void requestNetwork(NetworkRequest request, NetworkCallback networkCallback, int timeoutMs) { sendRequestForNetwork(request.networkCapabilities, networkCallback, timeoutMs, - REQUEST, TYPE_NONE); + REQUEST, inferLegacyTypeForNetworkCapabilities(request.networkCapabilities)); } /** |