1*21373fa4SWill Schurman // Copyright 2015-present 650 Industries. All rights reserved. 2*21373fa4SWill Schurman package host.exp.exponent.utils 3*21373fa4SWill Schurman 4*21373fa4SWill Schurman import androidx.test.espresso.IdlingResource 5*21373fa4SWill Schurman import de.greenrobot.event.EventBus 6*21373fa4SWill Schurman import host.exp.exponent.experience.ReactNativeActivity.ExperienceDoneLoadingEvent 7*21373fa4SWill Schurman import host.exp.exponent.experience.BaseExperienceActivity 8*21373fa4SWill Schurman 9*21373fa4SWill Schurman class LoadingScreenIdlingResource : IdlingResource { 10*21373fa4SWill Schurman private var resourceCallback: IdlingResource.ResourceCallback? = null 11*21373fa4SWill Schurman onEventnull12*21373fa4SWill Schurman fun onEvent(event: ExperienceDoneLoadingEvent?) { 13*21373fa4SWill Schurman resourceCallback?.onTransitionToIdle() 14*21373fa4SWill Schurman } 15*21373fa4SWill Schurman getNamenull16*21373fa4SWill Schurman override fun getName(): String { 17*21373fa4SWill Schurman return LoadingScreenIdlingResource::class.java.name 18*21373fa4SWill Schurman } 19*21373fa4SWill Schurman isIdleNownull20*21373fa4SWill Schurman override fun isIdleNow(): Boolean { 21*21373fa4SWill Schurman if (BaseExperienceActivity.visibleActivity == null) { 22*21373fa4SWill Schurman return false 23*21373fa4SWill Schurman } 24*21373fa4SWill Schurman val isIdle = !BaseExperienceActivity.visibleActivity!!.isLoading 25*21373fa4SWill Schurman if (isIdle) { 26*21373fa4SWill Schurman resourceCallback?.onTransitionToIdle() 27*21373fa4SWill Schurman } 28*21373fa4SWill Schurman return isIdle 29*21373fa4SWill Schurman } 30*21373fa4SWill Schurman registerIdleTransitionCallbacknull31*21373fa4SWill Schurman override fun registerIdleTransitionCallback(callback: IdlingResource.ResourceCallback) { 32*21373fa4SWill Schurman resourceCallback = callback 33*21373fa4SWill Schurman } 34*21373fa4SWill Schurman 35*21373fa4SWill Schurman init { 36*21373fa4SWill Schurman EventBus.getDefault().register(this) 37*21373fa4SWill Schurman } 38*21373fa4SWill Schurman } 39