fixed commit referring linking in issue/pullrequest.

This commit is contained in:
Kosh 2017-02-23 21:48:20 +08:00
parent 6643b71d0d
commit b5f940aff4
3 changed files with 22 additions and 19 deletions

View File

@ -11,7 +11,6 @@ import com.annimon.stream.Optional;
import com.annimon.stream.Stream;
import com.fastaccess.helper.ActivityHelper;
import com.fastaccess.helper.InputHelper;
import com.fastaccess.helper.Logger;
import com.fastaccess.ui.modules.code.CodeViewerView;
import com.fastaccess.ui.modules.gists.gist.GistView;
import com.fastaccess.ui.modules.repos.RepoPagerView;
@ -101,8 +100,9 @@ public class SchemeParser {
Intent issueIntent = getIssueIntent(context, data);
Intent repoIntent = getRepo(context, data);
Intent commit = getCommit(context, data);
Intent commits = getCommits(context, data);
Intent blob = getBlob(context, data);
Optional<Intent> intentOptional = returnNonNull(userIntent, pullRequestIntent, commit, issueIntent, repoIntent, blob);
Optional<Intent> intentOptional = returnNonNull(userIntent, pullRequestIntent, commit, commits, issueIntent, repoIntent, blob);
Optional<Intent> empty = Optional.empty();
if (intentOptional != null && intentOptional.isPresent() && intentOptional != empty)
return intentOptional.get();
@ -156,6 +156,18 @@ public class SchemeParser {
return RepoPagerView.createIntent(context, repoName, owner);
}
@Nullable private static Intent getCommits(@NonNull Context context, @NonNull Uri uri) {
List<String> segments = uri.getPathSegments();
if (segments == null || segments.isEmpty() || segments.size() < 4) return null;
if (segments.get(3).equals("commits")) {
String login = segments.get(1);
String repoId = segments.get(2);
String sha = segments.get(4);
return CommitPagerView.createIntent(context, repoId, login, sha);
}
return null;
}
@Nullable private static Intent getCommit(@NonNull Context context, @NonNull Uri uri) {
List<String> segments = uri.getPathSegments();
if (segments == null || segments.size() < 4 || !"commit".equals(segments.get(2))) return null;
@ -186,7 +198,6 @@ public class SchemeParser {
String fullUrl = uri.toString();
return CodeViewerView.createIntent(context, fullUrl);
}
Logger.e(uri);
return null;
}

View File

@ -1,6 +1,6 @@
package com.fastaccess.ui.modules.repos.issues.issue.details.events;
import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
@ -9,10 +9,9 @@ import android.view.View;
import com.fastaccess.data.dao.IssueEventAdapterModel;
import com.fastaccess.data.dao.IssueEventModel;
import com.fastaccess.data.dao.IssueModel;
import com.fastaccess.helper.ActivityHelper;
import com.fastaccess.helper.BundleConstant;
import com.fastaccess.helper.Logger;
import com.fastaccess.provider.rest.RestProvider;
import com.fastaccess.provider.scheme.SchemeParser;
import com.fastaccess.ui.base.mvp.presenter.BasePresenter;
import java.util.ArrayList;
@ -65,14 +64,10 @@ class IssueDetailsPresenter extends BasePresenter<IssueDetailsMvp.View> implemen
}
@Override public void onItemClick(int position, View v, IssueEventAdapterModel item) {
Logger.e(item.getType());
if (item.getType() != IssueEventAdapterModel.HEADER) {
IssueEventModel issueEventModel = item.getIssueEvent();
if (issueEventModel.getCommitUrl() != null) {
Activity activity = ActivityHelper.getActivity(v.getContext());
if (activity != null) {
ActivityHelper.startCustomTab(activity, issueEventModel.getCommitUrl());
}
SchemeParser.launchUri(v.getContext(), Uri.parse(issueEventModel.getCommitUrl()));
}
}
}

View File

@ -1,6 +1,6 @@
package com.fastaccess.ui.modules.repos.pull_requests.pull_request.details.events;
import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
@ -10,10 +10,10 @@ import com.fastaccess.data.dao.IssueEventAdapterModel;
import com.fastaccess.data.dao.IssueEventModel;
import com.fastaccess.data.dao.PullRequestAdapterModel;
import com.fastaccess.data.dao.PullRequestModel;
import com.fastaccess.helper.ActivityHelper;
import com.fastaccess.helper.BundleConstant;
import com.fastaccess.helper.Logger;
import com.fastaccess.provider.rest.RestProvider;
import com.fastaccess.provider.scheme.SchemeParser;
import com.fastaccess.ui.base.mvp.presenter.BasePresenter;
import java.util.ArrayList;
@ -45,12 +45,9 @@ class PullRequestDetailsPresenter extends BasePresenter<PullRequestDetailsMvp.Vi
@Override public void onItemClick(int position, View v, PullRequestAdapterModel item) {
Logger.e(item.getType());
if (item.getType() != IssueEventAdapterModel.HEADER) {
IssueEventModel issueEventModel = item.getIssueEvent();
if (issueEventModel.getCommitUrl() != null) {
Activity activity = ActivityHelper.getActivity(v.getContext());
if (activity != null) {
ActivityHelper.startCustomTab(activity, issueEventModel.getCommitUrl());
}
IssueEventModel pullEvent = item.getIssueEvent();
if (pullEvent.getCommitUrl() != null) {
SchemeParser.launchUri(v.getContext(), Uri.parse(pullEvent.getCommitUrl()));
}
}
}