diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index dd54f09d..846df109 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -9,6 +9,7 @@
+
intentOptional = returnNonNull(trending, projects, userIntent, repoIssues, repoPulls,
+ Intent search = getSearchIntent(context, data);
+ Optional intentOptional = returnNonNull(trending, projects, search, userIntent, repoIssues, repoPulls,
pullRequestIntent, label, commit, commits, createIssueIntent, issueIntent, releasesIntent, repoIntent,
repoWikiIntent, blob);
Optional empty = Optional.empty();
@@ -267,7 +268,6 @@ public class SchemeParser {
return null;
}
if (issueNumber < 1) return null;
- Logger.e(commentId);
return IssuePagerActivity.createIntent(context, repo, owner, issueNumber, showRepoBtn,
LinkParserHelper.isEnterprise(uri.toString()), commentId == null ? 0 : commentId);
}
@@ -463,6 +463,11 @@ public class SchemeParser {
if (segments != null && segments.size() == 3 && uri.getLastPathSegment().equalsIgnoreCase("issues")) {
String owner = segments.get(0);
String repo = segments.get(1);
+ Uri encoded = Uri.parse(uri.toString().replace("utf8=%E2%9C%93&", ""));
+ if (encoded.getQueryParameter("q") != null) {
+ String query = encoded.getQueryParameter("q");
+ return FilterIssuesActivity.getIntent(context, owner, repo, query);
+ }
return RepoPagerActivity.createIntent(context, repo, owner, RepoPagerMvp.ISSUES);
}
return null;
@@ -473,6 +478,11 @@ public class SchemeParser {
if (segments != null && segments.size() == 3 && uri.getLastPathSegment().equalsIgnoreCase("pulls")) {
String owner = segments.get(0);
String repo = segments.get(1);
+ Uri encoded = Uri.parse(uri.toString().replace("utf8=%E2%9C%93&", ""));
+ if (encoded.getQueryParameter("q") != null) {
+ String query = encoded.getQueryParameter("q");
+ return FilterIssuesActivity.getIntent(context, owner, repo, query);
+ }
return RepoPagerActivity.createIntent(context, repo, owner, RepoPagerMvp.PULL_REQUEST);
}
return null;
@@ -552,4 +562,17 @@ public class SchemeParser {
}
return null;
}
+
+ @Nullable private static Intent getSearchIntent(@NonNull Context context, @NonNull Uri uri) {
+ List segments = uri.getPathSegments();
+ if (segments == null || segments.size() > 1) return null;
+ String search = segments.get(0);
+ if ("search".equalsIgnoreCase(search)) {
+ Uri encoded = Uri.parse(uri.toString().replace("utf8=%E2%9C%93&", ""));
+ String query = encoded.getQueryParameter("q");
+ Logger.e(encoded, query);
+ return SearchActivity.getIntent(context, query);
+ }
+ return null;
+ }
}
diff --git a/app/src/main/java/com/fastaccess/provider/timeline/handler/DrawableHandler.java b/app/src/main/java/com/fastaccess/provider/timeline/handler/DrawableHandler.java
index fdf7ffa0..fe6517db 100644
--- a/app/src/main/java/com/fastaccess/provider/timeline/handler/DrawableHandler.java
+++ b/app/src/main/java/com/fastaccess/provider/timeline/handler/DrawableHandler.java
@@ -38,15 +38,14 @@ import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
if (!PrefGetter.isAutoImageDisabled()) {
builder.append("");
if (isNull()) return;
+ builder.append("\n");
DrawableGetter imageGetter = new DrawableGetter(textView, width);
builder.setSpan(new ImageSpan(imageGetter.getDrawable(src)), start, builder.length(), SPAN_EXCLUSIVE_EXCLUSIVE);
builder.setSpan(new CenterSpan(), start, builder.length(), SPAN_EXCLUSIVE_EXCLUSIVE);
- appendNewLine(builder);
+ builder.append("\n");
} else {
- builder.append(SpannableBuilder.builder().clickable("Image", v -> {
- SchemeParser.launchUri(v.getContext(), src);
- }));
- appendNewLine(builder);
+ builder.append(SpannableBuilder.builder().clickable("Image", v -> SchemeParser.launchUri(v.getContext(), src)));
+ builder.append("\n");
}
}
}
diff --git a/app/src/main/java/com/fastaccess/provider/timeline/handler/drawable/DrawableGetter.java b/app/src/main/java/com/fastaccess/provider/timeline/handler/drawable/DrawableGetter.java
index ed2c9188..12c78e0e 100644
--- a/app/src/main/java/com/fastaccess/provider/timeline/handler/drawable/DrawableGetter.java
+++ b/app/src/main/java/com/fastaccess/provider/timeline/handler/drawable/DrawableGetter.java
@@ -3,6 +3,7 @@ package com.fastaccess.provider.timeline.handler.drawable;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.support.annotation.NonNull;
+import android.support.v4.content.ContextCompat;
import android.text.Html;
import android.widget.TextView;
@@ -36,8 +37,10 @@ public class DrawableGetter implements Html.ImageGetter, Drawable.Callback {
Context context = container.get().getContext();
final GenericRequestBuilder load = Glide.with(context)
.load(url)
+ .placeholder(ContextCompat.getDrawable(context, R.drawable.ic_image))
.dontAnimate();
final GlideDrawableTarget target = new GlideDrawableTarget(urlDrawable, container, width);
+ load.override(width, width / 2);
load.into(target);
cachedTargets.add(target);
}
diff --git a/app/src/main/java/com/fastaccess/ui/modules/editor/comment/CommentEditorFragment.kt b/app/src/main/java/com/fastaccess/ui/modules/editor/comment/CommentEditorFragment.kt
index 6d7996ee..bfb552b8 100644
--- a/app/src/main/java/com/fastaccess/ui/modules/editor/comment/CommentEditorFragment.kt
+++ b/app/src/main/java/com/fastaccess/ui/modules/editor/comment/CommentEditorFragment.kt
@@ -18,7 +18,6 @@ import com.fastaccess.helper.Bundler
import com.fastaccess.helper.InputHelper
import com.fastaccess.helper.ViewHelper
import com.fastaccess.provider.emoji.Emoji
-import com.fastaccess.provider.timeline.CommentsHelper
import com.fastaccess.ui.base.BaseFragment
import com.fastaccess.ui.base.mvp.BaseMvp
import com.fastaccess.ui.base.mvp.presenter.BasePresenter
@@ -96,7 +95,7 @@ class CommentEditorFragment : BaseFragment implements MainMvp.View {
@State @MainMvp.NavigationType int navType = MainMvp.FEEDS;
@@ -146,6 +149,29 @@ public class MainActivity extends BaseActivity impl
finish();
}
+ @Override public void onScrollTop(int index) {
+ super.onScrollTop(index);
+ FragmentManager fragmentManager = getSupportFragmentManager();
+ if (index == 0) {
+ FeedsFragment homeView = (FeedsFragment) getFragmentByTag(fragmentManager, FeedsFragment.TAG);
+ if (homeView != null) {
+ homeView.onScrollTop(index);
+ }
+ } else if (index == 1) {
+ MyIssuesPagerFragment issuesView = (MyIssuesPagerFragment) getFragmentByTag
+ (fragmentManager, MyIssuesPagerFragment.TAG);
+ if (issuesView != null) {
+ issuesView.onScrollTop(index);
+ }
+ } else if (index == 2) {
+ MyPullsPagerFragment pullRequestView = (MyPullsPagerFragment) getFragmentByTag
+ (fragmentManager, MyPullsPagerFragment.TAG);
+ if (pullRequestView != null) {
+ pullRequestView.onScrollTop(0);
+ }
+ }
+ }
+
@Shortcut(id = "myIssues", icon = R.drawable.ic_app_shortcut_issues, shortLabelRes = R.string.issues, rank = 2, action = "myIssues")
public void myIssues() {}//do nothing
diff --git a/app/src/main/java/com/fastaccess/ui/modules/main/MainPresenter.java b/app/src/main/java/com/fastaccess/ui/modules/main/MainPresenter.java
index 7f7d7b0c..4e2fb50a 100644
--- a/app/src/main/java/com/fastaccess/ui/modules/main/MainPresenter.java
+++ b/app/src/main/java/com/fastaccess/ui/modules/main/MainPresenter.java
@@ -132,5 +132,7 @@ public class MainPresenter extends BasePresenter implements MainMv
}
}
- @Override public void onMenuItemReselect(@IdRes int id, int position, boolean fromUser) {}
+ @Override public void onMenuItemReselect(@IdRes int id, int position, boolean fromUser) {
+ sendToView(view -> view.onScrollTop(position));
+ }
}
diff --git a/app/src/main/java/com/fastaccess/ui/modules/main/issues/pager/MyIssuesPagerFragment.java b/app/src/main/java/com/fastaccess/ui/modules/main/issues/pager/MyIssuesPagerFragment.java
index 0d2ab609..d7ac22ab 100644
--- a/app/src/main/java/com/fastaccess/ui/modules/main/issues/pager/MyIssuesPagerFragment.java
+++ b/app/src/main/java/com/fastaccess/ui/modules/main/issues/pager/MyIssuesPagerFragment.java
@@ -109,6 +109,16 @@ public class MyIssuesPagerFragment extends BaseFragment