package in.mvpstarter.sample;
import android.app.Application;
import android.content.Context;
import com.facebook.stetho.Stetho;
import com.squareup.leakcanary.LeakCanary;
import in.mvpstarter.sample.injection.component.ApplicationComponent;
import in.mvpstarter.sample.injection.component.DaggerApplicationComponent;
import in.mvpstarter.sample.injection.module.ApplicationModule;
import timber.log.Timber;
public class MvpStarterApplication extends Application {
ApplicationComponent mApplicationComponent;
public static MvpStarterApplication get(Context context) {
return (MvpStarterApplication) context.getApplicationContext();
}
@Override
public void onCreate() {
super.onCreate();
if (BuildConfig.DEBUG) {
Timber.plant(new Timber.DebugTree());
Stetho.initializeWithDefaults(this);
LeakCanary.install(this);
}
}
public ApplicationComponent getComponent() {
if (mApplicationComponent == null) {
mApplicationComponent = DaggerApplicationComponent.builder()
.applicationModule(new ApplicationModule(this))
.build();
}
return mApplicationComponent;
}
// Needed to replace the component with a test specific one
public void setComponent(ApplicationComponent applicationComponent) {
mApplicationComponent = applicationComponent;
}
}