diff options
-rw-r--r-- | api/system-current.txt | 2 | ||||
-rw-r--r-- | api/system-removed.txt | 8 | ||||
-rw-r--r-- | core/java/android/app/usage/UsageStatsManager.java | 34 |
3 files changed, 36 insertions, 8 deletions
diff --git a/api/system-current.txt b/api/system-current.txt index 4c0e1685274f..866c1383bdda 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -1198,7 +1198,7 @@ package android.app.usage { method public int getUsageSource(); method @RequiresPermission(allOf={android.Manifest.permission.SUSPEND_APPS, android.Manifest.permission.OBSERVE_APP_USAGE}) public void registerAppUsageLimitObserver(int, @NonNull String[], @NonNull java.time.Duration, @NonNull java.time.Duration, @Nullable android.app.PendingIntent); method @RequiresPermission(android.Manifest.permission.OBSERVE_APP_USAGE) public void registerAppUsageObserver(int, @NonNull String[], long, @NonNull java.util.concurrent.TimeUnit, @NonNull android.app.PendingIntent); - method @RequiresPermission(android.Manifest.permission.OBSERVE_APP_USAGE) public void registerUsageSessionObserver(int, @NonNull String[], long, @NonNull java.util.concurrent.TimeUnit, long, @NonNull java.util.concurrent.TimeUnit, @NonNull android.app.PendingIntent, @Nullable android.app.PendingIntent); + method @RequiresPermission(android.Manifest.permission.OBSERVE_APP_USAGE) public void registerUsageSessionObserver(int, @NonNull String[], @NonNull java.time.Duration, @NonNull java.time.Duration, @NonNull android.app.PendingIntent, @Nullable android.app.PendingIntent); method public void reportUsageStart(@NonNull android.app.Activity, @NonNull String); method public void reportUsageStart(@NonNull android.app.Activity, @NonNull String, long); method public void reportUsageStop(@NonNull android.app.Activity, @NonNull String); diff --git a/api/system-removed.txt b/api/system-removed.txt index 18d0ec02f077..2c65029c30b2 100644 --- a/api/system-removed.txt +++ b/api/system-removed.txt @@ -28,6 +28,14 @@ package android.app.admin { } +package android.app.usage { + + public final class UsageStatsManager { + method @Deprecated @RequiresPermission(android.Manifest.permission.OBSERVE_APP_USAGE) public void registerUsageSessionObserver(int, @NonNull String[], long, @NonNull java.util.concurrent.TimeUnit, long, @NonNull java.util.concurrent.TimeUnit, @NonNull android.app.PendingIntent, @Nullable android.app.PendingIntent); + } + +} + package android.content { public class Intent implements java.lang.Cloneable android.os.Parcelable { diff --git a/core/java/android/app/usage/UsageStatsManager.java b/core/java/android/app/usage/UsageStatsManager.java index e47ec22310aa..b5224c7fac55 100644 --- a/core/java/android/app/usage/UsageStatsManager.java +++ b/core/java/android/app/usage/UsageStatsManager.java @@ -660,6 +660,30 @@ public final class UsageStatsManager { } } + + /** + * @deprecated use {@link #registerUsageSessionObserver(int, String[], Duration, Duration, + * PendingIntent, PendingIntent)}. + * + * @removed + * @hide + */ + @Deprecated + @SystemApi + @RequiresPermission(android.Manifest.permission.OBSERVE_APP_USAGE) + // STOPSHIP b/128455269: remove this method + public void registerUsageSessionObserver(int sessionObserverId, + @NonNull String[] observedEntities, long timeLimit, @NonNull TimeUnit timeUnit, + long sessionThresholdTime, @NonNull TimeUnit sessionThresholdTimeUnit, + @NonNull PendingIntent limitReachedCallbackIntent, + @Nullable PendingIntent sessionEndCallbackIntent) { + final Duration timeLimitDuration = Duration.ofMillis(timeUnit.toMillis(timeLimit)); + final Duration sessionThresholdDuration = + Duration.ofMillis(sessionThresholdTimeUnit.toMillis(sessionThresholdTime)); + registerUsageSessionObserver(sessionObserverId, observedEntities, timeLimitDuration, + sessionThresholdDuration, limitReachedCallbackIntent, sessionEndCallbackIntent); + } + /** * Register a usage session observer that receives a callback on the provided {@code * limitReachedCallbackIntent} when the sum of usages of apps and tokens in the {@code @@ -679,11 +703,8 @@ public final class UsageStatsManager { * null and must include at least one package or token. * @param timeLimit The total time the set of apps can be used continuously before the {@code * limitReachedCallbackIntent} is delivered. Must be at least one minute. - * @param timeUnit The unit for time specified in {@code timeLimit}. Cannot be null. * @param sessionThresholdTime The time that can take place between usage sessions before the * next session is considered a new session. Must be non-negative. - * @param sessionThresholdTimeUnit The unit for time specified in {@code sessionThreshold}. - * Cannot be null. * @param limitReachedCallbackIntent The {@link PendingIntent} that will be dispatched when the * usage limit is exceeded by the group of apps. The * delivered Intent will also contain the extras {@link @@ -703,14 +724,13 @@ public final class UsageStatsManager { @SystemApi @RequiresPermission(android.Manifest.permission.OBSERVE_APP_USAGE) public void registerUsageSessionObserver(int sessionObserverId, - @NonNull String[] observedEntities, long timeLimit, @NonNull TimeUnit timeUnit, - long sessionThresholdTime, @NonNull TimeUnit sessionThresholdTimeUnit, + @NonNull String[] observedEntities, @NonNull Duration timeLimit, + @NonNull Duration sessionThresholdTime, @NonNull PendingIntent limitReachedCallbackIntent, @Nullable PendingIntent sessionEndCallbackIntent) { try { mService.registerUsageSessionObserver(sessionObserverId, observedEntities, - timeUnit.toMillis(timeLimit), - sessionThresholdTimeUnit.toMillis(sessionThresholdTime), + timeLimit.toMillis(), sessionThresholdTime.toMillis(), limitReachedCallbackIntent, sessionEndCallbackIntent, mContext.getOpPackageName()); } catch (RemoteException e) { |