package com.hitherejoe.androidboilerplate; import android.app.Application; import android.content.Context; import com.hitherejoe.androidboilerplate.injection.component.ApplicationComponent; import com.hitherejoe.androidboilerplate.injection.component.DaggerApplicationComponent; import com.hitherejoe.androidboilerplate.injection.module.ApplicationModule; import timber.log.Timber; public class AndroidBoilerplateApplication extends Application { ApplicationComponent mApplicationComponent; @Override public void onCreate() { super.onCreate(); if (BuildConfig.DEBUG) Timber.plant(new Timber.DebugTree()); mApplicationComponent = DaggerApplicationComponent.builder() .applicationModule(new ApplicationModule(this)) .build(); mApplicationComponent.inject(this); } public static AndroidBoilerplateApplication get(Context context) { return (AndroidBoilerplateApplication) context.getApplicationContext(); } public ApplicationComponent getComponent() { return mApplicationComponent; } // Needed to replace the component with a test specific one public void setComponent(ApplicationComponent applicationComponent) { mApplicationComponent = applicationComponent; } }