summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorXiaohui Chen <xiaohuic@google.com>2015-06-19 12:44:59 -0700
committerXiaohui Chen <xiaohuic@google.com>2015-06-22 15:35:19 -0700
commit8dca36dc8a5d17315775ce216689addc5bd9be00 (patch)
tree020e812cedd03afe06a6c783465ec85356c26b86 /core/java/android
parent20fab81a09e1ca04e811c6c6d94acb08037739e7 (diff)
system_server: optimize app idle parole state change
Currently when app idle parole state changes, all idle apps' states are updated one by one including firewall modifications which are very expensive. This optimization gets rid of individual firewall rule changes and makes sure we only modify the firewall once at child chain level. BUG: 21446713 Change-Id: Iafc415fe0bc127826fe17894d4fedcf1755cb17d
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/app/usage/UsageStatsManagerInternal.java11
1 files changed, 9 insertions, 2 deletions
diff --git a/core/java/android/app/usage/UsageStatsManagerInternal.java b/core/java/android/app/usage/UsageStatsManagerInternal.java
index 8a31390dbf26..9113426da129 100644
--- a/core/java/android/app/usage/UsageStatsManagerInternal.java
+++ b/core/java/android/app/usage/UsageStatsManagerInternal.java
@@ -77,6 +77,12 @@ public abstract class UsageStatsManagerInternal {
public abstract boolean isAppIdle(String packageName, int userId);
/**
+ * @return True if currently app idle parole mode is on. This means all idle apps are allow to
+ * run for a short period of time.
+ */
+ public abstract boolean isAppIdleParoleOn();
+
+ /**
* Sets up a listener for changes to packages being accessed.
* @param listener A listener within the system process.
*/
@@ -90,8 +96,9 @@ public abstract class UsageStatsManagerInternal {
public abstract void removeAppIdleStateChangeListener(
AppIdleStateChangeListener listener);
- public interface AppIdleStateChangeListener {
- void onAppIdleStateChanged(String packageName, int userId, boolean idle);
+ public static abstract class AppIdleStateChangeListener {
+ public abstract void onAppIdleStateChanged(String packageName, int userId, boolean idle);
+ public abstract void onParoleStateChanged(boolean isParoleOn);
}
}