summaryrefslogtreecommitdiff
path: root/apex
diff options
context:
space:
mode:
author Xin Guan <guanxin@google.com> 2024-05-29 20:46:11 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2024-05-29 20:46:11 +0000
commit79b91a8ed794b2c24a9d405dc6d902ec055d8b0e (patch)
treec3f5264f80ea49e491a17d194489b378590ebe8a /apex
parent55bdf4a92d635e44837d694b6891f27ca1dafca7 (diff)
parentc59af8efa310d0dbac5dfb2b8f7b6898560df498 (diff)
Merge "JobSchedulerService:fix arrayIndexOutOfBoundsException to aviod systemServer crash." into main am: c59af8efa3
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/3103217 Change-Id: I856a817f55aa57e49005953e9d1a20f8f90fd739 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'apex')
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/controllers/IdleController.java5
1 files changed, 4 insertions, 1 deletions
diff --git a/apex/jobscheduler/service/java/com/android/server/job/controllers/IdleController.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/IdleController.java
index adee322f60cf..f722e41c6195 100644
--- a/apex/jobscheduler/service/java/com/android/server/job/controllers/IdleController.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/IdleController.java
@@ -48,6 +48,7 @@ public final class IdleController extends RestrictingController implements Idlen
private static final String TAG = "JobScheduler.IdleController";
// Policy: we decide that we're "idle" if the device has been unused /
// screen off or dreaming or wireless charging dock idle for at least this long
+ @GuardedBy("mLock")
final ArraySet<JobStatus> mTrackedTasks = new ArraySet<>();
IdlenessTracker mIdleTracker;
private final FlexibilityController mFlexibilityController;
@@ -118,8 +119,10 @@ public final class IdleController extends RestrictingController implements Idlen
for (int i = mTrackedTasks.size()-1; i >= 0; i--) {
mTrackedTasks.valueAt(i).setIdleConstraintSatisfied(nowElapsed, isIdle);
}
+ if (!mTrackedTasks.isEmpty()) {
+ mStateChangedListener.onControllerStateChanged(mTrackedTasks);
+ }
}
- mStateChangedListener.onControllerStateChanged(mTrackedTasks);
}
/**