Merge "Rename JobStatus.shouldTreatAsUserInitiated for consistency."

This commit is contained in:
TreeHugger Robot
2022-12-16 18:49:52 +00:00
committed by Android (Google) Code Review
12 changed files with 37 additions and 38 deletions

View File

@@ -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")

View File

@@ -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;
}

View File

@@ -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);

View File

@@ -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++;

View File

@@ -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);
}

View File

@@ -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");

View File

@@ -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;
}

View File

@@ -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));

View File

@@ -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));
}

View File

@@ -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);

View File

@@ -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));
}
}

View File

@@ -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);