am 7a3077a9: Merge "Make requests for restricted networks not require unrestricted access." into lmp-preview-dev
* commit '7a3077a9a7405048b9cd28452efbc28a857acb25': Make requests for restricted networks not require unrestricted access.
This commit is contained in:
@@ -870,6 +870,26 @@ public class ConnectivityManager {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes the NET_CAPABILITY_NOT_RESTRICTED capability from the given
|
||||||
|
* NetworkCapabilities object if it lists any capabilities that are
|
||||||
|
* typically provided by retricted networks.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public static void maybeMarkCapabilitiesRestricted(NetworkCapabilities nc) {
|
||||||
|
for (Integer capability: nc.getNetworkCapabilities()) {
|
||||||
|
switch (capability.intValue()) {
|
||||||
|
case NetworkCapabilities.NET_CAPABILITY_CBS:
|
||||||
|
case NetworkCapabilities.NET_CAPABILITY_DUN:
|
||||||
|
case NetworkCapabilities.NET_CAPABILITY_FOTA:
|
||||||
|
case NetworkCapabilities.NET_CAPABILITY_IA:
|
||||||
|
case NetworkCapabilities.NET_CAPABILITY_IMS:
|
||||||
|
nc.removeNetworkCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private NetworkCapabilities networkCapabilitiesForFeature(int networkType, String feature) {
|
private NetworkCapabilities networkCapabilitiesForFeature(int networkType, String feature) {
|
||||||
if (networkType == TYPE_MOBILE) {
|
if (networkType == TYPE_MOBILE) {
|
||||||
int cap = -1;
|
int cap = -1;
|
||||||
@@ -893,12 +913,14 @@ public class ConnectivityManager {
|
|||||||
NetworkCapabilities netCap = new NetworkCapabilities();
|
NetworkCapabilities netCap = new NetworkCapabilities();
|
||||||
netCap.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
|
netCap.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
|
||||||
netCap.addNetworkCapability(cap);
|
netCap.addNetworkCapability(cap);
|
||||||
|
maybeMarkCapabilitiesRestricted(netCap);
|
||||||
return netCap;
|
return netCap;
|
||||||
} else if (networkType == TYPE_WIFI) {
|
} else if (networkType == TYPE_WIFI) {
|
||||||
if ("p2p".equals(feature)) {
|
if ("p2p".equals(feature)) {
|
||||||
NetworkCapabilities netCap = new NetworkCapabilities();
|
NetworkCapabilities netCap = new NetworkCapabilities();
|
||||||
netCap.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
|
netCap.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
|
||||||
netCap.addNetworkCapability(NetworkCapabilities.NET_CAPABILITY_WIFI_P2P);
|
netCap.addNetworkCapability(NetworkCapabilities.NET_CAPABILITY_WIFI_P2P);
|
||||||
|
maybeMarkCapabilitiesRestricted(netCap);
|
||||||
return netCap;
|
return netCap;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user