Как использовать @BindsInstance с новым dagger-android для инъекции во время выполнения? - PullRequest
0 голосов
/ 30 сентября 2019

Я использую com.google.dagger:dagger-android 2.24 (не стандартный кинжал) и не могу понять, как использовать @BindsInstance для инъекции во время выполнения. Буду признателен за любую помощь!

Класс приложения

public class BaseApplication extends DaggerApplication {

    @Override
    protected AndroidInjector<? extends DaggerApplication> applicationInjector() {
        return DaggerAppComponent.factory().create(this);
    }
}

AppComponent

@Singleton
@Component(modules = {
        AndroidSupportInjectionModule.class
})

public interface AppComponent extends AndroidInjector<BaseApplication> {

    @Component.Factory
    interface Factory {
        AppComponent create(@BindsInstance Application application);
    }
}

Подкомпонент, который я хочу создать, но не знаю, как и гденастроить его

@Subcomponent(modules = PlayersModule.class)
public interface PlayersComponent extends AndroidInjector<PlayersActivity> {

    @Subcomponent.Factory
    interface Factory {
        PlayersComponent create(@BindsInstance @Named("players_list") List<Player> playerList,
                                  @BindsInstance @Named("number_of_teams") int numberOfTeams);
    }
}
...