package org.wheelmap.android.test.rules;
import android.app.Activity;
import android.content.Context;
import android.support.test.InstrumentationRegistry;
import android.support.test.rule.ActivityTestRule;
import org.junit.runner.Description;
import org.junit.runners.model.Statement;
/**
*
* Created by timfreiheit on 27.11.15.
*/
public class BeforeActivityTestRule<T extends Activity> extends ActivityTestRule<T> {
public interface OnBeforeActivityLaunchedListener {
void beforeActivityLaunched();
}
private OnBeforeActivityLaunchedListener mListener;
public BeforeActivityTestRule(Class<T> activityClass, OnBeforeActivityLaunchedListener listener) {
super(activityClass);
mListener = listener;
}
public BeforeActivityTestRule(Class<T> activityClass, boolean initialTouchMode, OnBeforeActivityLaunchedListener listener) {
super(activityClass, initialTouchMode);
mListener = listener;
}
public BeforeActivityTestRule(Class<T> activityClass, boolean initialTouchMode, boolean launchActivity, OnBeforeActivityLaunchedListener listener) {
super(activityClass, initialTouchMode, launchActivity);
mListener = listener;
}
@Override
public Statement apply(final Statement base, Description description) {
if (mListener != null) {
mListener.beforeActivityLaunched();
}
return super.apply(base, description);
}
}