use of com.fastaccess.data.dao.model.Issue in project FastHub by k0shk0sh.
the class CreateIssuePresenter method onSubmit.
@Override
public void onSubmit(@NonNull String title, @NonNull CharSequence description, @NonNull String login, @NonNull String repo, @Nullable Issue issue, @Nullable PullRequest pullRequestModel, @Nullable ArrayList<LabelModel> labels, @Nullable MilestoneModel milestoneModel, @Nullable ArrayList<User> users) {
boolean isEmptyTitle = InputHelper.isEmpty(title);
if (getView() != null) {
getView().onTitleError(isEmptyTitle);
}
if (!isEmptyTitle) {
if (issue == null && pullRequestModel == null) {
CreateIssueModel createIssue = new CreateIssueModel();
createIssue.setBody(InputHelper.toString(description));
createIssue.setTitle(title);
if (isCollaborator) {
if (labels != null && !labels.isEmpty()) {
createIssue.setLabels(Stream.of(labels).map(LabelModel::getName).collect(Collectors.toCollection(ArrayList::new)));
}
if (users != null && !users.isEmpty()) {
createIssue.setAssignees(Stream.of(users).map(User::getLogin).collect(Collectors.toCollection(ArrayList::new)));
}
if (milestoneModel != null) {
createIssue.setMilestone((long) milestoneModel.getNumber());
}
}
makeRestCall(RestProvider.getIssueService(isEnterprise()).createIssue(login, repo, createIssue), issueModel -> {
if (issueModel != null) {
sendToView(view -> view.onSuccessSubmission(issueModel));
} else {
sendToView(view -> view.showMessage(R.string.error, R.string.error_creating_issue));
}
}, false);
} else {
if (issue != null) {
issue.setBody(InputHelper.toString(description));
issue.setTitle(title);
int number = issue.getNumber();
if (isCollaborator) {
if (labels != null) {
LabelListModel labelModels = new LabelListModel();
labelModels.addAll(labels);
issue.setLabels(labelModels);
}
if (milestoneModel != null) {
issue.setMilestone(milestoneModel);
}
if (users != null) {
UsersListModel usersListModel = new UsersListModel();
usersListModel.addAll(users);
issue.setAssignees(usersListModel);
}
}
IssueRequestModel requestModel = IssueRequestModel.clone(issue, false);
makeRestCall(RestProvider.getIssueService(isEnterprise()).editIssue(login, repo, number, requestModel), issueModel -> {
if (issueModel != null) {
sendToView(view -> view.onSuccessSubmission(issueModel));
} else {
sendToView(view -> view.showMessage(R.string.error, R.string.error_creating_issue));
}
}, false);
}
if (pullRequestModel != null) {
int number = pullRequestModel.getNumber();
pullRequestModel.setBody(InputHelper.toString(description));
pullRequestModel.setTitle(title);
if (isCollaborator) {
if (labels != null) {
LabelListModel labelModels = new LabelListModel();
labelModels.addAll(labels);
pullRequestModel.setLabels(labelModels);
}
if (milestoneModel != null) {
pullRequestModel.setMilestone(milestoneModel);
}
if (users != null) {
UsersListModel usersListModel = new UsersListModel();
usersListModel.addAll(users);
pullRequestModel.setAssignees(usersListModel);
}
}
IssueRequestModel requestModel = IssueRequestModel.clone(pullRequestModel, false);
makeRestCall(RestProvider.getPullRequestService(isEnterprise()).editPullRequest(login, repo, number, requestModel).flatMap(pullRequest1 -> RestProvider.getIssueService(isEnterprise()).getIssue(login, repo, number), (pullRequest1, issueReaction) -> {
// hack to get reactions from issue api
if (issueReaction != null) {
pullRequest1.setReactions(issueReaction.getReactions());
}
return pullRequest1;
}), pr -> {
if (pr != null) {
sendToView(view -> view.onSuccessSubmission(pr));
} else {
sendToView(view -> view.showMessage(R.string.error, R.string.error_creating_issue));
}
}, false);
}
}
}
}
use of com.fastaccess.data.dao.model.Issue in project FastHub by k0shk0sh.
the class IssuePagerPresenter method onOpenCloseIssue.
@Override
public void onOpenCloseIssue() {
Issue currentIssue = getIssue();
if (currentIssue != null) {
IssueRequestModel requestModel = IssueRequestModel.clone(currentIssue, true);
manageDisposable(RxHelper.getObservable(RestProvider.getIssueService(isEnterprise()).editIssue(login, repoId, issueNumber, requestModel)).doOnSubscribe(disposable -> sendToView(view -> view.showProgress(0))).subscribe(issue -> {
if (issue != null) {
sendToView(view -> view.showSuccessIssueActionMsg(currentIssue.getState() == IssueState.open));
issue.setRepoId(issueModel.getRepoId());
issue.setLogin(issueModel.getLogin());
issueModel = issue;
sendToView(view -> view.onSetupIssue(false));
}
}, this::onError));
}
}
use of com.fastaccess.data.dao.model.Issue in project FastHub by k0shk0sh.
the class IssuePagerActivity method onSetupIssue.
@Override
public void onSetupIssue(boolean isUpdate) {
hideProgress();
if (getPresenter().getIssue() == null) {
return;
}
onUpdateMenu();
Issue issueModel = getPresenter().getIssue();
setTaskName(issueModel.getRepoId() + " - " + issueModel.getTitle());
setTitle(String.format("#%s", issueModel.getNumber()));
if (getSupportActionBar() != null) {
getSupportActionBar().setSubtitle(issueModel.getRepoId());
}
updateViews(issueModel);
if (isUpdate) {
IssueTimelineFragment issueDetailsView = getIssueTimelineFragment();
if (issueDetailsView != null && getPresenter().getIssue() != null) {
issueDetailsView.onUpdateHeader();
}
} else {
if (pager.getAdapter() == null) {
Logger.e(getPresenter().commentId);
pager.setAdapter(new FragmentsPagerAdapter(getSupportFragmentManager(), FragmentPagerAdapterModel.buildForIssues(this, getPresenter().commentId)));
} else {
onUpdateTimeline();
}
}
if (!getPresenter().isLocked() || getPresenter().isOwner()) {
pager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
hideShowFab();
}
});
}
hideShowFab();
}
use of com.fastaccess.data.dao.model.Issue in project FastHub by k0shk0sh.
the class IssuePagerPresenter method onLockUnlockIssue.
@Override
public void onLockUnlockIssue(String reason) {
Issue currentIssue = getIssue();
if (currentIssue == null)
return;
String login = getLogin();
String repoId = getRepoId();
int number = currentIssue.getNumber();
LockIssuePrModel model = null;
if (!isLocked() && !InputHelper.isEmpty(reason)) {
model = new LockIssuePrModel(true, reason);
}
IssueService issueService = RestProvider.getIssueService(isEnterprise());
Observable<Response<Boolean>> observable = RxHelper.getObservable(model == null ? issueService.unlockIssue(login, repoId, number) : issueService.lockIssue(model, login, repoId, number));
makeRestCall(observable, booleanResponse -> {
int code = booleanResponse.code();
if (code == 204) {
issueModel.setLocked(!isLocked());
sendToView(view -> view.onSetupIssue(true));
}
sendToView(IssuePagerMvp.View::hideProgress);
});
}
use of com.fastaccess.data.dao.model.Issue in project FastHub by k0shk0sh.
the class IssueTimelinePresenter method onHandleReaction.
@Override
public void onHandleReaction(int viewId, long id, @ReactionsProvider.ReactionType int reactionType) {
if (getView() == null || getView().getIssue() == null)
return;
Issue issue = getView().getIssue();
String login = issue.getLogin();
String repoId = issue.getRepoId();
Observable observable = getReactionsProvider().onHandleReaction(viewId, id, login, repoId, reactionType, isEnterprise());
if (observable != null)
manageObservable(observable);
}
Aggregations