Search in sources :

Example 1 with MailLabelChangedEvent

use of com.hannesdorfmann.mosby3.sample.mail.model.event.MailLabelChangedEvent in project mosby by sockeqwe.

the class LabelPresenter method setLabel.

public void setLabel(final Mail mail, String newLabel) {
    // Optimistic propagation
    final String oldLabel = mail.getLabel();
    eventBus.post(new MailLabelChangedEvent(mail, newLabel));
    mailProvider.setLabel(mail, newLabel).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Subscriber<Mail>() {

        @Override
        public void onCompleted() {
        }

        @Override
        public void onError(Throwable e) {
            eventBus.post(new MailLabelChangedEvent(mail, oldLabel));
            if (isViewAttached()) {
                getView().changeLabel(mail, oldLabel);
                getView().showChangeLabelFailed(mail, e);
            }
        }

        @Override
        public void onNext(Mail m) {
        }
    });
// Don't cancel this onDetach
}
Also used : MailLabelChangedEvent(com.hannesdorfmann.mosby3.sample.mail.model.event.MailLabelChangedEvent) Mail(com.hannesdorfmann.mosby3.sample.mail.model.mail.Mail)

Aggregations

MailLabelChangedEvent (com.hannesdorfmann.mosby3.sample.mail.model.event.MailLabelChangedEvent)1 Mail (com.hannesdorfmann.mosby3.sample.mail.model.mail.Mail)1