Skip to content

Instantly share code, notes, and snippets.

@dened
Last active May 3, 2019 10:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save dened/bf8b87242ec0d63071482d0c632b81bb to your computer and use it in GitHub Desktop.
Save dened/bf8b87242ec0d63071482d0c632b81bb to your computer and use it in GitHub Desktop.
Dagger + Moxy
@Module
public class PresenterModule {
@Provides
LoginPresenter providePresenter(Router router, LoginInteractor interactor, PreferenceUtils preferenceUtils) {
return new LoginPresenter(router, interactor, preferenceUtils);
}
}
@Singleton
@Component(modules = {
//...
PresenterModule.class })
public interface AppComponent {
//...
LoginPresenter getLoginPresenter();
}
public class LoginFragment extends BaseFragment implements LoginView {
@InjectPresenter
LoginPresenter loginPresenter;
@ProvidePresenter
LoginPresenter provideLoginPresenter() {
return App.getComponent().getLoginPresenter();
}
//...
}
@dened
Copy link
Author

dened commented Feb 8, 2017

// Вариант #2
// Убираем модуль и прописываем @Inject у конструктора презентера

@Singleton
@Component(modules = {
        //...
        })
public interface AppComponent {
    //... 
    LoginPresenter getLoginPresenter();
}


@InjectViewState
public class LoginPresenter extends MvpPresenter<LoginView> {
    private final Router router;
    private final LoginInteractor interactor;
    private final PreferenceUtils preferenceUtils;

    @Inject
    public LoginPresenter(Router router, LoginInteractor interactor, PreferenceUtils preferenceUtils) {
        this.router = router;
        this.interactor = interactor;
        this.preferenceUtils = preferenceUtils;
    }
   //...
}


public class LoginFragment extends BaseFragment implements LoginView {

    @InjectPresenter
    LoginPresenter loginPresenter;

    @ProvidePresenter
    LoginPresenter provideLoginPresenter() {
        return App.getComponent().getLoginPresenter();
    }
    //...
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment