Don't change bucketing reason if app is already in better bucket.
Bug: 233256741
Test: atest tests/tests/app.usage/src/android/app/usage/cts/UsageStatsTest.java
Test: atest ./services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java
Test: atest ./services/tests/servicestests/src/com/android/server/usage/AppIdleHistoryTests.java
Change-Id: I9850f160498d5e8a4d0dfa45307fcde9851635f8
diff --git a/apex/jobscheduler/service/java/com/android/server/usage/AppIdleHistory.java b/apex/jobscheduler/service/java/com/android/server/usage/AppIdleHistory.java
index c90291e..fb342b9 100644
--- a/apex/jobscheduler/service/java/com/android/server/usage/AppIdleHistory.java
+++ b/apex/jobscheduler/service/java/com/android/server/usage/AppIdleHistory.java
@@ -328,11 +328,13 @@
appUsageHistory.lastUsedScreenTime = getScreenOnTime(nowElapsedRealtimeMs);
}
- if (appUsageHistory.currentBucket > newBucket) {
- appUsageHistory.currentBucket = newBucket;
- logAppStandbyBucketChanged(packageName, userId, newBucket, bucketingReason);
+ if (appUsageHistory.currentBucket >= newBucket) {
+ if (appUsageHistory.currentBucket > newBucket) {
+ appUsageHistory.currentBucket = newBucket;
+ logAppStandbyBucketChanged(packageName, userId, newBucket, bucketingReason);
+ }
+ appUsageHistory.bucketingReason = bucketingReason;
}
- appUsageHistory.bucketingReason = bucketingReason;
return appUsageHistory;
}