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

Commit de2b743a authored by Sudheer Shanka's avatar Sudheer Shanka Committed by Android (Google) Code Review
Browse files

Merge "Fix JobInfo.Builder to copy all fields" into main

parents 5f726610 b03bca80
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -1400,6 +1400,8 @@ public class JobInfo implements Parcelable {
            // job.
            mBackoffPolicy = job.getBackoffPolicy();
            mPriority = job.getPriority();
            mDebugTags.addAll(job.getDebugTags());
            mTraceTag = job.getTraceTag();
        }

        /**
@@ -1431,8 +1433,9 @@ public class JobInfo implements Parcelable {

        /** @hide */
        @NonNull
        public void addDebugTags(@NonNull Set<String> tags) {
        public Builder addDebugTags(@NonNull Set<String> tags) {
            mDebugTags.addAll(tags);
            return this;
        }

        /**
+22 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import static android.app.usage.UsageStatsManager.REASON_MAIN_PREDICTED;
import static android.app.usage.UsageStatsManager.REASON_MAIN_TIMEOUT;
import static android.app.usage.UsageStatsManager.REASON_MAIN_USAGE;
import static android.app.usage.UsageStatsManager.STANDBY_BUCKET_FREQUENT;
import static android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET;
import static android.text.format.DateUtils.HOUR_IN_MILLIS;

import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
@@ -66,6 +67,7 @@ import android.app.job.JobInfo;
import android.app.usage.UsageStatsManagerInternal;
import android.content.ComponentName;
import android.content.pm.PackageManagerInternal;
import android.net.NetworkRequest;
import android.net.Uri;
import android.os.SystemClock;
import android.platform.test.annotations.DisableFlags;
@@ -95,6 +97,7 @@ import org.mockito.quality.Strictness;
import java.time.Clock;
import java.time.ZoneOffset;
import java.util.Arrays;
import java.util.Set;

@RunWith(AndroidJUnit4.class)
public class JobStatusTest {
@@ -107,6 +110,10 @@ public class JobStatusTest {
    private static final Uri IMAGES_MEDIA_URI = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
    private static final Uri VIDEO_MEDIA_URI = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;

    private static final String TEST_TRACE_TAG = "test_trace_tag";
    private static final String TEST_DEBUG_TAG1 = "test_debug_tag1";
    private static final String TEST_DEBUG_TAG2 = "test_debug_tag2";

    @Rule
    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();

@@ -1637,6 +1644,21 @@ public class JobStatusTest {
        assertEquals(REASON_MAIN_PREDICTED, jobStatus.getStandbyBucketReason());
    }

    @Test
    public void testCreateJobStatus_validateTags() {
        final NetworkRequest networkRequest = new NetworkRequest.Builder()
                .addCapability(NET_CAPABILITY_INTERNET)
                .build();
        final JobInfo jobInfo = new JobInfo.Builder(42, TEST_JOB_COMPONENT)
                .setRequiredNetwork(networkRequest)
                .setTraceTag(TEST_TRACE_TAG)
                .addDebugTags(Set.of(TEST_DEBUG_TAG1, TEST_DEBUG_TAG2))
                .build();
        final JobStatus jobStatus = createJobStatus(jobInfo);
        assertEquals(TEST_TRACE_TAG, jobStatus.getJob().getTraceTag());
        assertEquals(Set.of(TEST_DEBUG_TAG1, TEST_DEBUG_TAG2), jobStatus.getJob().getDebugTags());
    }

    private void markExpeditedQuotaApproved(JobStatus job, boolean isApproved) {
        if (job.isRequestedExpeditedJob()) {
            job.setExpeditedJobQuotaApproved(sElapsedRealtimeClock.millis(), isApproved);