package com.fastaccess.ui.modules.repos.pull_requests.pull_request.details;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import com.fastaccess.data.dao.LabelModel;
import com.fastaccess.data.dao.MilestoneModel;
import com.fastaccess.data.dao.model.PullRequest;
import com.fastaccess.data.dao.model.User;
import com.fastaccess.ui.base.mvp.BaseMvp;
import com.fastaccess.ui.modules.repos.extras.assignees.AssigneesMvp;
import com.fastaccess.ui.modules.repos.extras.labels.LabelsMvp;
import com.fastaccess.ui.modules.repos.pull_requests.pull_request.merge.MergePullReqeustMvp;
import com.fastaccess.ui.widgets.SpannableBuilder;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Kosh on 10 Dec 2016, 9:21 AM
*/
public interface PullRequestPagerMvp {
interface View extends BaseMvp.FAView, LabelsMvp.SelectedLabelsListener,
AssigneesMvp.SelectedAssigneesListener, MergePullReqeustMvp.MergeCallback {
void onSetupIssue();
void onLabelsRetrieved(@NonNull List<LabelModel> items);
void onUpdateMenu();
void showSuccessIssueActionMsg(boolean isClose);
void showErrorIssueActionMsg(boolean isClose);
void onUpdateTimeline();
void onMileStoneSelected(@NonNull MilestoneModel milestoneModel);
void onFinishActivity();
}
interface Presenter extends BaseMvp.FAPresenter {
@Nullable PullRequest getPullRequest();
void onActivityCreated(@Nullable Intent intent);
void onWorkOffline();
boolean isOwner();
boolean isRepoOwner();
boolean isLocked();
boolean isMergeable();
boolean showToRepoBtn();
void onHandleConfirmDialog(@Nullable Bundle bundle);
void onOpenCloseIssue();
void onLockUnlockConversations();
@NonNull SpannableBuilder getMergeBy(@NonNull PullRequest pullRequest, @NonNull Context context);
void onMerge(String msg);
void onLoadLabels();
void onPutLabels(@NonNull ArrayList<LabelModel> labels);
void onPutMilestones(@NonNull MilestoneModel milestone);
void onPutAssignees(@NonNull ArrayList<User> users, boolean isAssignee);
String getLogin();
String getRepoId();
boolean isCollaborator();
void onUpdatePullRequest(@NonNull PullRequest pullRequestModel);
}
}