package com.google.android.apps.common.testing.ui.espresso.base; import com.google.android.apps.common.testing.ui.espresso.IdlingResource; /** * An {@link IdlingResource} for testing that becomes idle on demand. */ public class OnDemandIdlingResource implements IdlingResource { private final String name; private boolean isIdle = false; private ResourceCallback callback; public OnDemandIdlingResource(String name) { this.name = name; } @Override public void registerIdleTransitionCallback(ResourceCallback callback) { this.callback = callback; } @Override public boolean isIdleNow() { return isIdle; } @Override public String getName() { return name; } public void forceIdleNow() { isIdle = true; if (callback != null) { callback.onTransitionToIdle(); } } public void reset() { isIdle = false; } }