/** * Adds an event to be returned by {@link UsageStatsManager#queryEvents}. * * This method won't affect the results of {@link #queryUsageStats} method. * * The {@link Event} can be built by {@link EventBuilder}. */ public void addEvent(Event event) { eventsByTimeStamp.put(event.getTimeStamp(), event); }
/** * 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 {@link #queryUsageStats} method. * * @param offsetToAddInMillis the offset to be applied to all events. For example, if {@code * offsetInMillis} is 60,000, then all {@link Event}s will be shifted forward by 1 minute * (into the future). Likewise, if {@code offsetInMillis} is -60,000, then all {@link Event}s * will be shifted backward by 1 minute (into the past). */ public void simulateTimeChange(long offsetToAddInMillis) { ImmutableMap.Builder<Long, Event> eventMapBuilder = ImmutableMap.builder(); for (Event event : eventsByTimeStamp.values()) { long newTimestamp = event.getTimeStamp() + offsetToAddInMillis; eventMapBuilder.put( newTimestamp, EventBuilder.fromEvent(event).setTimeStamp(newTimestamp).build()); } eventsByTimeStamp.putAll(eventMapBuilder.build()); }
assertThat(events.getNextEvent(event)).isTrue(); assertThat(event.getPackageName()).isEqualTo(TEST_PACKAGE_NAME1); assertThat(event.getTimeStamp()).isEqualTo(1000L); assertThat(event.getEventType()).isEqualTo(Event.MOVE_TO_BACKGROUND); assertThat(events.getNextEvent(event)).isTrue(); assertThat(event.getPackageName()).isEqualTo(TEST_PACKAGE_NAME2); assertThat(event.getTimeStamp()).isEqualTo(1500L); assertThat(event.getEventType()).isEqualTo(Event.MOVE_TO_FOREGROUND); assertThat(event.getClassName()).isEqualTo(TEST_ACTIVITY_NAME);
if (event.getEventType() == UsageEvents.Event.MOVE_TO_FOREGROUND) { packageNameByUsageStats = event.getPackageName(); Date d = new Date(event.getTimeStamp()); classByUsageStats = event.getClassName() + " " + d.toString(); recentPackageName = classByUsageStats;
/** * 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 {@link #queryUsageStats} method. * * @param offsetToAddInMillis the offset to be applied to all events. For example, if {@code * offsetInMillis} is 60,000, then all {@link Event}s will be shifted forward by 1 minute * (into the future). Likewise, if {@code offsetInMillis} is -60,000, then all {@link Event}s * will be shifted backward by 1 minute (into the past). */ public void simulateTimeChange(long offsetToAddInMillis) { ImmutableMap.Builder<Long, Event> eventMapBuilder = ImmutableMap.builder(); for (Event event : eventsByTimeStamp.values()) { long newTimestamp = event.getTimeStamp() + offsetToAddInMillis; eventMapBuilder.put( newTimestamp, EventBuilder.fromEvent(event).setTimeStamp(newTimestamp).build()); } eventsByTimeStamp.putAll(eventMapBuilder.build()); }
/** * Adds an event to be returned by {@link UsageStatsManager#queryEvents}. * * This method won't affect the results of {@link #queryUsageStats} method. * * The {@link Event} can be built by {@link EventBuilder}. */ public void addEvent(Event event) { eventsByTimeStamp.put(event.getTimeStamp(), event); }
assertThat(events.getNextEvent(event)).isTrue(); assertThat(event.getPackageName()).isEqualTo(TEST_PACKAGE_NAME1); assertThat(event.getTimeStamp()).isEqualTo(11000L); assertThat(event.getEventType()).isEqualTo(Event.MOVE_TO_BACKGROUND); assertThat(events.getNextEvent(event)).isTrue(); assertThat(event.getPackageName()).isEqualTo(TEST_PACKAGE_NAME2); assertThat(event.getTimeStamp()).isEqualTo(11500L); assertThat(event.getEventType()).isEqualTo(Event.MOVE_TO_FOREGROUND); assertThat(event.getClassName()).isEqualTo(TEST_ACTIVITY_NAME);