xref: /expo/android/app/src/androidTest/java/host/exp/exponent/utils/LoadingScreenIdlingResource.kt (revision eb2c86e3)
  • Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2015-present 650 Industries. All rights reserved.
2 package host.exp.exponent.utils
3 
4 import androidx.test.espresso.IdlingResource
5 import de.greenrobot.event.EventBus
6 import host.exp.exponent.experience.ReactNativeActivity.ExperienceDoneLoadingEvent
7 import host.exp.exponent.experience.BaseExperienceActivity
8 
9 class LoadingScreenIdlingResource : IdlingResource {
10   private var resourceCallback: IdlingResource.ResourceCallback? = null
11 
12   fun onEvent(event: ExperienceDoneLoadingEvent?) {
13     resourceCallback?.onTransitionToIdle()
14   }
15 
16   override fun getName(): String {
17     return LoadingScreenIdlingResource::class.java.name
18   }
19 
20   override fun isIdleNow(): Boolean {
21     if (BaseExperienceActivity.visibleActivity == null) {
22       return false
23     }
24     val isIdle = !BaseExperienceActivity.visibleActivity!!.isLoading
25     if (isIdle) {
26       resourceCallback?.onTransitionToIdle()
27     }
28     return isIdle
29   }
30 
31   override fun registerIdleTransitionCallback(callback: IdlingResource.ResourceCallback) {
32     resourceCallback = callback
33   }
34 
35   init {
36     EventBus.getDefault().register(this)
37   }
38 }
39 

served by {OpenGrok

Last Index Update: Tue Oct 21 18:42:31 GMT 2025