package com.hannesdorfmann.mosby3.sample.mail.write; import android.content.Context; import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter; import com.hannesdorfmann.mosby3.sample.mail.IntentStarter; import com.hannesdorfmann.mosby3.sample.mail.model.event.LoginSuccessfulEvent; import com.hannesdorfmann.mosby3.sample.mail.model.event.MailSentErrorEvent; import com.hannesdorfmann.mosby3.sample.mail.model.event.MailSentEvent; import com.hannesdorfmann.mosby3.sample.mail.model.event.NotAuthenticatedEvent; import com.hannesdorfmann.mosby3.sample.mail.model.mail.Mail; import de.greenrobot.event.EventBus; import javax.inject.Inject; /** * @author Hannes Dorfmann */ public class WritePresenter extends MvpBasePresenter<WriteView> { private EventBus eventBus; private IntentStarter intentStarter; @Inject public WritePresenter(EventBus eventBus, IntentStarter intentStarter) { this.eventBus = eventBus; this.intentStarter = intentStarter; } public void writeMail(Context context, Mail mail) { getView().showLoading(); intentStarter.sendMailViaService(context, mail); } public void onEventMainThread(NotAuthenticatedEvent event) { if (isViewAttached()) { getView().showAuthenticationRequired(); } } public void onEventMainThread(LoginSuccessfulEvent event) { if (isViewAttached()) { getView().showForm(); } } public void onEventMainThread(MailSentErrorEvent errorEvent){ if (isViewAttached()){ getView().showError(errorEvent.getException()); } } public void onEventMainThread(MailSentEvent event){ if (isViewAttached()){ getView().finishBecauseSuccessful(); } } @Override public void attachView(WriteView view) { super.attachView(view); eventBus.register(this); } @Override public void detachView(boolean retainInstance) { super.detachView(retainInstance); eventBus.unregister(this); } }