package org.wheelmap.android.test.main; import android.support.test.espresso.IdlingResource; import org.wheelmap.android.activity.listeners.Progress; public class ProgressIdlingResource implements IdlingResource { private ResourceCallback resourceCallback; private boolean isInProgress; public ProgressIdlingResource(Progress.Provider provider){ provider.addProgressListener(new Progress.Listener() { @Override public void onProgressChanged(boolean isLoading) { if (resourceCallback == null){ return ; } isInProgress = isLoading; if (!isLoading) { //Called when the resource goes from busy to idle. resourceCallback.onTransitionToIdle(); } } }); } @Override public String getName() { return "ProgressListener"; } @Override public boolean isIdleNow() { // the resource becomes idle when the progress has been dismissed return !isInProgress; } @Override public void registerIdleTransitionCallback(ResourceCallback resourceCallback) { this.resourceCallback = resourceCallback; } }