Class ShadowUsageStatsManager
- java.lang.Object
-
- org.robolectric.shadows.ShadowUsageStatsManager
-
@Implements(value=android.app.usage.UsageStatsManager.class, minSdk=21) public class ShadowUsageStatsManager extends Object
Shadow ofUsageStatsManager.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classShadowUsageStatsManager.AppUsageLimitObserverApp usage limit observer registered viaUsageStatsManager.registerAppUsageLimitObserver(int, String[], Duration, Duration, PendingIntent).static classShadowUsageStatsManager.AppUsageObserverApp usage observer registered viaUsageStatsManager.registerAppUsageObserver(int, String[], long, TimeUnit, PendingIntent).static classShadowUsageStatsManager.EventBuilderBuilder for constructingUsageEvents.Eventobjects.static classShadowUsageStatsManager.UsageSessionObserverUsage session observer registered viaUsageStatsManager#registerUsageSessionObserver(int, String[], long, TimeUnit, long, TimeUnit, PendingIntent, PendingIntent).static classShadowUsageStatsManager.UsageStatsBuilderBuilder for constructingUsageStatsobjects.
-
Field Summary
Fields Modifier and Type Field Description protected static Map<Integer,ShadowUsageStatsManager.UsageSessionObserver>usageSessionObserversById
-
Constructor Summary
Constructors Constructor Description ShadowUsageStatsManager()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidaddEvent(UsageEvents.Event event)Adds an event to be returned byUsageStatsManager.queryEvents(long, long).voidaddEvent(String packageName, long timeStamp, int eventType)Deprecated.UseaddEvent(Event)andShadowUsageStatsManager.EventBuilderinstead.voidaddUsageStats(int intervalType, UsageStats stats)Adds an aggregatedUsageStatsobject, to be returned byqueryUsageStats(int, long, long).protected intgetAppStandbyBucket()Returns the current app's standby bucket that is set bysetCurrentAppStandbyBucket.intgetAppStandbyBucket(String packageName)Returns the current standby bucket of the specified app that is set bysetAppStandbyBucket.Map<String,Integer>getAppStandbyBuckets()com.google.common.collect.ImmutableList<ShadowUsageStatsManager.AppUsageLimitObserver>getRegisteredAppUsageLimitObservers()Returns theShadowUsageStatsManager.AppUsageLimitObservers currently registered inUsageStatsManager.Collection<ShadowUsageStatsManager.AppUsageObserver>getRegisteredAppUsageObservers()Returns theShadowUsageStatsManager.AppUsageObservers currently registered inUsageStatsManager.List<ShadowUsageStatsManager.UsageSessionObserver>getRegisteredUsageSessionObservers()Returns theShadowUsageStatsManager.UsageSessionObservers currently registered inUsageStatsManager.protected intgetUsageSource()protected UsageEventsqueryEvents(long beginTime, long endTime)protected UsageEventsqueryEventsForSelf(long beginTime, long endTime)protected List<UsageStats>queryUsageStats(int intervalType, long beginTime, long endTime)Returns aggregated UsageStats added by callingaddUsageStats(int, android.app.usage.UsageStats).protected voidregisterAppUsageLimitObserver(int observerId, String[] observedEntities, Duration timeLimit, Duration timeUsed, PendingIntent callbackIntent)Registers an app usage limit observer that receives a callback oncallbackIntentwhen the sum of usages of apps and tokens inobservedEntitiesexceedstimeLimit - timeUsed.protected voidregisterAppUsageObserver(int observerId, String[] packages, long timeLimit, TimeUnit timeUnit, PendingIntent callbackIntent)protected voidregisterUsageSessionObserver(int observerId, String[] packages, Duration sessionStepDuration, Duration thresholdTimeDuration, PendingIntent sessionStepTriggeredIntent, PendingIntent sessionEndedIntent)static voidreset()voidsetAppStandbyBucket(String packageName, int bucket)Sets the standby bucket of the specified app.voidsetAppStandbyBuckets(Map<String,Integer> appBuckets)voidsetCurrentAppStandbyBucket(int bucket)Sets the current app's standby bucketvoidsetUsageSource(int usageSource)Sets what app usage observers will consider the source of usage for an activity.voidsimulateTimeChange(long offsetToAddInMillis)Simulates the operations done by the framework when there is a time change.voidtriggerRegisteredAppUsageLimitObserver(int observerId, Duration timeUsed)Triggers a currently registeredShadowUsageStatsManager.AppUsageLimitObserverwithobserverId.voidtriggerRegisteredAppUsageObserver(int observerId, long timeUsedInMillis)Triggers a currently registeredShadowUsageStatsManager.AppUsageObserverwithobserverId.voidtriggerRegisteredSessionEndedObserver(int observerId)Triggers a currently registeredShadowUsageStatsManager.UsageSessionObserverwithobserverId.voidtriggerRegisteredSessionStepObserver(int observerId, long timeUsedInMillis)Triggers a currently registeredShadowUsageStatsManager.UsageSessionObserverwithobserverId.protected voidunregisterAppUsageLimitObserver(int observerId)Unregisters the app usage limit observer specified byobserverId.protected voidunregisterAppUsageObserver(int observerId)protected voidunregisterUsageSessionObserver(int observerId)
-
-
-
Field Detail
-
usageSessionObserversById
protected static final Map<Integer,ShadowUsageStatsManager.UsageSessionObserver> usageSessionObserversById
-
-
Method Detail
-
queryEvents
@Implementation protected UsageEvents queryEvents(long beginTime, long endTime)
-
queryEventsForSelf
@Implementation(minSdk=28) protected UsageEvents queryEventsForSelf(long beginTime, long endTime)
-
addEvent
@Deprecated public void addEvent(String packageName, long timeStamp, int eventType)
Deprecated.UseaddEvent(Event)andShadowUsageStatsManager.EventBuilderinstead.Adds an event to be returned byUsageStatsManager.queryEvents(long, long).This method won't affect the results of
queryUsageStats(int, long, long)method.
-
addEvent
public void addEvent(UsageEvents.Event event)
Adds an event to be returned byUsageStatsManager.queryEvents(long, long).This method won't affect the results of
queryUsageStats(int, long, long)method.The
UsageEvents.Eventcan be built byShadowUsageStatsManager.EventBuilder.
-
simulateTimeChange
public void simulateTimeChange(long offsetToAddInMillis)
Simulates the operations done by the framework when there is a time change. If the time is changed, the timestamps of all existing usage events will be shifted by the same offset as the time change, in order to make sure they remain stable relative to the new time.This method won't affect the results of
queryUsageStats(int, long, long)method.- Parameters:
offsetToAddInMillis- the offset to be applied to all events. For example, ifoffsetInMillisis 60,000, then allUsageEvents.Events will be shifted forward by 1 minute (into the future). Likewise, ifoffsetInMillisis -60,000, then allUsageEvents.Events will be shifted backward by 1 minute (into the past).
-
queryUsageStats
@Implementation protected List<UsageStats> queryUsageStats(int intervalType, long beginTime, long endTime)
Returns aggregated UsageStats added by callingaddUsageStats(int, android.app.usage.UsageStats).The real implementation creates these aggregated objects from individual
UsageEvents.Event. This aggregation logic is nontrivial, so the shadow implementation just returns the aggregate data added usingaddUsageStats(int, android.app.usage.UsageStats).
-
addUsageStats
public void addUsageStats(int intervalType, UsageStats stats)Adds an aggregatedUsageStatsobject, to be returned byqueryUsageStats(int, long, long). Construct these objects withShadowUsageStatsManager.UsageStatsBuilder, and set the firstTimestamp and lastTimestamp fields to make time filtering work inqueryUsageStats(int, long, long).- Parameters:
intervalType- An interval type constant, e.g.UsageStatsManager.INTERVAL_WEEKLY.
-
getAppStandbyBucket
@Implementation(minSdk=28) @HiddenApi public int getAppStandbyBucket(String packageName)
Returns the current standby bucket of the specified app that is set bysetAppStandbyBucket. If the standby bucket value has never been set, returnUsageStatsManager.STANDBY_BUCKET_ACTIVE.
-
getAppStandbyBuckets
@Implementation(minSdk=28) @HiddenApi public Map<String,Integer> getAppStandbyBuckets()
-
setAppStandbyBucket
@Implementation(minSdk=28) @HiddenApi public void setAppStandbyBucket(String packageName, int bucket)
Sets the standby bucket of the specified app.
-
setAppStandbyBuckets
@Implementation(minSdk=28) @HiddenApi public void setAppStandbyBuckets(Map<String,Integer> appBuckets)
-
registerAppUsageObserver
@Implementation(minSdk=28) @HiddenApi protected void registerAppUsageObserver(int observerId, String[] packages, long timeLimit, TimeUnit timeUnit, PendingIntent callbackIntent)
-
unregisterAppUsageObserver
@Implementation(minSdk=28) @HiddenApi protected void unregisterAppUsageObserver(int observerId)
-
getRegisteredAppUsageObservers
public Collection<ShadowUsageStatsManager.AppUsageObserver> getRegisteredAppUsageObservers()
Returns theShadowUsageStatsManager.AppUsageObservers currently registered inUsageStatsManager.
-
triggerRegisteredAppUsageObserver
public void triggerRegisteredAppUsageObserver(int observerId, long timeUsedInMillis)Triggers a currently registeredShadowUsageStatsManager.AppUsageObserverwithobserverId.The observer will be no longer registered afterwards.
-
registerUsageSessionObserver
@Implementation(minSdk=29) protected void registerUsageSessionObserver(int observerId, String[] packages, Duration sessionStepDuration, Duration thresholdTimeDuration, PendingIntent sessionStepTriggeredIntent, PendingIntent sessionEndedIntent)
-
unregisterUsageSessionObserver
@Implementation(minSdk=29) protected void unregisterUsageSessionObserver(int observerId)
-
getRegisteredUsageSessionObservers
public List<ShadowUsageStatsManager.UsageSessionObserver> getRegisteredUsageSessionObservers()
Returns theShadowUsageStatsManager.UsageSessionObservers currently registered inUsageStatsManager.
-
triggerRegisteredSessionStepObserver
public void triggerRegisteredSessionStepObserver(int observerId, long timeUsedInMillis)Triggers a currently registeredShadowUsageStatsManager.UsageSessionObserverwithobserverId.The observer SHOULD be registered afterwards.
-
triggerRegisteredSessionEndedObserver
public void triggerRegisteredSessionEndedObserver(int observerId)
Triggers a currently registeredShadowUsageStatsManager.UsageSessionObserverwithobserverId.The observer SHOULD be registered afterwards.
-
registerAppUsageLimitObserver
@Implementation(minSdk=29) @HiddenApi protected void registerAppUsageLimitObserver(int observerId, String[] observedEntities, Duration timeLimit, Duration timeUsed, PendingIntent callbackIntent)
Registers an app usage limit observer that receives a callback oncallbackIntentwhen the sum of usages of apps and tokens inobservedEntitiesexceedstimeLimit - timeUsed.
-
unregisterAppUsageLimitObserver
@Implementation(minSdk=29) @HiddenApi protected void unregisterAppUsageLimitObserver(int observerId)
Unregisters the app usage limit observer specified byobserverId.
-
getRegisteredAppUsageLimitObservers
public com.google.common.collect.ImmutableList<ShadowUsageStatsManager.AppUsageLimitObserver> getRegisteredAppUsageLimitObservers()
Returns theShadowUsageStatsManager.AppUsageLimitObservers currently registered inUsageStatsManager.
-
triggerRegisteredAppUsageLimitObserver
public void triggerRegisteredAppUsageLimitObserver(int observerId, Duration timeUsed)Triggers a currently registeredShadowUsageStatsManager.AppUsageLimitObserverwithobserverId.The observer will still be registered afterwards.
-
getAppStandbyBucket
@Implementation(minSdk=28) protected int getAppStandbyBucket()
Returns the current app's standby bucket that is set bysetCurrentAppStandbyBucket. If the standby bucket value has never been set, returnUsageStatsManager.STANDBY_BUCKET_ACTIVE.
-
setCurrentAppStandbyBucket
public void setCurrentAppStandbyBucket(int bucket)
Sets the current app's standby bucket
-
getUsageSource
@Implementation(minSdk=29) @HiddenApi protected int getUsageSource()
-
setUsageSource
public void setUsageSource(int usageSource)
Sets what app usage observers will consider the source of usage for an activity.
-
reset
@Resetter public static void reset()
-
-