Skip to content

Instantly share code, notes, and snippets.

implementation "com.google.dagger:dagger-android:${DAGGER_VERSION}"
implementation "com.google.dagger:dagger-android-support:${DAGGER_VERSION}"
annotationProcessor "com.google.dagger:dagger-android-processor:${DAGGER_VERSION}"
@Subcomponent
public interface MainActivitySubcomponent extends AndroidInjector<MainActivity>{
@Subcomponent.Builder
abstract class Builder extends AndroidInjector.Builder<MainActivity>{}
}
@Module(subcomponents = MainActivitySubcomponent.class)
public abstract class MainActivityInjectorModule {
@Binds
@IntoMap
@ActivityKey(MainActivity.class)
abstract AndroidInjector.Factory<? extends Activity> bindInjectorFactory(MainActivityComponent.Builder builder);
}
@Singleton
@Component(modules = {
AndroidInjectionModule.class,
MainActivityModule.class})
public interface ApplicationComponent {
}
@Override
protected void onCreate(Bundle savedInstanceState){
AndroidInjection.inject(this);
super.onCreate(savedInstanceState);
}
public class MyApp extends Application implements HasActivityInjector {
@Inject
DispatchingAndroidInjector<Activity> dispatchingAndroidInjector;
ApplicationComponent appComponent;
@Override
public void onCreate(){
super.onCreate();
@Subcomponent(modules = SomeActivityModule)
public interface SomeActivitySubcomponent extends AndroidInjector<SomeActivity> {
@Subcomponent.Builder
abstract class Builder extends AndroidInjector.Builder<SomeActivity>{
Builder someActivityModule(SomeActivityModule moduleInstance);
@Override
public void seedInstance(SomeActivity instance){
node {
stage 'Checkout'
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[url: 'https://github.com/abnormallydriven/android-ci-example.git']]])
sh "./gradlew clean"
stage 'Unit Test'
sh "./gradlew test"
init {
val pagedListConfig = PagedList.Config.Builder()
.setPageSize(30)
.setPrefetchDistance(30)
.build()
userListLiveData = teamDao.getTeamsAsLivePagedListProvider().create(0, pagedListConfig)
}
@Singleton
class TeamsViewModel @Inject
constructor(private val teamDao: TeamDao) : ViewModel(){
val userListLiveData : LiveData<PagedList<Team>>
val tiledDataSource : TiledDataSource<Team>
init{
val pagedListConfig = PagedList.Config.Builder()