From 3e7358ed083bf77992f5a0815c996608395ad7e4 Mon Sep 17 00:00:00 2001 From: Varun Shah Date: Sat, 10 Dec 2022 20:29:23 +0000 Subject: [PATCH] Rename JobStatus.shouldTreatAsUserInitiated for consistency. Rename from shouldTreatAsUserInitiated to shouldTreatAsUserInitiatedJob. Bug: 255371817 Test: atest JobSchedulerServiceTest Change-Id: Ie88027cf12581be0b685fd0e24eaa288c44916e7 --- .../com/android/server/job/JobConcurrencyManager.java | 2 +- .../com/android/server/job/JobSchedulerService.java | 8 ++++---- .../java/com/android/server/job/JobServiceContext.java | 2 +- .../server/job/controllers/ConnectivityController.java | 6 +++--- .../com/android/server/job/controllers/JobStatus.java | 9 ++++----- .../server/job/controllers/QuotaController.java | 6 +++--- .../android/server/job/controllers/TareController.java | 10 +++++----- .../job/restrictions/ThermalStatusRestriction.java | 2 +- .../android/server/job/JobConcurrencyManagerTest.java | 10 +++++----- .../android/server/job/JobSchedulerServiceTest.java | 8 ++++---- .../server/job/controllers/QuotaControllerTest.java | 4 ++-- .../job/restrictions/ThermalStatusRestrictionTest.java | 8 ++++---- 12 files changed, 37 insertions(+), 38 deletions(-) diff --git a/apex/jobscheduler/service/java/com/android/server/job/JobConcurrencyManager.java b/apex/jobscheduler/service/java/com/android/server/job/JobConcurrencyManager.java index 651853bae68ec..397d2c4ca679b 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/JobConcurrencyManager.java +++ b/apex/jobscheduler/service/java/com/android/server/job/JobConcurrencyManager.java @@ -1114,7 +1114,7 @@ class JobConcurrencyManager { // reasonably concurrency behavior. return job.lastEvaluatedBias == JobInfo.BIAS_TOP_APP // TODO(): include BAL state for user-initiated jobs - && (job.shouldTreatAsExpeditedJob() || job.shouldTreatAsUserInitiated()); + && (job.shouldTreatAsExpeditedJob() || job.shouldTreatAsUserInitiatedJob()); } @GuardedBy("mLock") diff --git a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java index e9b966083851c..f6aba74b676cf 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java +++ b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java @@ -2851,7 +2851,7 @@ public class JobSchedulerService extends com.android.server.SystemService } final boolean shouldForceBatchJob; - if (job.shouldTreatAsExpeditedJob() || job.shouldTreatAsUserInitiated()) { + if (job.shouldTreatAsExpeditedJob() || job.shouldTreatAsUserInitiatedJob()) { // Never batch expedited or user-initiated jobs, even for RESTRICTED apps. shouldForceBatchJob = false; } else if (job.getEffectiveStandbyBucket() == RESTRICTED_INDEX) { @@ -3176,7 +3176,7 @@ public class JobSchedulerService extends com.android.server.SystemService synchronized (mLock) { final boolean shouldTreatAsDataTransfer = job.getJob().isDataTransfer() && checkRunLongJobsPermission(job.getSourceUid(), job.getSourcePackageName()); - if (job.shouldTreatAsUserInitiated()) { + if (job.shouldTreatAsUserInitiatedJob()) { if (shouldTreatAsDataTransfer) { final long estimatedTransferTimeMs = mConnectivityController.getEstimatedTransferTimeMs(job); @@ -3215,13 +3215,13 @@ public class JobSchedulerService extends com.android.server.SystemService synchronized (mLock) { final boolean allowLongerJob; final boolean isDataTransfer = job.getJob().isDataTransfer(); - if (isDataTransfer || job.shouldTreatAsUserInitiated()) { + if (isDataTransfer || job.shouldTreatAsUserInitiatedJob()) { allowLongerJob = checkRunLongJobsPermission(job.getSourceUid(), job.getSourcePackageName()); } else { allowLongerJob = false; } - if (job.shouldTreatAsUserInitiated()) { + if (job.shouldTreatAsUserInitiatedJob()) { if (isDataTransfer && allowLongerJob) { return mConstants.RUNTIME_USER_INITIATED_DATA_TRANSFER_LIMIT_MS; } diff --git a/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java b/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java index dae2bb2fb571b..15fc3c9a5ec61 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java +++ b/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java @@ -307,7 +307,7 @@ public final class JobServiceContext implements ServiceConnection { mParams = new JobParameters(mRunningCallback, job.getJobId(), ji.getExtras(), ji.getTransientExtras(), ji.getClipData(), ji.getClipGrantFlags(), isDeadlineExpired, job.shouldTreatAsExpeditedJob(), - job.shouldTreatAsUserInitiated(), triggeredUris, triggeredAuthorities, + job.shouldTreatAsUserInitiatedJob(), triggeredUris, triggeredAuthorities, job.network); mExecutionStartTimeElapsed = sElapsedRealtimeClock.millis(); mMinExecutionGuaranteeMillis = mService.getMinJobExecutionGuaranteeMs(job); diff --git a/apex/jobscheduler/service/java/com/android/server/job/controllers/ConnectivityController.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/ConnectivityController.java index 3610b0a0064ba..b491291458116 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/controllers/ConnectivityController.java +++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/ConnectivityController.java @@ -427,7 +427,7 @@ public final class ConnectivityController extends RestrictingController implemen final UidStats uidStats = getUidStats(jobStatus.getSourceUid(), jobStatus.getSourcePackageName(), true); - if (jobStatus.shouldTreatAsExpeditedJob() && jobStatus.shouldTreatAsUserInitiated()) { + if (jobStatus.shouldTreatAsExpeditedJob() && jobStatus.shouldTreatAsUserInitiatedJob()) { if (!jobStatus.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY)) { // Don't request a direct hole through any of the firewalls. Instead, mark the // constraint as satisfied if the network is available, and the job will get @@ -971,14 +971,14 @@ public final class ConnectivityController extends RestrictingController implemen if (job.shouldTreatAsExpeditedJob() || job.startedAsExpeditedJob) { us.earliestEJEnqueueTime = Math.min(us.earliestEJEnqueueTime, job.enqueueTime); - } else if (job.shouldTreatAsUserInitiated()) { + } else if (job.shouldTreatAsUserInitiatedJob()) { us.earliestUIJEnqueueTime = Math.min(us.earliestUIJEnqueueTime, job.enqueueTime); } } if (job.shouldTreatAsExpeditedJob() || job.startedAsExpeditedJob) { us.numEJs++; - } else if (job.shouldTreatAsUserInitiated()) { + } else if (job.shouldTreatAsUserInitiatedJob()) { us.numUIJs++; } else { us.numRegular++; diff --git a/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java index 0b1b7b1733e70..9b6186ea632d5 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java +++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java @@ -1350,9 +1350,8 @@ public final class JobStatus { * @return true if the job was scheduled as a user-initiated job and it hasn't been downgraded * for any reason. */ - public boolean shouldTreatAsUserInitiated() { + public boolean shouldTreatAsUserInitiatedJob() { // TODO(248386641): update implementation to handle loss of privilege - // and also rename to `shouldTreatAsUserInitiatedJob` for consistency return getJob().isUserInitiated(); } @@ -1372,7 +1371,7 @@ public final class JobStatus { * @return true if this is a job whose execution should be made visible to the user. */ public boolean isUserVisibleJob() { - return shouldTreatAsUserInitiated(); + return shouldTreatAsUserInitiatedJob(); } /** @@ -1383,14 +1382,14 @@ public final class JobStatus { return appHasDozeExemption || (getFlags() & JobInfo.FLAG_WILL_BE_FOREGROUND) != 0 || ((shouldTreatAsExpeditedJob() || startedAsExpeditedJob) - || shouldTreatAsUserInitiated() + || shouldTreatAsUserInitiatedJob() && (mDynamicConstraints & CONSTRAINT_DEVICE_NOT_DOZING) == 0); } boolean canRunInBatterySaver() { return (getInternalFlags() & INTERNAL_FLAG_HAS_FOREGROUND_EXEMPTION) != 0 || ((shouldTreatAsExpeditedJob() || startedAsExpeditedJob) - || shouldTreatAsUserInitiated() + || shouldTreatAsUserInitiatedJob() && (mDynamicConstraints & CONSTRAINT_BACKGROUND_NOT_RESTRICTED) == 0); } diff --git a/apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java index 404186d27923f..cbfad9463013f 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java +++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java @@ -641,7 +641,7 @@ public final class QuotaController extends StateController { mTopStartedJobs.add(jobStatus); // Top jobs won't count towards quota so there's no need to involve the Timer. return; - } else if (jobStatus.shouldTreatAsUserInitiated()) { + } else if (jobStatus.shouldTreatAsUserInitiatedJob()) { // User-initiated jobs won't count towards quota. return; } @@ -895,7 +895,7 @@ public final class QuotaController extends StateController { // 1. it was started while the app was in the TOP state // 2. the app is currently in the foreground // 3. the app overall is within its quota - return jobStatus.shouldTreatAsUserInitiated() + return jobStatus.shouldTreatAsUserInitiatedJob() || isTopStartedJobLocked(jobStatus) || isUidInForeground(jobStatus.getSourceUid()) || isWithinQuotaLocked( @@ -2120,7 +2120,7 @@ public final class QuotaController extends StateController { } void startTrackingJobLocked(@NonNull JobStatus jobStatus) { - if (jobStatus.shouldTreatAsUserInitiated()) { + if (jobStatus.shouldTreatAsUserInitiatedJob()) { if (DEBUG) { Slog.v(TAG, "Timer ignoring " + jobStatus.toShortString() + " because it's user-initiated"); diff --git a/apex/jobscheduler/service/java/com/android/server/job/controllers/TareController.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/TareController.java index de065b2ffa260..792155b82c1e7 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/controllers/TareController.java +++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/TareController.java @@ -313,7 +313,7 @@ public class TareController extends StateController { @GuardedBy("mLock") public void maybeStartTrackingJobLocked(JobStatus jobStatus, JobStatus lastJob) { final long nowElapsed = sElapsedRealtimeClock.millis(); - if (jobStatus.shouldTreatAsUserInitiated()) { + if (jobStatus.shouldTreatAsUserInitiatedJob()) { // User-initiated jobs should always be allowed to run. jobStatus.setTareWealthConstraintSatisfied(nowElapsed, true); return; @@ -331,7 +331,7 @@ public class TareController extends StateController { @Override @GuardedBy("mLock") public void prepareForExecutionLocked(JobStatus jobStatus) { - if (jobStatus.shouldTreatAsUserInitiated()) { + if (jobStatus.shouldTreatAsUserInitiatedJob()) { // TODO(202954395): consider noting execution with the EconomyManager even though it // won't affect this job return; @@ -365,7 +365,7 @@ public class TareController extends StateController { @Override @GuardedBy("mLock") public void unprepareFromExecutionLocked(JobStatus jobStatus) { - if (jobStatus.shouldTreatAsUserInitiated()) { + if (jobStatus.shouldTreatAsUserInitiatedJob()) { return; } final int userId = jobStatus.getSourceUserId(); @@ -397,7 +397,7 @@ public class TareController extends StateController { @Override @GuardedBy("mLock") public void maybeStopTrackingJobLocked(JobStatus jobStatus, JobStatus incomingJob) { - if (jobStatus.shouldTreatAsUserInitiated()) { + if (jobStatus.shouldTreatAsUserInitiatedJob()) { return; } final int userId = jobStatus.getSourceUserId(); @@ -653,7 +653,7 @@ public class TareController extends StateController { if (!mIsEnabled) { return true; } - if (jobStatus.shouldTreatAsUserInitiated()) { + if (jobStatus.shouldTreatAsUserInitiatedJob()) { // Always allow user-initiated jobs. return true; } diff --git a/apex/jobscheduler/service/java/com/android/server/job/restrictions/ThermalStatusRestriction.java b/apex/jobscheduler/service/java/com/android/server/job/restrictions/ThermalStatusRestriction.java index 85b762d1e524e..eb43c38f76a31 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/restrictions/ThermalStatusRestriction.java +++ b/apex/jobscheduler/service/java/com/android/server/job/restrictions/ThermalStatusRestriction.java @@ -98,7 +98,7 @@ public class ThermalStatusRestriction extends JobRestriction { // Only let high priority jobs run if: // They are already running and aren't yet in overtime // Don't let any other job run. - if (job.shouldTreatAsExpeditedJob() || job.shouldTreatAsUserInitiated()) { + if (job.shouldTreatAsExpeditedJob() || job.shouldTreatAsUserInitiatedJob()) { return job.getNumPreviousAttempts() > 0 || (mService.isCurrentlyRunningLocked(job) && mService.isJobInOvertimeLocked(job)); diff --git a/services/tests/mockingservicestests/src/com/android/server/job/JobConcurrencyManagerTest.java b/services/tests/mockingservicestests/src/com/android/server/job/JobConcurrencyManagerTest.java index 480a4f358bc07..0dfad43599de6 100644 --- a/services/tests/mockingservicestests/src/com/android/server/job/JobConcurrencyManagerTest.java +++ b/services/tests/mockingservicestests/src/com/android/server/job/JobConcurrencyManagerTest.java @@ -505,27 +505,27 @@ public final class JobConcurrencyManagerTest { assertFalse(mJobConcurrencyManager.hasImmediacyPrivilegeLocked(job)); doReturn(false).when(job).shouldTreatAsExpeditedJob(); - doReturn(false).when(job).shouldTreatAsUserInitiated(); + doReturn(false).when(job).shouldTreatAsUserInitiatedJob(); job.lastEvaluatedBias = JobInfo.BIAS_TOP_APP; assertFalse(mJobConcurrencyManager.hasImmediacyPrivilegeLocked(job)); doReturn(true).when(job).shouldTreatAsExpeditedJob(); - doReturn(false).when(job).shouldTreatAsUserInitiated(); + doReturn(false).when(job).shouldTreatAsUserInitiatedJob(); job.lastEvaluatedBias = JobInfo.BIAS_DEFAULT; assertFalse(mJobConcurrencyManager.hasImmediacyPrivilegeLocked(job)); doReturn(false).when(job).shouldTreatAsExpeditedJob(); - doReturn(true).when(job).shouldTreatAsUserInitiated(); + doReturn(true).when(job).shouldTreatAsUserInitiatedJob(); job.lastEvaluatedBias = JobInfo.BIAS_DEFAULT; assertFalse(mJobConcurrencyManager.hasImmediacyPrivilegeLocked(job)); doReturn(false).when(job).shouldTreatAsExpeditedJob(); - doReturn(true).when(job).shouldTreatAsUserInitiated(); + doReturn(true).when(job).shouldTreatAsUserInitiatedJob(); job.lastEvaluatedBias = JobInfo.BIAS_TOP_APP; assertTrue(mJobConcurrencyManager.hasImmediacyPrivilegeLocked(job)); doReturn(true).when(job).shouldTreatAsExpeditedJob(); - doReturn(false).when(job).shouldTreatAsUserInitiated(); + doReturn(false).when(job).shouldTreatAsUserInitiatedJob(); job.lastEvaluatedBias = JobInfo.BIAS_TOP_APP; assertTrue(mJobConcurrencyManager.hasImmediacyPrivilegeLocked(job)); } diff --git a/services/tests/mockingservicestests/src/com/android/server/job/JobSchedulerServiceTest.java b/services/tests/mockingservicestests/src/com/android/server/job/JobSchedulerServiceTest.java index 0eeebca61094a..2c103298b5571 100644 --- a/services/tests/mockingservicestests/src/com/android/server/job/JobSchedulerServiceTest.java +++ b/services/tests/mockingservicestests/src/com/android/server/job/JobSchedulerServiceTest.java @@ -249,8 +249,8 @@ public class JobSchedulerServiceTest { when(ejHighDowngraded.shouldTreatAsExpeditedJob()).thenReturn(false); when(jobHigh.shouldTreatAsExpeditedJob()).thenReturn(false); when(jobDef.shouldTreatAsExpeditedJob()).thenReturn(false); - when(jobUI.shouldTreatAsUserInitiated()).thenReturn(true); - when(jobUIDT.shouldTreatAsUserInitiated()).thenReturn(true); + when(jobUI.shouldTreatAsUserInitiatedJob()).thenReturn(true); + when(jobUIDT.shouldTreatAsUserInitiatedJob()).thenReturn(true); ConnectivityController connectivityController = mService.getConnectivityController(); spyOn(connectivityController); @@ -335,8 +335,8 @@ public class JobSchedulerServiceTest { spyOn(jobUI); spyOn(jobUIDT); - when(jobUI.shouldTreatAsUserInitiated()).thenReturn(true); - when(jobUIDT.shouldTreatAsUserInitiated()).thenReturn(true); + when(jobUI.shouldTreatAsUserInitiatedJob()).thenReturn(true); + when(jobUIDT.shouldTreatAsUserInitiatedJob()).thenReturn(true); QuotaController quotaController = mService.getQuotaController(); spyOn(quotaController); diff --git a/services/tests/mockingservicestests/src/com/android/server/job/controllers/QuotaControllerTest.java b/services/tests/mockingservicestests/src/com/android/server/job/controllers/QuotaControllerTest.java index d72ccf813445b..9aef674ed9862 100644 --- a/services/tests/mockingservicestests/src/com/android/server/job/controllers/QuotaControllerTest.java +++ b/services/tests/mockingservicestests/src/com/android/server/job/controllers/QuotaControllerTest.java @@ -2179,10 +2179,10 @@ public class QuotaControllerTest { mQuotaController.incrementJobCountLocked(SOURCE_USER_ID, SOURCE_PACKAGE, jobCount); assertFalse(mQuotaController .isWithinQuotaLocked(SOURCE_USER_ID, SOURCE_PACKAGE, WORKING_INDEX)); - doReturn(false).when(job).shouldTreatAsUserInitiated(); + doReturn(false).when(job).shouldTreatAsUserInitiatedJob(); assertFalse(mQuotaController.isWithinQuotaLocked(job)); // User-initiated job should still be allowed. - doReturn(true).when(job).shouldTreatAsUserInitiated(); + doReturn(true).when(job).shouldTreatAsUserInitiatedJob(); assertTrue(mQuotaController.isWithinQuotaLocked(job)); } } diff --git a/services/tests/mockingservicestests/src/com/android/server/job/restrictions/ThermalStatusRestrictionTest.java b/services/tests/mockingservicestests/src/com/android/server/job/restrictions/ThermalStatusRestrictionTest.java index 49426901b1422..90672851cdfff 100644 --- a/services/tests/mockingservicestests/src/com/android/server/job/restrictions/ThermalStatusRestrictionTest.java +++ b/services/tests/mockingservicestests/src/com/android/server/job/restrictions/ThermalStatusRestrictionTest.java @@ -198,10 +198,10 @@ public class ThermalStatusRestrictionTest { when(ejRetried.shouldTreatAsExpeditedJob()).thenReturn(true); when(ejRunning.shouldTreatAsExpeditedJob()).thenReturn(true); when(ejRunningLong.shouldTreatAsExpeditedJob()).thenReturn(true); - when(ui.shouldTreatAsUserInitiated()).thenReturn(true); - when(uiRetried.shouldTreatAsUserInitiated()).thenReturn(true); - when(uiRunning.shouldTreatAsUserInitiated()).thenReturn(true); - when(uiRunningLong.shouldTreatAsUserInitiated()).thenReturn(true); + when(ui.shouldTreatAsUserInitiatedJob()).thenReturn(true); + when(uiRetried.shouldTreatAsUserInitiatedJob()).thenReturn(true); + when(uiRunning.shouldTreatAsUserInitiatedJob()).thenReturn(true); + when(uiRunningLong.shouldTreatAsUserInitiatedJob()).thenReturn(true); when(ejRetried.getNumPreviousAttempts()).thenReturn(1); when(uiRetried.getNumPreviousAttempts()).thenReturn(2); when(mJobSchedulerService.isCurrentlyRunningLocked(jobLowPriorityRunning)).thenReturn(true);