package com.badoo.chateau.ui.conversations.create.namegroup; import android.support.annotation.NonNull; import android.text.TextUtils; import com.badoo.barf.mvp.BaseRxPresenter; import com.badoo.barf.rx.ScheduleOn; import com.badoo.chateau.core.model.Conversation; import com.badoo.chateau.core.usecases.conversations.CreateGroupConversation; import java.util.List; import rx.Subscription; public class NameGroupPresenterImpl<C extends Conversation> extends BaseRxPresenter implements NameGroupPresenter { @NonNull private final CreateGroupConversation<C> mGroupConversation; @NonNull private final List<String> mUserIds; @NonNull private final NameGroupView mView; @NonNull private final NameGroupFlowListener<C> mFlowListener; public NameGroupPresenterImpl(@NonNull NameGroupView view, @NonNull NameGroupFlowListener<C> flowListener, @NonNull List<String> userIds, @NonNull CreateGroupConversation<C> groupConversation) { mView = view; mFlowListener = flowListener; mUserIds = userIds; mGroupConversation = groupConversation; } @Override public void onCreateGroupClicked(@NonNull String name) { if (TextUtils.isEmpty(name)) { mView.showGroupNameEmptyError(); return; } final Subscription createGroupSub = mGroupConversation.execute(mUserIds, name) .compose(ScheduleOn.io()) .subscribe( mFlowListener::requestOpenChat, throwable -> { throw new IllegalStateException("Can't create chat????", throwable); }); manage(createGroupSub); } }