Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c24bbc64 authored by Chiachang Wang's avatar Chiachang Wang Committed by Automerger Merge Worker
Browse files

Merge "Remove the hidden NetworkRequest usage" am: b2d5ab56

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1649296

Change-Id: I88ec60e29e8a9e9b5511ce6b77bb7ec8bc7cbec8
parents 506d5c92 b2d5ab56
Loading
Loading
Loading
Loading
+35 −0
Original line number Diff line number Diff line
@@ -1006,6 +1006,41 @@ public class JobInfo implements Parcelable {
            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 */
        @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
        public Builder setPriority(int priority) {
+11 −1
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import android.app.job.JobWorkItem;
import android.content.ClipData;
import android.content.ComponentName;
import android.net.Network;
import android.net.NetworkRequest;
import android.net.Uri;
import android.os.RemoteException;
import android.os.UserHandle;
@@ -35,6 +36,7 @@ import android.provider.MediaStore;
import android.text.format.DateFormat;
import android.util.ArraySet;
import android.util.Pair;
import android.util.Range;
import android.util.Slog;
import android.util.TimeUtils;
import android.util.proto.ProtoOutputStream;
@@ -52,6 +54,7 @@ import com.android.server.job.JobStatusShortInfoProto;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.function.Predicate;

/**
@@ -486,8 +489,15 @@ public final class JobStatus {
            // Later, when we check if a given network satisfies the required
            // network, we need to know the UID that is requesting it, so push
            // 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);
        mHasMediaBackupExemption = !job.hasLateConstraint() && exemptedMediaUrisOnly
                && requiresNetwork && this.sourcePackageName.equals(jsi.getMediaBackupPackage());