am 02006632: Merge "Call a network restricted only if all capabilities are restricted" into lmp-preview-dev

* commit '02006632ef34d70e196a47a3b11ff344005acbb1':
  Call a network restricted only if all capabilities are restricted
This commit is contained in:
Robert Greenwalt
2014-06-04 20:52:50 +00:00
committed by Android Git Automerger

View File

@@ -872,8 +872,13 @@ public class ConnectivityManager {
/** /**
* Removes the NET_CAPABILITY_NOT_RESTRICTED capability from the given * Removes the NET_CAPABILITY_NOT_RESTRICTED capability from the given
* NetworkCapabilities object if it lists any capabilities that are * NetworkCapabilities object if all the capabilities it provides are
* typically provided by retricted networks. * typically provided by restricted networks.
*
* TODO: consider:
* - Moving to NetworkCapabilities
* - Renaming it to guessRestrictedCapability and make it set the
* restricted capability bit in addition to clearing it.
* @hide * @hide
*/ */
public static void maybeMarkCapabilitiesRestricted(NetworkCapabilities nc) { public static void maybeMarkCapabilitiesRestricted(NetworkCapabilities nc) {
@@ -881,13 +886,22 @@ public class ConnectivityManager {
switch (capability.intValue()) { switch (capability.intValue()) {
case NetworkCapabilities.NET_CAPABILITY_CBS: case NetworkCapabilities.NET_CAPABILITY_CBS:
case NetworkCapabilities.NET_CAPABILITY_DUN: case NetworkCapabilities.NET_CAPABILITY_DUN:
case NetworkCapabilities.NET_CAPABILITY_EIMS:
case NetworkCapabilities.NET_CAPABILITY_FOTA: case NetworkCapabilities.NET_CAPABILITY_FOTA:
case NetworkCapabilities.NET_CAPABILITY_IA: case NetworkCapabilities.NET_CAPABILITY_IA:
case NetworkCapabilities.NET_CAPABILITY_IMS: case NetworkCapabilities.NET_CAPABILITY_IMS:
case NetworkCapabilities.NET_CAPABILITY_RCS:
case NetworkCapabilities.NET_CAPABILITY_XCAP:
continue;
default:
// At least one capability usually provided by unrestricted
// networks. Conclude that this network is unrestricted.
return;
}
}
// All the capabilities are typically provided by restricted networks.
// Conclude that this network is restricted.
nc.removeNetworkCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED); nc.removeNetworkCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED);
break;
}
}
} }
private NetworkCapabilities networkCapabilitiesForFeature(int networkType, String feature) { private NetworkCapabilities networkCapabilitiesForFeature(int networkType, String feature) {