package com.google.android.apps.common.testing.testrunner.inject; import static com.google.common.base.Preconditions.checkNotNull; import com.google.android.apps.common.testing.testrunner.ActivityLifecycleMonitor; import com.google.android.apps.common.testing.testrunner.ActivityLifecycleMonitorRegistry; import com.google.android.apps.common.testing.testrunner.InstrumentationRegistry; import android.app.Instrumentation; import android.content.Context; import dagger.Module; import dagger.Provides; @Module(library = true) public class AndroidInstrumentationModule { private final ActivityLifecycleMonitor lifecycleMonitor; private final Instrumentation instrumentation; public AndroidInstrumentationModule() { this(ActivityLifecycleMonitorRegistry.getInstance(), InstrumentationRegistry.getInstance()); } public AndroidInstrumentationModule(ActivityLifecycleMonitor lifecycleMonitor, Instrumentation instrumentation) { this.lifecycleMonitor = checkNotNull(lifecycleMonitor); this.instrumentation = checkNotNull(instrumentation); } @Provides public ActivityLifecycleMonitor provideLifecycleMonitor() { return lifecycleMonitor; } @Provides public Instrumentation provideInstrumentation() { return instrumentation; } @Provides @TargetContext public Context provideTargetContext(Instrumentation instrumentation) { return instrumentation.getTargetContext(); } @Provides @InstrumentationContext public Context provideInstrumentationContext(Instrumentation instrumentation) { return instrumentation.getContext(); } }