Merge "[CS04]Remove hidden API usage of NetworkCapabilities"

This commit is contained in:
Frank Li
2021-02-05 08:29:42 +00:00
committed by Gerrit Code Review

View File

@@ -16,7 +16,6 @@
package com.android.server.job.controllers; package com.android.server.job.controllers;
import static android.net.NetworkCapabilities.LINK_BANDWIDTH_UNSPECIFIED;
import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_CONGESTED; import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_CONGESTED;
import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_METERED; import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_METERED;
@@ -325,7 +324,7 @@ public final class ConnectivityController extends RestrictingController implemen
if (downloadBytes != JobInfo.NETWORK_BYTES_UNKNOWN) { if (downloadBytes != JobInfo.NETWORK_BYTES_UNKNOWN) {
final long bandwidth = capabilities.getLinkDownstreamBandwidthKbps(); final long bandwidth = capabilities.getLinkDownstreamBandwidthKbps();
// If we don't know the bandwidth, all we can do is hope the job finishes in time. // If we don't know the bandwidth, all we can do is hope the job finishes in time.
if (bandwidth != LINK_BANDWIDTH_UNSPECIFIED) { if (bandwidth > 0) {
// Divide by 8 to convert bits to bytes. // Divide by 8 to convert bits to bytes.
final long estimatedMillis = ((downloadBytes * DateUtils.SECOND_IN_MILLIS) final long estimatedMillis = ((downloadBytes * DateUtils.SECOND_IN_MILLIS)
/ (DataUnit.KIBIBYTES.toBytes(bandwidth) / 8)); / (DataUnit.KIBIBYTES.toBytes(bandwidth) / 8));
@@ -343,7 +342,7 @@ public final class ConnectivityController extends RestrictingController implemen
if (uploadBytes != JobInfo.NETWORK_BYTES_UNKNOWN) { if (uploadBytes != JobInfo.NETWORK_BYTES_UNKNOWN) {
final long bandwidth = capabilities.getLinkUpstreamBandwidthKbps(); final long bandwidth = capabilities.getLinkUpstreamBandwidthKbps();
// If we don't know the bandwidth, all we can do is hope the job finishes in time. // If we don't know the bandwidth, all we can do is hope the job finishes in time.
if (bandwidth != LINK_BANDWIDTH_UNSPECIFIED) { if (bandwidth > 0) {
// Divide by 8 to convert bits to bytes. // Divide by 8 to convert bits to bytes.
final long estimatedMillis = ((uploadBytes * DateUtils.SECOND_IN_MILLIS) final long estimatedMillis = ((uploadBytes * DateUtils.SECOND_IN_MILLIS)
/ (DataUnit.KIBIBYTES.toBytes(bandwidth) / 8)); / (DataUnit.KIBIBYTES.toBytes(bandwidth) / 8));
@@ -373,18 +372,16 @@ public final class ConnectivityController extends RestrictingController implemen
private static boolean isStrictSatisfied(JobStatus jobStatus, Network network, private static boolean isStrictSatisfied(JobStatus jobStatus, Network network,
NetworkCapabilities capabilities, Constants constants) { NetworkCapabilities capabilities, Constants constants) {
final NetworkCapabilities required;
// A restricted job that's out of quota MUST use an unmetered network. // A restricted job that's out of quota MUST use an unmetered network.
if (jobStatus.getEffectiveStandbyBucket() == RESTRICTED_INDEX if (jobStatus.getEffectiveStandbyBucket() == RESTRICTED_INDEX
&& !jobStatus.isConstraintSatisfied(JobStatus.CONSTRAINT_WITHIN_QUOTA)) { && !jobStatus.isConstraintSatisfied(JobStatus.CONSTRAINT_WITHIN_QUOTA)) {
required = new NetworkCapabilities( final NetworkCapabilities required = new NetworkCapabilities.Builder(
jobStatus.getJob().getRequiredNetwork().networkCapabilities) jobStatus.getJob().getRequiredNetwork().networkCapabilities)
.addCapability(NET_CAPABILITY_NOT_METERED); .addCapability(NET_CAPABILITY_NOT_METERED).build();
return required.satisfiedByNetworkCapabilities(capabilities);
} else { } else {
required = jobStatus.getJob().getRequiredNetwork().networkCapabilities; return jobStatus.getJob().getRequiredNetwork().canBeSatisfiedBy(capabilities);
} }
return required.satisfiedByNetworkCapabilities(capabilities);
} }
private static boolean isRelaxedSatisfied(JobStatus jobStatus, Network network, private static boolean isRelaxedSatisfied(JobStatus jobStatus, Network network,
@@ -395,9 +392,9 @@ public final class ConnectivityController extends RestrictingController implemen
} }
// See if we match after relaxing any unmetered request // See if we match after relaxing any unmetered request
final NetworkCapabilities relaxed = new NetworkCapabilities( final NetworkCapabilities relaxed = new NetworkCapabilities.Builder(
jobStatus.getJob().getRequiredNetwork().networkCapabilities) jobStatus.getJob().getRequiredNetwork().networkCapabilities)
.removeCapability(NET_CAPABILITY_NOT_METERED); .removeCapability(NET_CAPABILITY_NOT_METERED).build();
if (relaxed.satisfiedByNetworkCapabilities(capabilities)) { if (relaxed.satisfiedByNetworkCapabilities(capabilities)) {
// TODO: treat this as "maybe" response; need to check quotas // TODO: treat this as "maybe" response; need to check quotas
return jobStatus.getFractionRunTime() > constants.CONN_PREFETCH_RELAX_FRAC; return jobStatus.getFractionRunTime() > constants.CONN_PREFETCH_RELAX_FRAC;