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

Commit 7bbe8540 authored by Varun Shah's avatar Varun Shah Committed by Automerger Merge Worker
Browse files

Merge "Remove the setDataTransfer API." into udc-dev am: 4266aa9e

parents 5b25b31a 4266aa9e
Loading
Loading
Loading
Loading
+15 −70
Original line number Diff line number Diff line
@@ -396,19 +396,12 @@ public class JobInfo implements Parcelable {
     */
    public static final int FLAG_EXPEDITED = 1 << 4;

    /**
     * Whether it's a data transfer job or not.
     *
     * @hide
     */
    public static final int FLAG_DATA_TRANSFER = 1 << 5;

    /**
     * Whether it's a user initiated job or not.
     *
     * @hide
     */
    public static final int FLAG_USER_INITIATED = 1 << 6;
    public static final int FLAG_USER_INITIATED = 1 << 5;

    /**
     * @hide
@@ -737,13 +730,6 @@ public class JobInfo implements Parcelable {
        return (flags & FLAG_EXPEDITED) != 0;
    }

    /**
     * @see JobInfo.Builder#setDataTransfer(boolean)
     */
    public boolean isDataTransfer() {
        return (flags & FLAG_DATA_TRANSFER) != 0;
    }

    /**
     * @see JobInfo.Builder#setUserInitiated(boolean)
     */
@@ -1849,39 +1835,6 @@ public class JobInfo implements Parcelable {
            return this;
        }

        /**
         * Indicates that this job will be used to transfer data to or from a remote server. The
         * system could attempt to run a data transfer job longer than a regular job if the data
         * being transferred is potentially very large and can take a long time to complete.
         *
         * <p>
         * You must provide an estimate of the payload size via
         * {@link #setEstimatedNetworkBytes(long, long)} when scheduling the job or use
         * {@link JobService#updateEstimatedNetworkBytes(JobParameters, long, long)} or
         * {@link JobService#updateEstimatedNetworkBytes(JobParameters, JobWorkItem, long, long)}
         * shortly after the job starts.
         *
         * <p>
         * For user-initiated transfers that must be started immediately, call
         * {@link #setUserInitiated(boolean) setUserInitiated(true)}. Otherwise, the system may
         * defer the job to a more opportune time.
         *
         * <p>
         * If you want to perform more than one data transfer job, consider enqueuing multiple
         * {@link JobWorkItem JobWorkItems} along with {@link #setDataTransfer(boolean)}.
         *
         * @see JobInfo#isDataTransfer()
         */
        @NonNull
        public Builder setDataTransfer(boolean dataTransfer) {
            if (dataTransfer) {
                mFlags |= FLAG_DATA_TRANSFER;
            } else {
                mFlags &= (~FLAG_DATA_TRANSFER);
            }
            return this;
        }

        /**
         * Indicates that this job is being scheduled to fulfill an explicit user request.
         * As such, user-initiated jobs can only be scheduled when the app is in the foreground
@@ -1909,6 +1862,11 @@ public class JobInfo implements Parcelable {
         * {@link SecurityException}.
         *
         * <p>
         * In {@link android.os.Build.VERSION_CODES#UPSIDE_DOWN_CAKE}, user-initiated jobs can only
         * be used for network data transfers. As such, they must specify a required network via
         * {@link #setRequiredNetwork(NetworkRequest)} or {@link #setRequiredNetworkType(int)}.
         *
         * <p>
         * These jobs will not be subject to quotas and will be started immediately once scheduled
         * if all constraints are met and the device system health allows for additional tasks.
         *
@@ -2179,10 +2137,6 @@ public class JobInfo implements Parcelable {
            if (isPeriodic) {
                throw new IllegalArgumentException("An expedited job cannot be periodic");
            }
            if ((flags & FLAG_DATA_TRANSFER) != 0) {
                throw new IllegalArgumentException(
                        "An expedited job cannot also be a data transfer job");
            }
            if (isUserInitiated) {
                throw new IllegalArgumentException("An expedited job cannot be user-initiated");
            }
@@ -2202,24 +2156,6 @@ public class JobInfo implements Parcelable {
            }
        }

        if ((flags & FLAG_DATA_TRANSFER) != 0) {
            if (backoffPolicy == BACKOFF_POLICY_LINEAR) {
                throw new IllegalArgumentException(
                        "A data transfer job cannot have a linear backoff policy.");
            }
            if (hasLateConstraint) {
                throw new IllegalArgumentException("A data transfer job cannot have a deadline");
            }
            if ((flags & FLAG_PREFETCH) != 0) {
                throw new IllegalArgumentException(
                        "A data transfer job cannot also be a prefetch job");
            }
            if (networkRequest == null) {
                throw new IllegalArgumentException(
                        "A data transfer job must specify a valid network type");
            }
        }

        if (isUserInitiated) {
            if (hasEarlyConstraint) {
                throw new IllegalArgumentException("A user-initiated job cannot have a time delay");
@@ -2245,6 +2181,15 @@ public class JobInfo implements Parcelable {
                throw new IllegalArgumentException(
                        "Can't call addTriggerContentUri() on a user-initiated job");
            }
            // UIDTs
            if (networkRequest == null) {
                throw new IllegalArgumentException(
                        "A user-initaited data transfer job must specify a valid network type");
            }
            if (backoffPolicy == BACKOFF_POLICY_LINEAR) {
                throw new IllegalArgumentException(
                        "A user-initiated data transfer job cannot have a linear backoff policy.");
            }
        }
    }

+2 −47
Original line number Diff line number Diff line
@@ -478,8 +478,6 @@ public class JobSchedulerService extends com.android.server.SystemService
                        case Constants.KEY_RUNTIME_FREE_QUOTA_MAX_LIMIT_MS:
                        case Constants.KEY_RUNTIME_MIN_GUARANTEE_MS:
                        case Constants.KEY_RUNTIME_MIN_EJ_GUARANTEE_MS:
                        case Constants.KEY_RUNTIME_MIN_DATA_TRANSFER_GUARANTEE_MS:
                        case Constants.KEY_RUNTIME_DATA_TRANSFER_LIMIT_MS:
                        case Constants.KEY_RUNTIME_MIN_USER_INITIATED_GUARANTEE_MS:
                        case Constants.KEY_RUNTIME_USER_INITIATED_LIMIT_MS:
                        case Constants.KEY_RUNTIME_MIN_USER_INITIATED_DATA_TRANSFER_GUARANTEE_BUFFER_FACTOR:
@@ -574,10 +572,6 @@ public class JobSchedulerService extends com.android.server.SystemService
                "runtime_free_quota_max_limit_ms";
        private static final String KEY_RUNTIME_MIN_GUARANTEE_MS = "runtime_min_guarantee_ms";
        private static final String KEY_RUNTIME_MIN_EJ_GUARANTEE_MS = "runtime_min_ej_guarantee_ms";
        private static final String KEY_RUNTIME_MIN_DATA_TRANSFER_GUARANTEE_MS =
                "runtime_min_data_transfer_guarantee_ms";
        private static final String KEY_RUNTIME_DATA_TRANSFER_LIMIT_MS =
                "runtime_data_transfer_limit_ms";
        private static final String KEY_RUNTIME_MIN_USER_INITIATED_GUARANTEE_MS =
                "runtime_min_user_initiated_guarantee_ms";
        private static final String KEY_RUNTIME_USER_INITIATED_LIMIT_MS =
@@ -616,10 +610,6 @@ public class JobSchedulerService extends com.android.server.SystemService
        public static final long DEFAULT_RUNTIME_MIN_GUARANTEE_MS = 10 * MINUTE_IN_MILLIS;
        @VisibleForTesting
        public static final long DEFAULT_RUNTIME_MIN_EJ_GUARANTEE_MS = 3 * MINUTE_IN_MILLIS;
        public static final long DEFAULT_RUNTIME_MIN_DATA_TRANSFER_GUARANTEE_MS =
                DEFAULT_RUNTIME_MIN_GUARANTEE_MS;
        public static final long DEFAULT_RUNTIME_DATA_TRANSFER_LIMIT_MS =
                DEFAULT_RUNTIME_FREE_QUOTA_MAX_LIMIT_MS;
        public static final long DEFAULT_RUNTIME_MIN_USER_INITIATED_GUARANTEE_MS =
                Math.max(10 * MINUTE_IN_MILLIS, DEFAULT_RUNTIME_MIN_GUARANTEE_MS);
        public static final long DEFAULT_RUNTIME_USER_INITIATED_LIMIT_MS =
@@ -738,18 +728,6 @@ public class JobSchedulerService extends com.android.server.SystemService
         */
        public long RUNTIME_MIN_EJ_GUARANTEE_MS = DEFAULT_RUNTIME_MIN_EJ_GUARANTEE_MS;

        /**
         * The minimum amount of time we try to guarantee normal data transfer jobs will run for.
         */
        public long RUNTIME_MIN_DATA_TRANSFER_GUARANTEE_MS =
                DEFAULT_RUNTIME_MIN_DATA_TRANSFER_GUARANTEE_MS;

        /**
         * The maximum amount of time we will let a normal data transfer job run for. This will only
         * apply if there are no other limits that apply to the specific data transfer job.
         */
        public long RUNTIME_DATA_TRANSFER_LIMIT_MS = DEFAULT_RUNTIME_DATA_TRANSFER_LIMIT_MS;

        /**
         * The minimum amount of time we try to guarantee normal user-initiated jobs will run for.
         */
@@ -885,8 +863,6 @@ public class JobSchedulerService extends com.android.server.SystemService
                    KEY_RUNTIME_FREE_QUOTA_MAX_LIMIT_MS,
                    KEY_RUNTIME_MIN_GUARANTEE_MS, KEY_RUNTIME_MIN_EJ_GUARANTEE_MS,
                    KEY_RUNTIME_MIN_USER_INITIATED_DATA_TRANSFER_GUARANTEE_BUFFER_FACTOR,
                    KEY_RUNTIME_MIN_DATA_TRANSFER_GUARANTEE_MS,
                    KEY_RUNTIME_DATA_TRANSFER_LIMIT_MS,
                    KEY_RUNTIME_MIN_USER_INITIATED_GUARANTEE_MS,
                    KEY_RUNTIME_USER_INITIATED_LIMIT_MS,
                    KEY_RUNTIME_MIN_USER_INITIATED_DATA_TRANSFER_GUARANTEE_MS,
@@ -904,17 +880,6 @@ public class JobSchedulerService extends com.android.server.SystemService
                    properties.getLong(KEY_RUNTIME_FREE_QUOTA_MAX_LIMIT_MS,
                            DEFAULT_RUNTIME_FREE_QUOTA_MAX_LIMIT_MS));
            // Make sure min runtime is at least as long as regular jobs.
            RUNTIME_MIN_DATA_TRANSFER_GUARANTEE_MS = Math.max(RUNTIME_MIN_GUARANTEE_MS,
                    properties.getLong(
                            KEY_RUNTIME_MIN_DATA_TRANSFER_GUARANTEE_MS,
                            DEFAULT_RUNTIME_MIN_DATA_TRANSFER_GUARANTEE_MS));
            // Max limit should be at least the min guarantee AND the free quota.
            RUNTIME_DATA_TRANSFER_LIMIT_MS = Math.max(RUNTIME_FREE_QUOTA_MAX_LIMIT_MS,
                    Math.max(RUNTIME_MIN_DATA_TRANSFER_GUARANTEE_MS,
                            properties.getLong(
                                    KEY_RUNTIME_DATA_TRANSFER_LIMIT_MS,
                                    DEFAULT_RUNTIME_DATA_TRANSFER_LIMIT_MS)));
            // Make sure min runtime is at least as long as regular jobs.
            RUNTIME_MIN_USER_INITIATED_GUARANTEE_MS = Math.max(RUNTIME_MIN_GUARANTEE_MS,
                    properties.getLong(
                            KEY_RUNTIME_MIN_USER_INITIATED_GUARANTEE_MS,
@@ -993,10 +958,6 @@ public class JobSchedulerService extends com.android.server.SystemService
            pw.print(KEY_RUNTIME_MIN_EJ_GUARANTEE_MS, RUNTIME_MIN_EJ_GUARANTEE_MS).println();
            pw.print(KEY_RUNTIME_FREE_QUOTA_MAX_LIMIT_MS, RUNTIME_FREE_QUOTA_MAX_LIMIT_MS)
                    .println();
            pw.print(KEY_RUNTIME_MIN_DATA_TRANSFER_GUARANTEE_MS,
                    RUNTIME_MIN_DATA_TRANSFER_GUARANTEE_MS).println();
            pw.print(KEY_RUNTIME_DATA_TRANSFER_LIMIT_MS,
                    RUNTIME_DATA_TRANSFER_LIMIT_MS).println();
            pw.print(KEY_RUNTIME_MIN_USER_INITIATED_GUARANTEE_MS,
                    RUNTIME_MIN_USER_INITIATED_GUARANTEE_MS).println();
            pw.print(KEY_RUNTIME_USER_INITIATED_LIMIT_MS,
@@ -3291,7 +3252,7 @@ public class JobSchedulerService extends com.android.server.SystemService
            if (job.shouldTreatAsUserInitiatedJob()
                    && checkRunUserInitiatedJobsPermission(
                            job.getSourceUid(), job.getSourcePackageName())) {
                if (job.getJob().isDataTransfer()) {
                if (job.getJob().getRequiredNetwork() != null) { // UI+DT
                    final long estimatedTransferTimeMs =
                            mConnectivityController.getEstimatedTransferTimeMs(job);
                    if (estimatedTransferTimeMs == ConnectivityController.UNKNOWN_TIME) {
@@ -3308,9 +3269,6 @@ public class JobSchedulerService extends com.android.server.SystemService
                            ));
                }
                return mConstants.RUNTIME_MIN_USER_INITIATED_GUARANTEE_MS;
            } else if (job.getJob().isDataTransfer()) {
                // For now, don't increase a bg data transfer's minimum guarantee.
                return mConstants.RUNTIME_MIN_DATA_TRANSFER_GUARANTEE_MS;
            } else if (job.shouldTreatAsExpeditedJob()) {
                // Don't guarantee RESTRICTED jobs more than 5 minutes.
                return job.getEffectiveStandbyBucket() != RESTRICTED_INDEX
@@ -3328,7 +3286,7 @@ public class JobSchedulerService extends com.android.server.SystemService
            final boolean allowLongerJob = job.shouldTreatAsUserInitiatedJob()
                    && checkRunUserInitiatedJobsPermission(
                            job.getSourceUid(), job.getSourcePackageName());
            if (job.getJob().isDataTransfer() && allowLongerJob) { // UI+DT
            if (job.getJob().getRequiredNetwork() != null && allowLongerJob) { // UI+DT
                return mConstants.RUNTIME_USER_INITIATED_DATA_TRANSFER_LIMIT_MS;
            }
            if (allowLongerJob) { // UI with LRJ permission
@@ -3337,9 +3295,6 @@ public class JobSchedulerService extends com.android.server.SystemService
            if (job.shouldTreatAsUserInitiatedJob()) {
                return mConstants.RUNTIME_FREE_QUOTA_MAX_LIMIT_MS;
            }
            if (job.getJob().isDataTransfer()) {
                return mConstants.RUNTIME_DATA_TRANSFER_LIMIT_MS;
            }
            return Math.min(mConstants.RUNTIME_FREE_QUOTA_MAX_LIMIT_MS,
                    mConstants.USE_TARE_POLICY
                            ? mTareController.getMaxJobExecutionTimeMsLocked(job)
+0 −2
Original line number Diff line number Diff line
@@ -8733,7 +8733,6 @@ package android.app.job {
    method public long getTriggerContentMaxDelay();
    method public long getTriggerContentUpdateDelay();
    method @Nullable public android.app.job.JobInfo.TriggerContentUri[] getTriggerContentUris();
    method public boolean isDataTransfer();
    method public boolean isExpedited();
    method public boolean isImportantWhileForeground();
    method public boolean isPeriodic();
@@ -8770,7 +8769,6 @@ package android.app.job {
    method public android.app.job.JobInfo build();
    method public android.app.job.JobInfo.Builder setBackoffCriteria(long, int);
    method public android.app.job.JobInfo.Builder setClipData(@Nullable android.content.ClipData, int);
    method @NonNull public android.app.job.JobInfo.Builder setDataTransfer(boolean);
    method public android.app.job.JobInfo.Builder setEstimatedNetworkBytes(long, long);
    method @NonNull public android.app.job.JobInfo.Builder setExpedited(boolean);
    method public android.app.job.JobInfo.Builder setExtras(@NonNull android.os.PersistableBundle);
+7 −59
Original line number Diff line number Diff line
@@ -234,15 +234,9 @@ public class JobSchedulerServiceTest {
                createJobInfo(5).setPriority(JobInfo.PRIORITY_HIGH));
        JobStatus jobDef = createJobStatus("testGetMinJobExecutionGuaranteeMs",
                createJobInfo(6));
        JobStatus jobDT = createJobStatus("testGetMinJobExecutionGuaranteeMs",
                createJobInfo(7)
                        .setDataTransfer(true).setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY));
        JobStatus jobUI = createJobStatus("testGetMinJobExecutionGuaranteeMs",
                createJobInfo(8)); // TODO(255371817): add setUserInitiated(true)
        JobStatus jobUIDT = createJobStatus("testGetMinJobExecutionGuaranteeMs",
                // TODO(255371817): add setUserInitiated(true)
                createJobInfo(9)
                        .setDataTransfer(true).setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY));
                        .setUserInitiated(true).setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY));

        spyOn(ejMax);
        spyOn(ejHigh);
@@ -250,8 +244,6 @@ public class JobSchedulerServiceTest {
        spyOn(ejHighDowngraded);
        spyOn(jobHigh);
        spyOn(jobDef);
        spyOn(jobDT);
        spyOn(jobUI);
        spyOn(jobUIDT);

        when(ejMax.shouldTreatAsExpeditedJob()).thenReturn(true);
@@ -260,14 +252,11 @@ public class JobSchedulerServiceTest {
        when(ejHighDowngraded.shouldTreatAsExpeditedJob()).thenReturn(false);
        when(jobHigh.shouldTreatAsExpeditedJob()).thenReturn(false);
        when(jobDef.shouldTreatAsExpeditedJob()).thenReturn(false);
        when(jobUI.shouldTreatAsUserInitiatedJob()).thenReturn(true);
        when(jobUIDT.shouldTreatAsUserInitiatedJob()).thenReturn(true);

        ConnectivityController connectivityController = mService.getConnectivityController();
        spyOn(connectivityController);
        mService.mConstants.RUNTIME_MIN_GUARANTEE_MS = 10 * MINUTE_IN_MILLIS;
        mService.mConstants.RUNTIME_MIN_DATA_TRANSFER_GUARANTEE_MS = 15 * MINUTE_IN_MILLIS;
        mService.mConstants.RUNTIME_DATA_TRANSFER_LIMIT_MS = 60 * MINUTE_IN_MILLIS;
        mService.mConstants.RUNTIME_MIN_USER_INITIATED_DATA_TRANSFER_GUARANTEE_BUFFER_FACTOR = 1.5f;
        mService.mConstants.RUNTIME_MIN_USER_INITIATED_DATA_TRANSFER_GUARANTEE_MS = HOUR_IN_MILLIS;
        mService.mConstants.RUNTIME_USER_INITIATED_DATA_TRANSFER_LIMIT_MS = 6 * HOUR_IN_MILLIS;
@@ -284,37 +273,14 @@ public class JobSchedulerServiceTest {
                mService.getMinJobExecutionGuaranteeMs(jobHigh));
        assertEquals(mService.mConstants.RUNTIME_MIN_GUARANTEE_MS,
                mService.getMinJobExecutionGuaranteeMs(jobDef));
        grantRunUserInitiatedJobsPermission(false); // Without permission
        assertEquals(mService.mConstants.RUNTIME_MIN_DATA_TRANSFER_GUARANTEE_MS,
                mService.getMinJobExecutionGuaranteeMs(jobDT));
        grantRunUserInitiatedJobsPermission(true); // With permission
        doReturn(ConnectivityController.UNKNOWN_TIME)
                .when(connectivityController).getEstimatedTransferTimeMs(any());
        assertEquals(mService.mConstants.RUNTIME_MIN_DATA_TRANSFER_GUARANTEE_MS,
                mService.getMinJobExecutionGuaranteeMs(jobDT));
        doReturn(mService.mConstants.RUNTIME_MIN_DATA_TRANSFER_GUARANTEE_MS / 2)
                .when(connectivityController).getEstimatedTransferTimeMs(any());
        assertEquals(mService.mConstants.RUNTIME_MIN_DATA_TRANSFER_GUARANTEE_MS,
                mService.getMinJobExecutionGuaranteeMs(jobDT));
        doReturn(mService.mConstants.RUNTIME_MIN_DATA_TRANSFER_GUARANTEE_MS * 2)
                .when(connectivityController).getEstimatedTransferTimeMs(any());
        assertEquals(mService.mConstants.RUNTIME_MIN_DATA_TRANSFER_GUARANTEE_MS,
                mService.getMinJobExecutionGuaranteeMs(jobDT));
        doReturn(mService.mConstants.RUNTIME_DATA_TRANSFER_LIMIT_MS * 2)
                .when(connectivityController).getEstimatedTransferTimeMs(any());
        assertEquals(mService.mConstants.RUNTIME_MIN_DATA_TRANSFER_GUARANTEE_MS,
                mService.getMinJobExecutionGuaranteeMs(jobDT));
        // UserInitiated
        grantRunUserInitiatedJobsPermission(false);
        // Permission isn't granted, so it should just be treated as a regular data transfer job.
        assertEquals(mService.mConstants.RUNTIME_MIN_DATA_TRANSFER_GUARANTEE_MS,
                mService.getMinJobExecutionGuaranteeMs(jobUIDT));
        // Permission isn't granted, so it should just be treated as a regular job.
        assertEquals(mService.mConstants.RUNTIME_MIN_GUARANTEE_MS,
                mService.getMinJobExecutionGuaranteeMs(jobUI));
                mService.getMinJobExecutionGuaranteeMs(jobUIDT));
        grantRunUserInitiatedJobsPermission(true); // With permission
        assertEquals(mService.mConstants.RUNTIME_MIN_USER_INITIATED_GUARANTEE_MS,
                mService.getMinJobExecutionGuaranteeMs(jobUI));
        assertEquals(mService.mConstants.RUNTIME_MIN_USER_INITIATED_DATA_TRANSFER_GUARANTEE_MS,
                mService.getMinJobExecutionGuaranteeMs(jobUIDT));
        doReturn(ConnectivityController.UNKNOWN_TIME)
                .when(connectivityController).getEstimatedTransferTimeMs(any());
        assertEquals(mService.mConstants.RUNTIME_MIN_USER_INITIATED_DATA_TRANSFER_GUARANTEE_MS,
@@ -338,21 +304,10 @@ public class JobSchedulerServiceTest {

    @Test
    public void testGetMaxJobExecutionTimeMs() {
        JobStatus jobDT = createJobStatus("testGetMaxJobExecutionTimeMs",
                createJobInfo(7)
                        .setDataTransfer(true).setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY));
        JobStatus jobUI = createJobStatus("testGetMaxJobExecutionTimeMs",
                createJobInfo(9)); // TODO(255371817): add setUserInitiated(true)
        JobStatus jobUIDT = createJobStatus("testGetMaxJobExecutionTimeMs",
                // TODO(255371817): add setUserInitiated(true)
                createJobInfo(10)
                        .setDataTransfer(true).setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY));

        spyOn(jobDT);
        spyOn(jobUI);
                        .setUserInitiated(true).setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY));
        spyOn(jobUIDT);

        when(jobUI.shouldTreatAsUserInitiatedJob()).thenReturn(true);
        when(jobUIDT.shouldTreatAsUserInitiatedJob()).thenReturn(true);

        QuotaController quotaController = mService.getQuotaController();
@@ -365,17 +320,9 @@ public class JobSchedulerServiceTest {
                .when(quotaController).getMaxJobExecutionTimeMsLocked(any());

        grantRunUserInitiatedJobsPermission(true);
        assertEquals(mService.mConstants.RUNTIME_DATA_TRANSFER_LIMIT_MS,
                mService.getMaxJobExecutionTimeMs(jobDT));
        assertEquals(mService.mConstants.RUNTIME_USER_INITIATED_LIMIT_MS,
                mService.getMaxJobExecutionTimeMs(jobUI));
        assertEquals(mService.mConstants.RUNTIME_USER_INITIATED_DATA_TRANSFER_LIMIT_MS,
                mService.getMaxJobExecutionTimeMs(jobUIDT));
        grantRunUserInitiatedJobsPermission(false);
        assertEquals(mService.mConstants.RUNTIME_DATA_TRANSFER_LIMIT_MS,
                mService.getMaxJobExecutionTimeMs(jobDT));
        assertEquals(mService.mConstants.RUNTIME_FREE_QUOTA_MAX_LIMIT_MS,
                mService.getMaxJobExecutionTimeMs(jobUI));
        assertEquals(mService.mConstants.RUNTIME_FREE_QUOTA_MAX_LIMIT_MS,
                mService.getMaxJobExecutionTimeMs(jobUIDT));
    }
@@ -478,7 +425,8 @@ public class JobSchedulerServiceTest {
    @Test
    public void testGetRescheduleJobForFailure_userStopped() {
        JobStatus uiJob = createJobStatus("testGetRescheduleJobForFailure",
                createJobInfo().setUserInitiated(true));
                createJobInfo().setUserInitiated(true)
                        .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY));
        JobStatus uvJob = createJobStatus("testGetRescheduleJobForFailure", createJobInfo());
        spyOn(uvJob);
        doReturn(true).when(uvJob).isUserVisibleJob();
+1 −1
Original line number Diff line number Diff line
@@ -619,7 +619,7 @@ public class FlexibilityControllerTest {
    @Test
    public void testExceptions_UserInitiated() {
        JobInfo.Builder jb = createJob(0);
        jb.setUserInitiated(true);
        jb.setUserInitiated(true).setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY);
        JobStatus js = createJobStatus("testExceptions_UserInitiated", jb);
        assertFalse(js.hasFlexibilityConstraint());
    }
Loading