Merge "[JS01]Remove hidden API usage of Connectivity Sevice"
This commit is contained in:
@@ -532,18 +532,23 @@ public final class JobStore {
|
||||
/**
|
||||
* Write out a tag with data identifying this job's constraints. If the constraint isn't here
|
||||
* it doesn't apply.
|
||||
* TODO: b/183455312 Update this code to use proper serialization for NetworkRequest,
|
||||
* because currently store is not including everything (like, UIDs, bandwidth,
|
||||
* signal strength etc. are lost).
|
||||
*/
|
||||
private void writeConstraintsToXml(XmlSerializer out, JobStatus jobStatus) throws IOException {
|
||||
out.startTag(null, XML_TAG_PARAMS_CONSTRAINTS);
|
||||
if (jobStatus.hasConnectivityConstraint()) {
|
||||
final NetworkRequest network = jobStatus.getJob().getRequiredNetwork();
|
||||
// STOPSHIP b/183071974: improve the scheme for backward compatibility and
|
||||
// mainline cleanliness.
|
||||
out.attribute(null, "net-capabilities", Long.toString(
|
||||
BitUtils.packBits(network.networkCapabilities.getCapabilities())));
|
||||
BitUtils.packBits(network.getCapabilities())));
|
||||
out.attribute(null, "net-unwanted-capabilities", Long.toString(
|
||||
BitUtils.packBits(network.networkCapabilities.getUnwantedCapabilities())));
|
||||
BitUtils.packBits(network.getUnwantedCapabilities())));
|
||||
|
||||
out.attribute(null, "net-transport-types", Long.toString(
|
||||
BitUtils.packBits(network.networkCapabilities.getTransportTypes())));
|
||||
BitUtils.packBits(network.getTransportTypes())));
|
||||
}
|
||||
if (jobStatus.hasIdleConstraint()) {
|
||||
out.attribute(null, "idle", Boolean.toString(true));
|
||||
@@ -967,18 +972,23 @@ public final class JobStore {
|
||||
null, "net-unwanted-capabilities");
|
||||
final String netTransportTypes = parser.getAttributeValue(null, "net-transport-types");
|
||||
if (netCapabilities != null && netTransportTypes != null) {
|
||||
final NetworkRequest request = new NetworkRequest.Builder().build();
|
||||
final NetworkRequest.Builder builder = new NetworkRequest.Builder()
|
||||
.clearCapabilities();
|
||||
final long unwantedCapabilities = netUnwantedCapabilities != null
|
||||
? Long.parseLong(netUnwantedCapabilities)
|
||||
: BitUtils.packBits(request.networkCapabilities.getUnwantedCapabilities());
|
||||
|
||||
: BitUtils.packBits(builder.build().getUnwantedCapabilities());
|
||||
// We're okay throwing NFE here; caught by caller
|
||||
request.networkCapabilities.setCapabilities(
|
||||
BitUtils.unpackBits(Long.parseLong(netCapabilities)),
|
||||
BitUtils.unpackBits(unwantedCapabilities));
|
||||
request.networkCapabilities.setTransportTypes(
|
||||
BitUtils.unpackBits(Long.parseLong(netTransportTypes)));
|
||||
jobBuilder.setRequiredNetwork(request);
|
||||
for (int capability : BitUtils.unpackBits(Long.parseLong(netCapabilities))) {
|
||||
builder.addCapability(capability);
|
||||
}
|
||||
for (int unwantedCapability : BitUtils.unpackBits(
|
||||
Long.parseLong(netUnwantedCapabilities))) {
|
||||
builder.addUnwantedCapability(unwantedCapability);
|
||||
}
|
||||
for (int transport : BitUtils.unpackBits(Long.parseLong(netTransportTypes))) {
|
||||
builder.addTransportType(transport);
|
||||
}
|
||||
jobBuilder.setRequiredNetwork(builder.build());
|
||||
} else {
|
||||
// Read legacy values
|
||||
val = parser.getAttributeValue(null, "connectivity");
|
||||
|
||||
@@ -68,6 +68,7 @@ package android.net {
|
||||
method public boolean bindProcessToNetwork(@Nullable android.net.Network);
|
||||
method @NonNull public android.net.SocketKeepalive createSocketKeepalive(@NonNull android.net.Network, @NonNull android.net.IpSecManager.UdpEncapsulationSocket, @NonNull java.net.InetAddress, @NonNull java.net.InetAddress, @NonNull java.util.concurrent.Executor, @NonNull android.net.SocketKeepalive.Callback);
|
||||
method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public android.net.Network getActiveNetwork();
|
||||
method @Nullable @RequiresPermission(android.Manifest.permission.NETWORK_STACK) public android.net.Network getActiveNetworkForUid(int);
|
||||
method @Deprecated @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public android.net.NetworkInfo getActiveNetworkInfo();
|
||||
method @Deprecated @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public android.net.NetworkInfo[] getAllNetworkInfo();
|
||||
method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public android.net.Network[] getAllNetworks();
|
||||
@@ -387,7 +388,9 @@ package android.net {
|
||||
public class NetworkRequest implements android.os.Parcelable {
|
||||
method public boolean canBeSatisfiedBy(@Nullable android.net.NetworkCapabilities);
|
||||
method public int describeContents();
|
||||
method @NonNull public int[] getCapabilities();
|
||||
method @Nullable public android.net.NetworkSpecifier getNetworkSpecifier();
|
||||
method @NonNull public int[] getTransportTypes();
|
||||
method public boolean hasCapability(int);
|
||||
method public boolean hasTransport(int);
|
||||
method public void writeToParcel(android.os.Parcel, int);
|
||||
|
||||
@@ -120,6 +120,7 @@ package android.net {
|
||||
}
|
||||
|
||||
public class NetworkRequest implements android.os.Parcelable {
|
||||
method @NonNull public int[] getUnwantedCapabilities();
|
||||
method public boolean hasUnwantedCapability(int);
|
||||
}
|
||||
|
||||
|
||||
@@ -1190,8 +1190,7 @@ public class ConnectivityManager {
|
||||
*
|
||||
* @return a {@link Network} object for the current default network for the
|
||||
* given UID or {@code null} if no default network is currently active
|
||||
*
|
||||
* @hide
|
||||
* TODO: b/183465229 Cleanup getActiveNetworkForUid once b/165835257 is fixed
|
||||
*/
|
||||
@RequiresPermission(android.Manifest.permission.NETWORK_STACK)
|
||||
@Nullable
|
||||
|
||||
@@ -699,4 +699,43 @@ public class NetworkRequest implements Parcelable {
|
||||
public int hashCode() {
|
||||
return Objects.hash(requestId, legacyType, networkCapabilities, type);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets all the capabilities set on this {@code NetworkRequest} instance.
|
||||
*
|
||||
* @return an array of capability values for this instance.
|
||||
*/
|
||||
@NonNull
|
||||
public @NetCapability int[] getCapabilities() {
|
||||
// No need to make a defensive copy here as NC#getCapabilities() already returns
|
||||
// a new array.
|
||||
return networkCapabilities.getCapabilities();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets all the unwanted capabilities set on this {@code NetworkRequest} instance.
|
||||
*
|
||||
* @return an array of unwanted capability values for this instance.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@NonNull
|
||||
@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
|
||||
public @NetCapability int[] getUnwantedCapabilities() {
|
||||
// No need to make a defensive copy here as NC#getUnwantedCapabilities() already returns
|
||||
// a new array.
|
||||
return networkCapabilities.getUnwantedCapabilities();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets all the transports set on this {@code NetworkRequest} instance.
|
||||
*
|
||||
* @return an array of transport type values for this instance.
|
||||
*/
|
||||
@NonNull
|
||||
public @Transport int[] getTransportTypes() {
|
||||
// No need to make a defensive copy here as NC#getTransportTypes() already returns
|
||||
// a new array.
|
||||
return networkCapabilities.getTransportTypes();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user