-
Notifications
You must be signed in to change notification settings - Fork 20
Expand file tree
/
Copy pathFakeDrawEventEmitter.kt
More file actions
37 lines (31 loc) · 1.31 KB
/
FakeDrawEventEmitter.kt
File metadata and controls
37 lines (31 loc) · 1.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package io.embrace.android.embracesdk.fakes
import android.app.Activity
import io.embrace.android.embracesdk.internal.capture.activity.traceInstanceId
import io.embrace.android.embracesdk.internal.ui.DrawEventEmitter
import java.util.concurrent.ConcurrentHashMap
class FakeDrawEventEmitter : DrawEventEmitter {
val registeredActivities: MutableMap<Int, Pair<() -> Unit, () -> Unit>> = ConcurrentHashMap()
var lastRegisteredActivity: Activity? = null
var lastUnregisteredActivity: Activity? = null
var lastFirstFrameDeliveredCallback: (() -> Unit)? = null
override fun registerFirstDrawCallback(
activity: Activity,
drawBeginCallback: () -> Unit,
drawCompleteCallback: () -> Unit
) {
registeredActivities[traceInstanceId(activity)] = drawBeginCallback to drawCompleteCallback
lastRegisteredActivity = activity
lastFirstFrameDeliveredCallback = drawCompleteCallback
}
override fun unregisterFirstDrawCallback(activity: Activity) {
registeredActivities.remove(traceInstanceId(activity))
lastUnregisteredActivity = activity
}
fun draw(activity: Activity, gapCallback: () -> Unit = {}) {
registeredActivities[traceInstanceId(activity)]?.run {
first()
gapCallback()
second()
}
}
}