Reputation: 2720
I'm using JobQueue library and i can successful inject some class such as GithubService to that for example:
public interface GithubService {
@GET("repositories")
Call<List<GithubRepo>> getAllRepositories();
}
now i'm trying to inject other class as RxBus
public interface Bus {
void register(@NonNull Object observer);
<T> CustomSubscriber<T> obtainSubscriber(@NonNull Class<T> eventClass, @NonNull Consumer<T> receiver);
<T> void registerSubscriber(@NonNull Object observer, @NonNull CustomSubscriber<T> subscriber);
void unregister(@NonNull Object observer);
void post(@NonNull Object event);
}
into job file, but i get null
job class:
public class GetLatestRepositories extends Job implements JobManagerInjectable {
@Inject
transient GithubService githubService;
@Inject
transient Bus eventBus;
private Call<List<GithubRepo>> repositoryCall;
public GetLatestRepositories() {
super(new Params(JobPriority.MID).requireNetwork().persist());
eventBus.register(this); /* IS NULL*/
}
@Override
public void onAdded() {
}
...
@Override
public void inject(ApplicationComponent component) {
component.inject(this);
}
}
ApplicationComponent
@ActivitiesScope
@Component(dependencies = GithubApplicationComponent.class)
public interface ApplicationComponent {
void inject(ActivityRegister activityRegister);
void inject(ActivityStartUpApplication activityStartUpApplication);
void inject(GetLatestRepositories getLatestRepositories);
}
GithubApplicationComponent
@AlachiqApplicationScope
@Component(
modules = {
UserInformationModule.class,
NetworkServiceModule.class,
PicassoModule.class,
JobManagerModule.class,
RxModule.class,
ActivityModule.class
}
)
public interface GithubApplicationComponent {
Picasso getPicasso();
GithubService getGithubService();
JobManager getJobManager();
Bus getBus();
}
RxModule
@Module
public class RxModule {
@Provides
@AlachiqApplicationScope
public Bus getBus() {
return new RxBus();
}
}
Upvotes: 0
Views: 605
Reputation: 62189
In RxModule
instead of:
return new RxBus();
Do:
return BusProvider.getInstance();
Upvotes: 2