package com.fastaccess.ui.modules.repos.code.commit.details.comments; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.widget.SwipeRefreshLayout; import com.fastaccess.data.dao.TimelineModel; import com.fastaccess.data.dao.model.Comment; import com.fastaccess.data.dao.model.User; import com.fastaccess.data.dao.types.ReactionTypes; import com.fastaccess.provider.rest.loadmore.OnLoadMore; import com.fastaccess.ui.adapter.callback.OnToggleView; import com.fastaccess.ui.adapter.callback.ReactionsCallback; import com.fastaccess.ui.base.mvp.BaseMvp; import com.fastaccess.ui.widgets.recyclerview.BaseViewHolder; import java.util.ArrayList; import java.util.List; /** * Created by Kosh on 20 Nov 2016, 11:10 AM */ interface CommitCommentsMvp { interface View extends BaseMvp.FAView, SwipeRefreshLayout.OnRefreshListener, android.view.View.OnClickListener, OnToggleView, ReactionsCallback { void onNotifyAdapter(@Nullable List<TimelineModel> items, int page); void onRemove(@NonNull TimelineModel comment); @NonNull OnLoadMore getLoadMore(); void onEditComment(@NonNull Comment item); void onStartNewComment(); void onShowDeleteMsg(long id); void onTagUser(@Nullable User user); void onReply(User user, String message); void showReactionsPopup(@NonNull ReactionTypes reactionTypes, @NonNull String login, @NonNull String repoId, long commentId); } interface Presenter extends BaseMvp.FAPresenter, BaseMvp.PaginationListener<String>, BaseViewHolder.OnItemClickListener<TimelineModel> { void onFragmentCreated(@Nullable Bundle bundle); @NonNull ArrayList<TimelineModel> getComments(); void onHandleDeletion(@Nullable Bundle bundle); void onWorkOffline(); @NonNull String repoId(); @NonNull String login(); String sha(); boolean isPreviouslyReacted(long commentId, int vId); boolean isCallingApi(long id, int vId); } }