package com.badoo.chateau.ui.chat.input; import android.support.annotation.NonNull; import com.badoo.barf.mvp.BaseRxPresenter; import com.badoo.barf.rx.ScheduleOn; import com.badoo.chateau.core.model.Message; import com.badoo.chateau.core.usecases.messages.SendMessage; public class BaseChatInputPresenter<M extends Message> extends BaseRxPresenter implements ChatInputPresenter<M> { @NonNull private final ChatInputView mView; @NonNull private final SendMessage<M> mSendMessage; private final String mChatId; public BaseChatInputPresenter(@NonNull String chatId, @NonNull ChatInputView view, @NonNull SendMessage<M> sendMessage) { mChatId = chatId; mView = view; mSendMessage = sendMessage; } public String getChatId() { return mChatId; } @Override public void onSendMessage(@NonNull M message) { manage(mSendMessage.execute(mChatId, message) .compose(ScheduleOn.io()).subscribe()); mView.clearText(); } }