From 554fca6ce64f3c13258b82447a424467e1b52c97 Mon Sep 17 00:00:00 2001 From: Kweku Adams Date: Thu, 18 Nov 2021 12:29:13 -0800 Subject: [PATCH] Skip tracking adjustments when there's no change. Avoid incrementing the bg job count and other timer tracking adjustments if the job is already being tracked. Bug: 205295122 Test: atest --rerun-until-failure 25 FrameworksMockingServicesTests:QuotaControllerTest Change-Id: I2b9690c95d3ea31ef37a5631fa8322e925da511c --- .../com/android/server/job/controllers/QuotaController.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java index 29c1108c48732..3653e6aeb8aa1 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java +++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java @@ -2010,9 +2010,8 @@ public final class QuotaController extends StateController { if (DEBUG) { Slog.v(TAG, "Starting to track " + jobStatus.toShortString()); } - // Always track jobs, even when charging. - mRunningBgJobs.add(jobStatus); - if (shouldTrackLocked()) { + // Always maintain list of running jobs, even when quota is free. + if (mRunningBgJobs.add(jobStatus) && shouldTrackLocked()) { mBgJobCount++; if (mRegularJobTimer) { incrementJobCountLocked(mPkg.userId, mPkg.packageName, 1);