Merge "Remove the hidden NetworkRequest usage" am: b2d5ab569c
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1649296 Change-Id: I88ec60e29e8a9e9b5511ce6b77bb7ec8bc7cbec8
This commit is contained in:
@@ -1006,6 +1006,41 @@ public class JobInfo implements Parcelable {
|
|||||||
mJobId = jobId;
|
mJobId = jobId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new Builder of JobInfo from an existing instance.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public Builder(@NonNull JobInfo job) {
|
||||||
|
mJobId = job.getId();
|
||||||
|
mJobService = job.getService();
|
||||||
|
mExtras = job.getExtras();
|
||||||
|
mTransientExtras = job.getTransientExtras();
|
||||||
|
mClipData = job.getClipData();
|
||||||
|
mClipGrantFlags = job.getClipGrantFlags();
|
||||||
|
mPriority = job.getPriority();
|
||||||
|
mFlags = job.getFlags();
|
||||||
|
mConstraintFlags = job.getConstraintFlags();
|
||||||
|
mNetworkRequest = job.getRequiredNetwork();
|
||||||
|
mNetworkDownloadBytes = job.getEstimatedNetworkDownloadBytes();
|
||||||
|
mNetworkUploadBytes = job.getEstimatedNetworkUploadBytes();
|
||||||
|
mTriggerContentUris = job.getTriggerContentUris() != null
|
||||||
|
? new ArrayList<>(Arrays.asList(job.getTriggerContentUris())) : null;
|
||||||
|
mTriggerContentUpdateDelay = job.getTriggerContentUpdateDelay();
|
||||||
|
mTriggerContentMaxDelay = job.getTriggerContentMaxDelay();
|
||||||
|
mIsPersisted = job.isPersisted();
|
||||||
|
mMinLatencyMillis = job.getMinLatencyMillis();
|
||||||
|
mMaxExecutionDelayMillis = job.getMaxExecutionDelayMillis();
|
||||||
|
mIsPeriodic = job.isPeriodic();
|
||||||
|
mHasEarlyConstraint = job.hasEarlyConstraint();
|
||||||
|
mHasLateConstraint = job.hasLateConstraint();
|
||||||
|
mIntervalMillis = job.getIntervalMillis();
|
||||||
|
mFlexMillis = job.getFlexMillis();
|
||||||
|
mInitialBackoffMillis = job.getInitialBackoffMillis();
|
||||||
|
// mBackoffPolicySet isn't set but it's fine since this is copying from an already valid
|
||||||
|
// job.
|
||||||
|
mBackoffPolicy = job.getBackoffPolicy();
|
||||||
|
}
|
||||||
|
|
||||||
/** @hide */
|
/** @hide */
|
||||||
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
|
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
|
||||||
public Builder setPriority(int priority) {
|
public Builder setPriority(int priority) {
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import android.app.job.JobWorkItem;
|
|||||||
import android.content.ClipData;
|
import android.content.ClipData;
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.net.Network;
|
import android.net.Network;
|
||||||
|
import android.net.NetworkRequest;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
@@ -35,6 +36,7 @@ import android.provider.MediaStore;
|
|||||||
import android.text.format.DateFormat;
|
import android.text.format.DateFormat;
|
||||||
import android.util.ArraySet;
|
import android.util.ArraySet;
|
||||||
import android.util.Pair;
|
import android.util.Pair;
|
||||||
|
import android.util.Range;
|
||||||
import android.util.Slog;
|
import android.util.Slog;
|
||||||
import android.util.TimeUtils;
|
import android.util.TimeUtils;
|
||||||
import android.util.proto.ProtoOutputStream;
|
import android.util.proto.ProtoOutputStream;
|
||||||
@@ -52,6 +54,7 @@ import com.android.server.job.JobStatusShortInfoProto;
|
|||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -486,8 +489,15 @@ public final class JobStatus {
|
|||||||
// Later, when we check if a given network satisfies the required
|
// Later, when we check if a given network satisfies the required
|
||||||
// network, we need to know the UID that is requesting it, so push
|
// network, we need to know the UID that is requesting it, so push
|
||||||
// our source UID into place.
|
// our source UID into place.
|
||||||
job.getRequiredNetwork().networkCapabilities.setSingleUid(this.sourceUid);
|
final JobInfo.Builder builder = new JobInfo.Builder(job);
|
||||||
|
final NetworkRequest.Builder requestBuilder =
|
||||||
|
new NetworkRequest.Builder(job.getRequiredNetwork());
|
||||||
|
requestBuilder.setUids(
|
||||||
|
Collections.singleton(new Range<Integer>(this.sourceUid, this.sourceUid)));
|
||||||
|
builder.setRequiredNetwork(requestBuilder.build());
|
||||||
|
job = builder.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
final JobSchedulerInternal jsi = LocalServices.getService(JobSchedulerInternal.class);
|
final JobSchedulerInternal jsi = LocalServices.getService(JobSchedulerInternal.class);
|
||||||
mHasMediaBackupExemption = !job.hasLateConstraint() && exemptedMediaUrisOnly
|
mHasMediaBackupExemption = !job.hasLateConstraint() && exemptedMediaUrisOnly
|
||||||
&& requiresNetwork && this.sourcePackageName.equals(jsi.getMediaBackupPackage());
|
&& requiresNetwork && this.sourcePackageName.equals(jsi.getMediaBackupPackage());
|
||||||
|
|||||||
Reference in New Issue
Block a user