Merge "[CS04]Remove hidden API usage of NetworkCapabilities"
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user