Как бы я внедрил экземпляр от GetTodoRepository
до MainViewModel
, когда GetTodoRepository
требует слушателя в своем конструкторе? Очевидно, что самым простым решением было бы иметь setListener()
вместо установки его в конструкторе или использования Rx Java, но я все же хотел бы знать, как это будет сделано в противном случае.
MainViewModel
public class MainViewModel extends ViewModel implements GetTodoRepository.ResultListener {
private GetTodoRepository getTodoRepository;
public MainViewModel() {
getTodoRepository = new GetTodoRepository(this);
}
GetTodoRepository
public class GetTodoRepository {
private ResultListener listener;
public GetTodoRepository(@NonNull ResultListener listener) {
this.listener = listener;
}
public interface ResultListener {
void onGetTodoSuccess(String data);
void onGetTodoFailed(String msg);
}
}
Компонент кинжала
@Component(modules = AppModule.class)
public interface AppComponent {
void inject(MainViewModel viewModel);
void inject(GetTodoRepository getTodoRepository);
}