@@ -109,12 +109,12 @@ class UsageStatsWatcher constructor(val context: Context) {
109
109
}
110
110
111
111
private fun getLastEvent (): JSONObject ? {
112
- // FIXME: For some reason doesn't return last event, always 2h behind (so probably a timezone issue)
113
112
val events = ri.getEventsJSON(bucket_id, limit= 1 )
114
- return if (events.length() > 0 ) {
115
- // Log.d(TAG, events[0].toString() )
113
+ return if (events.length() == 1 ) {
114
+ // Log.d(TAG, "Last event: ${ events[0]}" )
116
115
events[0 ] as JSONObject
117
116
} else {
117
+ Log .w(TAG , " More or less than one event was retrieved when trying to get last event, actual length: ${events.length()} " )
118
118
null
119
119
}
120
120
}
@@ -155,7 +155,7 @@ class UsageStatsWatcher constructor(val context: Context) {
155
155
nextEvent@ while (usageEvents.hasNextEvent()) {
156
156
val event = UsageEvents .Event ()
157
157
usageEvents.getNextEvent(event)
158
- if (event.eventType !in arrayListOf (UsageEvents .Event .MOVE_TO_FOREGROUND , UsageEvents .Event .MOVE_TO_BACKGROUND , UsageEvents .Event .SCREEN_INTERACTIVE , UsageEvents .Event .SCREEN_NON_INTERACTIVE )) {
158
+ if (event.eventType !in arrayListOf (UsageEvents .Event .ACTIVITY_RESUMED , UsageEvents .Event .ACTIVITY_PAUSED , UsageEvents .Event .SCREEN_INTERACTIVE , UsageEvents .Event .SCREEN_NON_INTERACTIVE )) {
159
159
// Not sure which events are triggered here, so we use a (probably safe) fallback
160
160
// Log.d(TAG, "Rare eventType: ${event.eventType}, skipping")
161
161
continue @nextEvent
@@ -164,12 +164,12 @@ class UsageStatsWatcher constructor(val context: Context) {
164
164
val awEvent = Event .fromUsageEvent(event, context, includeClassname = true )
165
165
val pulsetime: Double
166
166
when (event.eventType) {
167
- UsageEvents .Event .MOVE_TO_FOREGROUND , UsageEvents .Event .SCREEN_INTERACTIVE -> {
167
+ UsageEvents .Event .ACTIVITY_RESUMED , UsageEvents .Event .SCREEN_INTERACTIVE -> {
168
168
// MOVE_TO_FOREGROUND: New Activity was opened
169
169
// SCREEN_INTERACTIVE: Screen just became interactive, user was previously therefore not active on the device
170
170
pulsetime = 1.0
171
171
}
172
- UsageEvents .Event .MOVE_TO_BACKGROUND , UsageEvents .Event .SCREEN_NON_INTERACTIVE -> {
172
+ UsageEvents .Event .ACTIVITY_PAUSED , UsageEvents .Event .SCREEN_NON_INTERACTIVE -> {
173
173
// MOVE_TO_BACKGROUND: Activity was moved to background
174
174
// SCREEN_NOT_INTERACTIVE: Screen locked/turned off, user is therefore now AFK, and this is the last event
175
175
pulsetime = 24 * 60 * 60.0 // 24h, we will assume events should never grow longer than that
0 commit comments