Loading apex/jobscheduler/framework/java/com/android/server/usage/AppStandbyInternal.java +19 −1 Original line number Diff line number Diff line package com.android.server.usage; import android.annotation.UserIdInt; import android.app.usage.AppStandbyInfo; import android.app.usage.UsageEvents; import android.app.usage.UsageStatsManager.StandbyBuckets; import android.app.usage.UsageStatsManagerInternal.AppIdleStateChangeListener; import android.content.Context; import android.os.Looper; Loading Loading @@ -33,6 +33,24 @@ public interface AppStandbyInternal { } } /** * Listener interface for notifications that an app's idle state changed. */ abstract static class AppIdleStateChangeListener { /** Callback to inform listeners that the idle state has changed to a new bucket. */ public abstract void onAppIdleStateChanged(String packageName, @UserIdInt int userId, boolean idle, int bucket, int reason); /** * Optional callback to inform the listener that the app has transitioned into * an active state due to user interaction. */ public void onUserInteractionStarted(String packageName, @UserIdInt int userId) { // No-op by default } } void onBootPhase(int phase); void postCheckIdleStates(int userId); Loading apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java +5 −2 Original line number Diff line number Diff line Loading @@ -37,7 +37,6 @@ import android.app.job.JobSnapshot; import android.app.job.JobWorkItem; import android.app.usage.UsageStatsManager; import android.app.usage.UsageStatsManagerInternal; import android.app.usage.UsageStatsManagerInternal.AppIdleStateChangeListener; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.ContentResolver; Loading Loading @@ -103,6 +102,8 @@ import com.android.server.job.controllers.StorageController; import com.android.server.job.controllers.TimeController; import com.android.server.job.restrictions.JobRestriction; import com.android.server.job.restrictions.ThermalStatusRestriction; import com.android.server.usage.AppStandbyInternal; import com.android.server.usage.AppStandbyInternal.AppIdleStateChangeListener; import libcore.util.EmptyArray; Loading Loading @@ -1295,7 +1296,9 @@ public class JobSchedulerService extends com.android.server.SystemService // Set up the app standby bucketing tracker mStandbyTracker = new StandbyTracker(); mUsageStats = LocalServices.getService(UsageStatsManagerInternal.class); mUsageStats.addAppIdleStateChangeListener(mStandbyTracker); AppStandbyInternal appStandby = LocalServices.getService(AppStandbyInternal.class); appStandby.addListener(mStandbyTracker); // The job store needs to call back publishLocalService(JobSchedulerInternal.class, new LocalService()); Loading apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java +4 −5 Original line number Diff line number Diff line Loading @@ -35,8 +35,6 @@ import android.app.ActivityManagerInternal; import android.app.AlarmManager; import android.app.AppGlobals; import android.app.IUidObserver; import android.app.usage.UsageStatsManagerInternal; import android.app.usage.UsageStatsManagerInternal.AppIdleStateChangeListener; import android.content.BroadcastReceiver; import android.content.ContentResolver; import android.content.Context; Loading Loading @@ -70,6 +68,8 @@ import com.android.server.job.ConstantsProto; import com.android.server.job.JobSchedulerService; import com.android.server.job.JobServiceContext; import com.android.server.job.StateControllerProto; import com.android.server.usage.AppStandbyInternal; import com.android.server.usage.AppStandbyInternal.AppIdleStateChangeListener; import java.util.ArrayList; import java.util.List; Loading Loading @@ -574,9 +574,8 @@ public final class QuotaController extends StateController { mContext.registerReceiverAsUser(mPackageAddedReceiver, UserHandle.ALL, filter, null, null); // Set up the app standby bucketing tracker UsageStatsManagerInternal usageStats = LocalServices.getService( UsageStatsManagerInternal.class); usageStats.addAppIdleStateChangeListener(new StandbyTracker()); AppStandbyInternal appStandby = LocalServices.getService(AppStandbyInternal.class); appStandby.addListener(new StandbyTracker()); try { ActivityManager.getService().registerUidObserver(mUidObserver, Loading apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java +1 −1 Original line number Diff line number Diff line Loading @@ -53,7 +53,6 @@ import android.app.AppGlobals; import android.app.usage.AppStandbyInfo; import android.app.usage.UsageEvents; import android.app.usage.UsageStatsManager.StandbyBuckets; import android.app.usage.UsageStatsManagerInternal.AppIdleStateChangeListener; import android.appwidget.AppWidgetManager; import android.content.BroadcastReceiver; import android.content.ContentResolver; Loading Loading @@ -102,6 +101,7 @@ import com.android.internal.util.ConcurrentUtils; import com.android.internal.util.IndentingPrintWriter; import com.android.server.LocalServices; import com.android.server.usage.AppIdleHistory.AppUsageHistory; import com.android.server.usage.AppStandbyInternal.AppIdleStateChangeListener; import java.io.File; import java.io.PrintWriter; Loading core/java/android/app/usage/UsageStatsManagerInternal.java→services/core/java/android/app/usage/UsageStatsManagerInternal.java +2 −29 Original line number Diff line number Diff line Loading @@ -23,6 +23,8 @@ import android.content.res.Configuration; import android.os.UserHandle; import android.os.UserManager; import com.android.server.usage.AppStandbyInternal.AppIdleStateChangeListener; import java.util.List; import java.util.Set; Loading Loading @@ -153,35 +155,6 @@ public abstract class UsageStatsManagerInternal { */ public abstract int[] getIdleUidsForUser(@UserIdInt int userId); /** * Sets up a listener for changes to packages being accessed. * @param listener A listener within the system process. */ public abstract void addAppIdleStateChangeListener( AppIdleStateChangeListener listener); /** * Removes a listener that was previously added for package usage state changes. * @param listener The listener within the system process to remove. */ public abstract void removeAppIdleStateChangeListener( AppIdleStateChangeListener listener); public static abstract class AppIdleStateChangeListener { /** Callback to inform listeners that the idle state has changed to a new bucket. */ public abstract void onAppIdleStateChanged(String packageName, @UserIdInt int userId, boolean idle, int bucket, int reason); /** * Optional callback to inform the listener that the app has transitioned into * an active state due to user interaction. */ public void onUserInteractionStarted(String packageName, @UserIdInt int userId) { // No-op by default } } /** Backup/Restore API */ public abstract byte[] getBackupPayload(@UserIdInt int userId, String key); Loading Loading
apex/jobscheduler/framework/java/com/android/server/usage/AppStandbyInternal.java +19 −1 Original line number Diff line number Diff line package com.android.server.usage; import android.annotation.UserIdInt; import android.app.usage.AppStandbyInfo; import android.app.usage.UsageEvents; import android.app.usage.UsageStatsManager.StandbyBuckets; import android.app.usage.UsageStatsManagerInternal.AppIdleStateChangeListener; import android.content.Context; import android.os.Looper; Loading Loading @@ -33,6 +33,24 @@ public interface AppStandbyInternal { } } /** * Listener interface for notifications that an app's idle state changed. */ abstract static class AppIdleStateChangeListener { /** Callback to inform listeners that the idle state has changed to a new bucket. */ public abstract void onAppIdleStateChanged(String packageName, @UserIdInt int userId, boolean idle, int bucket, int reason); /** * Optional callback to inform the listener that the app has transitioned into * an active state due to user interaction. */ public void onUserInteractionStarted(String packageName, @UserIdInt int userId) { // No-op by default } } void onBootPhase(int phase); void postCheckIdleStates(int userId); Loading
apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java +5 −2 Original line number Diff line number Diff line Loading @@ -37,7 +37,6 @@ import android.app.job.JobSnapshot; import android.app.job.JobWorkItem; import android.app.usage.UsageStatsManager; import android.app.usage.UsageStatsManagerInternal; import android.app.usage.UsageStatsManagerInternal.AppIdleStateChangeListener; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.ContentResolver; Loading Loading @@ -103,6 +102,8 @@ import com.android.server.job.controllers.StorageController; import com.android.server.job.controllers.TimeController; import com.android.server.job.restrictions.JobRestriction; import com.android.server.job.restrictions.ThermalStatusRestriction; import com.android.server.usage.AppStandbyInternal; import com.android.server.usage.AppStandbyInternal.AppIdleStateChangeListener; import libcore.util.EmptyArray; Loading Loading @@ -1295,7 +1296,9 @@ public class JobSchedulerService extends com.android.server.SystemService // Set up the app standby bucketing tracker mStandbyTracker = new StandbyTracker(); mUsageStats = LocalServices.getService(UsageStatsManagerInternal.class); mUsageStats.addAppIdleStateChangeListener(mStandbyTracker); AppStandbyInternal appStandby = LocalServices.getService(AppStandbyInternal.class); appStandby.addListener(mStandbyTracker); // The job store needs to call back publishLocalService(JobSchedulerInternal.class, new LocalService()); Loading
apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java +4 −5 Original line number Diff line number Diff line Loading @@ -35,8 +35,6 @@ import android.app.ActivityManagerInternal; import android.app.AlarmManager; import android.app.AppGlobals; import android.app.IUidObserver; import android.app.usage.UsageStatsManagerInternal; import android.app.usage.UsageStatsManagerInternal.AppIdleStateChangeListener; import android.content.BroadcastReceiver; import android.content.ContentResolver; import android.content.Context; Loading Loading @@ -70,6 +68,8 @@ import com.android.server.job.ConstantsProto; import com.android.server.job.JobSchedulerService; import com.android.server.job.JobServiceContext; import com.android.server.job.StateControllerProto; import com.android.server.usage.AppStandbyInternal; import com.android.server.usage.AppStandbyInternal.AppIdleStateChangeListener; import java.util.ArrayList; import java.util.List; Loading Loading @@ -574,9 +574,8 @@ public final class QuotaController extends StateController { mContext.registerReceiverAsUser(mPackageAddedReceiver, UserHandle.ALL, filter, null, null); // Set up the app standby bucketing tracker UsageStatsManagerInternal usageStats = LocalServices.getService( UsageStatsManagerInternal.class); usageStats.addAppIdleStateChangeListener(new StandbyTracker()); AppStandbyInternal appStandby = LocalServices.getService(AppStandbyInternal.class); appStandby.addListener(new StandbyTracker()); try { ActivityManager.getService().registerUidObserver(mUidObserver, Loading
apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java +1 −1 Original line number Diff line number Diff line Loading @@ -53,7 +53,6 @@ import android.app.AppGlobals; import android.app.usage.AppStandbyInfo; import android.app.usage.UsageEvents; import android.app.usage.UsageStatsManager.StandbyBuckets; import android.app.usage.UsageStatsManagerInternal.AppIdleStateChangeListener; import android.appwidget.AppWidgetManager; import android.content.BroadcastReceiver; import android.content.ContentResolver; Loading Loading @@ -102,6 +101,7 @@ import com.android.internal.util.ConcurrentUtils; import com.android.internal.util.IndentingPrintWriter; import com.android.server.LocalServices; import com.android.server.usage.AppIdleHistory.AppUsageHistory; import com.android.server.usage.AppStandbyInternal.AppIdleStateChangeListener; import java.io.File; import java.io.PrintWriter; Loading
core/java/android/app/usage/UsageStatsManagerInternal.java→services/core/java/android/app/usage/UsageStatsManagerInternal.java +2 −29 Original line number Diff line number Diff line Loading @@ -23,6 +23,8 @@ import android.content.res.Configuration; import android.os.UserHandle; import android.os.UserManager; import com.android.server.usage.AppStandbyInternal.AppIdleStateChangeListener; import java.util.List; import java.util.Set; Loading Loading @@ -153,35 +155,6 @@ public abstract class UsageStatsManagerInternal { */ public abstract int[] getIdleUidsForUser(@UserIdInt int userId); /** * Sets up a listener for changes to packages being accessed. * @param listener A listener within the system process. */ public abstract void addAppIdleStateChangeListener( AppIdleStateChangeListener listener); /** * Removes a listener that was previously added for package usage state changes. * @param listener The listener within the system process to remove. */ public abstract void removeAppIdleStateChangeListener( AppIdleStateChangeListener listener); public static abstract class AppIdleStateChangeListener { /** Callback to inform listeners that the idle state has changed to a new bucket. */ public abstract void onAppIdleStateChanged(String packageName, @UserIdInt int userId, boolean idle, int bucket, int reason); /** * Optional callback to inform the listener that the app has transitioned into * an active state due to user interaction. */ public void onUserInteractionStarted(String packageName, @UserIdInt int userId) { // No-op by default } } /** Backup/Restore API */ public abstract byte[] getBackupPayload(@UserIdInt int userId, String key); Loading