summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java22
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java22
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java11
3 files changed, 46 insertions, 9 deletions
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 358f009e8797..d9fe30da2cb7 100644
--- a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java
@@ -1310,7 +1310,16 @@ public class JobSchedulerService extends com.android.server.SystemService
jobStatus.getJob().isPrefetch(),
jobStatus.getJob().getPriority(),
jobStatus.getEffectivePriority(),
- jobStatus.getNumPreviousAttempts());
+ jobStatus.getNumPreviousAttempts(),
+ jobStatus.getJob().getMaxExecutionDelayMillis(),
+ /* isDeadlineConstraintSatisfied */ false,
+ /* isCharging */ false,
+ /* batteryNotLow */ false,
+ /* storageNotLow */false,
+ /* timingDelayConstraintSatisfied */ false,
+ /* isDeviceIdle */ false,
+ /* hasConnectivityConstraintSatisfied */ false,
+ /* hasContentTriggerConstraintSatisfied */ false);
// If the job is immediately ready to run, then we can just immediately
// put it in the pending list and try to schedule it. This is especially
@@ -1509,7 +1518,16 @@ public class JobSchedulerService extends com.android.server.SystemService
cancelled.getJob().isPrefetch(),
cancelled.getJob().getPriority(),
cancelled.getEffectivePriority(),
- cancelled.getNumPreviousAttempts());
+ cancelled.getNumPreviousAttempts(),
+ cancelled.getJob().getMaxExecutionDelayMillis(),
+ cancelled.isConstraintSatisfied(JobStatus.CONSTRAINT_DEADLINE),
+ cancelled.isConstraintSatisfied(JobInfo.CONSTRAINT_FLAG_CHARGING),
+ cancelled.isConstraintSatisfied(JobInfo.CONSTRAINT_FLAG_BATTERY_NOT_LOW),
+ cancelled.isConstraintSatisfied(JobInfo.CONSTRAINT_FLAG_STORAGE_NOT_LOW),
+ cancelled.isConstraintSatisfied(JobStatus.CONSTRAINT_TIMING_DELAY),
+ cancelled.isConstraintSatisfied(JobInfo.CONSTRAINT_FLAG_DEVICE_IDLE),
+ cancelled.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY),
+ cancelled.isConstraintSatisfied(JobStatus.CONSTRAINT_CONTENT_TRIGGER));
}
// If this is a replacement, bring in the new version of the job
if (incomingJob != null) {
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 1615122ea2b4..9aa6b1c298ef 100644
--- a/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java
@@ -388,7 +388,16 @@ public final class JobServiceContext implements ServiceConnection {
job.getJob().isPrefetch(),
job.getJob().getPriority(),
job.getEffectivePriority(),
- job.getNumPreviousAttempts());
+ job.getNumPreviousAttempts(),
+ job.getJob().getMaxExecutionDelayMillis(),
+ isDeadlineExpired,
+ job.isConstraintSatisfied(JobInfo.CONSTRAINT_FLAG_CHARGING),
+ job.isConstraintSatisfied(JobInfo.CONSTRAINT_FLAG_BATTERY_NOT_LOW),
+ job.isConstraintSatisfied(JobInfo.CONSTRAINT_FLAG_STORAGE_NOT_LOW),
+ job.isConstraintSatisfied(JobStatus.CONSTRAINT_TIMING_DELAY),
+ job.isConstraintSatisfied(JobInfo.CONSTRAINT_FLAG_DEVICE_IDLE),
+ job.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY),
+ job.isConstraintSatisfied(JobStatus.CONSTRAINT_CONTENT_TRIGGER));
if (Trace.isTagEnabled(Trace.TRACE_TAG_SYSTEM_SERVER)) {
// Use the context's ID to distinguish traces since there'll only be one job
// running per context.
@@ -1081,7 +1090,16 @@ public final class JobServiceContext implements ServiceConnection {
completedJob.getJob().isPrefetch(),
completedJob.getJob().getPriority(),
completedJob.getEffectivePriority(),
- completedJob.getNumPreviousAttempts());
+ completedJob.getNumPreviousAttempts(),
+ completedJob.getJob().getMaxExecutionDelayMillis(),
+ mParams.isOverrideDeadlineExpired(),
+ completedJob.isConstraintSatisfied(JobInfo.CONSTRAINT_FLAG_CHARGING),
+ completedJob.isConstraintSatisfied(JobInfo.CONSTRAINT_FLAG_BATTERY_NOT_LOW),
+ completedJob.isConstraintSatisfied(JobInfo.CONSTRAINT_FLAG_STORAGE_NOT_LOW),
+ completedJob.isConstraintSatisfied(JobStatus.CONSTRAINT_TIMING_DELAY),
+ completedJob.isConstraintSatisfied(JobInfo.CONSTRAINT_FLAG_DEVICE_IDLE),
+ completedJob.isConstraintSatisfied(JobStatus.CONSTRAINT_CONNECTIVITY),
+ completedJob.isConstraintSatisfied(JobStatus.CONSTRAINT_CONTENT_TRIGGER));
if (Trace.isTagEnabled(Trace.TRACE_TAG_SYSTEM_SERVER)) {
Trace.asyncTraceForTrackEnd(Trace.TRACE_TAG_SYSTEM_SERVER, "JobScheduler",
completedJob.getTag(), getId());
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 92716f475b88..f6410ffbd3dd 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
@@ -95,11 +95,11 @@ public final class JobStatus {
static final int CONSTRAINT_IDLE = JobInfo.CONSTRAINT_FLAG_DEVICE_IDLE; // 1 << 2
static final int CONSTRAINT_BATTERY_NOT_LOW = JobInfo.CONSTRAINT_FLAG_BATTERY_NOT_LOW; // 1 << 1
static final int CONSTRAINT_STORAGE_NOT_LOW = JobInfo.CONSTRAINT_FLAG_STORAGE_NOT_LOW; // 1 << 3
- static final int CONSTRAINT_TIMING_DELAY = 1<<31;
- static final int CONSTRAINT_DEADLINE = 1<<30;
- static final int CONSTRAINT_CONNECTIVITY = 1 << 28;
+ public static final int CONSTRAINT_TIMING_DELAY = 1 << 31;
+ public static final int CONSTRAINT_DEADLINE = 1 << 30;
+ public static final int CONSTRAINT_CONNECTIVITY = 1 << 28;
static final int CONSTRAINT_TARE_WEALTH = 1 << 27; // Implicit constraint
- static final int CONSTRAINT_CONTENT_TRIGGER = 1<<26;
+ public static final int CONSTRAINT_CONTENT_TRIGGER = 1 << 26;
static final int CONSTRAINT_DEVICE_NOT_DOZING = 1 << 25; // Implicit constraint
static final int CONSTRAINT_WITHIN_QUOTA = 1 << 24; // Implicit constraint
static final int CONSTRAINT_PREFETCH = 1 << 23;
@@ -1613,7 +1613,8 @@ public final class JobStatus {
}
}
- boolean isConstraintSatisfied(int constraint) {
+ /** @return whether or not the @param constraint is satisfied */
+ public boolean isConstraintSatisfied(int constraint) {
return (satisfiedConstraints&constraint) != 0;
}