diff options
| -rw-r--r-- | apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java | 7 |
1 files changed, 7 insertions, 0 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 8c08e757e405..fc29c9cf1035 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java +++ b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java @@ -2833,6 +2833,13 @@ public class JobSchedulerService extends com.android.server.SystemService } js.overrideState = (force) ? JobStatus.OVERRIDE_FULL : JobStatus.OVERRIDE_SOFT; + + // Re-evaluate constraints after the override is set in case one of the overridden + // constraints was preventing another constraint from thinking it needed to update. + for (int c = mControllers.size() - 1; c >= 0; --c) { + mControllers.get(c).reevaluateStateLocked(uid); + } + if (!js.isConstraintsSatisfied()) { js.overrideState = 0; return JobSchedulerShellCommand.CMD_ERR_CONSTRAINTS; |