summaryrefslogtreecommitdiff
path: root/apex
diff options
context:
space:
mode:
authorKweku Adams <kwekua@google.com>2021-06-16 15:39:20 -0700
committerKweku Adams <kwekua@google.com>2021-06-16 15:39:20 -0700
commit183ec609e8d76ab650d3515e6750fdb1aeaaaf32 (patch)
treed19f3d9013383f67cb6d6689e814a73a800c6dbd /apex
parentcf3e019bee84d6696ff4318b72ebf67cdcecebff (diff)
Allow bucket elevation for timed-out restricted apps.
Ensure SYSTEM_INTERACTION can bring an app out of the RESTRICTED bucket (temporarily) if the app is only in the bucket due to timeout. Bug: 191297958 Test: atest AppStandbyControllerTests Change-Id: Ie76d224710228a8654d4d57ee0c73bb9441ef28f
Diffstat (limited to 'apex')
-rw-r--r--apex/jobscheduler/service/java/com/android/server/usage/AppIdleHistory.java7
1 files changed, 5 insertions, 2 deletions
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 37b3c0431455..d532e20a0158 100644
--- a/apex/jobscheduler/service/java/com/android/server/usage/AppIdleHistory.java
+++ b/apex/jobscheduler/service/java/com/android/server/usage/AppIdleHistory.java
@@ -20,6 +20,7 @@ import static android.app.usage.UsageStatsManager.REASON_MAIN_DEFAULT;
import static android.app.usage.UsageStatsManager.REASON_MAIN_FORCED_BY_USER;
import static android.app.usage.UsageStatsManager.REASON_MAIN_MASK;
import static android.app.usage.UsageStatsManager.REASON_MAIN_PREDICTED;
+import static android.app.usage.UsageStatsManager.REASON_MAIN_TIMEOUT;
import static android.app.usage.UsageStatsManager.REASON_MAIN_USAGE;
import static android.app.usage.UsageStatsManager.REASON_SUB_MASK;
import static android.app.usage.UsageStatsManager.REASON_SUB_USAGE_USER_INTERACTION;
@@ -259,8 +260,10 @@ public class AppIdleHistory {
int bucketingReason = REASON_MAIN_USAGE | usageReason;
final boolean isUserUsage = isUserUsage(bucketingReason);
- if (appUsageHistory.currentBucket == STANDBY_BUCKET_RESTRICTED && !isUserUsage) {
- // Only user usage should bring an app out of the RESTRICTED bucket.
+ if (appUsageHistory.currentBucket == STANDBY_BUCKET_RESTRICTED && !isUserUsage
+ && (appUsageHistory.bucketingReason & REASON_MAIN_MASK) != REASON_MAIN_TIMEOUT) {
+ // Only user usage should bring an app out of the RESTRICTED bucket, unless the app
+ // just timed out into RESTRICTED.
newBucket = STANDBY_BUCKET_RESTRICTED;
bucketingReason = appUsageHistory.bucketingReason;
} else {