From 8d3c8782c133286e89a43fa3d68d7029649027da Mon Sep 17 00:00:00 2001 From: Kweku Adams Date: Tue, 20 Jul 2021 07:33:54 -0700 Subject: [PATCH] Fix charging reporting logic. The JobStatus.set*Satisfied APIs return whether the value changed, not the previous value. Fix BatteryController's perception and logic of the returned value. BC ended up notifying JobSchedulerService about changes anyway, but this now has more correct logic. Bug: 141645789 Test: atest CtsJobSchedulerTestCases Change-Id: I2632977f8869470416c5223574cf42d107e71128 --- .../server/job/controllers/BatteryController.java | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/apex/jobscheduler/service/java/com/android/server/job/controllers/BatteryController.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/BatteryController.java index 6fd094844cd63..c3b8ba11f4b49 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/controllers/BatteryController.java +++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/BatteryController.java @@ -103,14 +103,8 @@ public final class BatteryController extends RestrictingController { boolean reportChange = false; for (int i = mTrackedTasks.size() - 1; i >= 0; i--) { final JobStatus ts = mTrackedTasks.valueAt(i); - boolean previous = ts.setChargingConstraintSatisfied(nowElapsed, stablePower); - if (previous != stablePower) { - reportChange = true; - } - previous = ts.setBatteryNotLowConstraintSatisfied(nowElapsed, batteryNotLow); - if (previous != batteryNotLow) { - reportChange = true; - } + reportChange |= ts.setChargingConstraintSatisfied(nowElapsed, stablePower); + reportChange |= ts.setBatteryNotLowConstraintSatisfied(nowElapsed, batteryNotLow); } if (stablePower || batteryNotLow) { // If one of our conditions has been satisfied, always schedule any newly ready jobs.