diff options
author | 2024-05-29 20:41:21 +0000 | |
---|---|---|
committer | 2024-05-29 20:41:21 +0000 | |
commit | c59af8efa310d0dbac5dfb2b8f7b6898560df498 (patch) | |
tree | 163cff1db57d28e34712a796496da05694e7df52 | |
parent | d5dd7d8b7f67c51183a7d944563ed66dcafd381f (diff) | |
parent | a8e15e02883553a490785f2b06d4b2f1286dc872 (diff) |
Merge "JobSchedulerService:fix arrayIndexOutOfBoundsException to aviod systemServer crash." into main
-rw-r--r-- | apex/jobscheduler/service/java/com/android/server/job/controllers/IdleController.java | 5 |
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); } /** |