Skip to content

Instantly share code, notes, and snippets.

@JoseAlcerreca
Last active April 11, 2024 03:59
Show Gist options
  • Save JoseAlcerreca/71693a0ba541e2f4a0e8aa4dc89836d7 to your computer and use it in GitHub Desktop.
Save JoseAlcerreca/71693a0ba541e2f4a0e8aa4dc89836d7 to your computer and use it in GitHub Desktop.
class SimpleIdlingResource(private val resourceName: String) : IdlingResource {
private val isIdle = AtomicBoolean(true)
// written from main thread, read from any thread.
@Volatile private var resourceCallback: IdlingResource.ResourceCallback? = null
override fun getName(): String = resourceName
override fun isIdleNow(): Boolean = isIdle.get()
override fun registerIdleTransitionCallback(resourceCallback: IdlingResource.ResourceCallback) {
this.resourceCallback = resourceCallback
}
fun setIdle(isIdleNow: Boolean) {
if (isIdleNow == isIdle.get()) return
isIdle.set(isIdleNow)
if (isIdleNow) {
resourceCallback?.onTransitionToIdle()
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment