aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/ml/docilealligator/infinityforreddit
diff options
context:
space:
mode:
authorscria1000 <91804886+scria1000@users.noreply.github.com>2021-11-28 08:40:05 +0000
committerscria1000 <91804886+scria1000@users.noreply.github.com>2021-11-28 08:40:05 +0000
commit9f31b1007d5a9a361b61c14855d6b26ac36161b5 (patch)
tree05ef58d69c35897f3bec60cbfd3350679e14afc8 /app/src/main/java/ml/docilealligator/infinityforreddit
parentf848dad466b48d1bfc8c34d3674329971a738d00 (diff)
downloadinfinity-for-reddit-9f31b1007d5a9a361b61c14855d6b26ac36161b5.tar
infinity-for-reddit-9f31b1007d5a9a361b61c14855d6b26ac36161b5.tar.gz
infinity-for-reddit-9f31b1007d5a9a361b61c14855d6b26ac36161b5.tar.bz2
infinity-for-reddit-9f31b1007d5a9a361b61c14855d6b26ac36161b5.tar.lz
infinity-for-reddit-9f31b1007d5a9a361b61c14855d6b26ac36161b5.tar.xz
infinity-for-reddit-9f31b1007d5a9a361b61c14855d6b26ac36161b5.tar.zst
infinity-for-reddit-9f31b1007d5a9a361b61c14855d6b26ac36161b5.zip
Process subreddit links inside Wiki extra
Diffstat (limited to 'app/src/main/java/ml/docilealligator/infinityforreddit')
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/activities/WikiActivity.java26
1 files changed, 15 insertions, 11 deletions
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/WikiActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/WikiActivity.java
index 4568cfe5..755a1c7b 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/WikiActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/WikiActivity.java
@@ -2,14 +2,10 @@ package ml.docilealligator.infinityforreddit.activities;
import android.content.Intent;
import android.content.SharedPreferences;
-import android.graphics.Color;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
-import android.text.SpannableStringBuilder;
import android.text.Spanned;
-import android.text.TextPaint;
-import android.text.style.ClickableSpan;
import android.text.util.Linkify;
import android.view.MenuItem;
import android.view.View;
@@ -38,9 +34,6 @@ import org.greenrobot.eventbus.Subscribe;
import org.json.JSONException;
import org.json.JSONObject;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
import javax.inject.Inject;
import javax.inject.Named;
@@ -57,21 +50,23 @@ import io.noties.markwon.inlineparser.BangInlineProcessor;
import io.noties.markwon.inlineparser.HtmlInlineProcessor;
import io.noties.markwon.inlineparser.MarkwonInlineParserPlugin;
import io.noties.markwon.linkify.LinkifyPlugin;
+import io.noties.markwon.movement.MovementMethodPlugin;
import io.noties.markwon.recycler.MarkwonAdapter;
import io.noties.markwon.recycler.table.TableEntry;
import io.noties.markwon.recycler.table.TableEntryPlugin;
+import me.saket.bettermovementmethod.BetterLinkMovementMethod;
import ml.docilealligator.infinityforreddit.Infinity;
import ml.docilealligator.infinityforreddit.R;
import ml.docilealligator.infinityforreddit.apis.RedditAPI;
+import ml.docilealligator.infinityforreddit.bottomsheetfragments.UrlMenuBottomSheetFragment;
import ml.docilealligator.infinityforreddit.customtheme.CustomThemeWrapper;
import ml.docilealligator.infinityforreddit.customviews.LinearLayoutManagerBugFixed;
import ml.docilealligator.infinityforreddit.customviews.MarkwonLinearLayoutManager;
import ml.docilealligator.infinityforreddit.events.SwitchAccountEvent;
import ml.docilealligator.infinityforreddit.markdown.SpoilerParserPlugin;
-import ml.docilealligator.infinityforreddit.markdown.SpoilerSpan;
+import ml.docilealligator.infinityforreddit.markdown.SuperscriptInlineProcessor;
import ml.docilealligator.infinityforreddit.utils.JSONUtils;
import ml.docilealligator.infinityforreddit.utils.SharedPreferencesUtils;
-import ml.docilealligator.infinityforreddit.markdown.SuperscriptInlineProcessor;
import ml.docilealligator.infinityforreddit.utils.Utils;
import retrofit2.Call;
import retrofit2.Callback;
@@ -204,6 +199,14 @@ public class WikiActivity extends BaseActivity {
})
.usePlugin(SpoilerParserPlugin.create(markdownColor, spoilerBackgroundColor))
.usePlugin(StrikethroughPlugin.create())
+ .usePlugin(MovementMethodPlugin.create(BetterLinkMovementMethod.linkify(Linkify.WEB_URLS).setOnLinkLongClickListener((textView, url) -> {
+ UrlMenuBottomSheetFragment urlMenuBottomSheetFragment = new UrlMenuBottomSheetFragment();
+ Bundle bundle = new Bundle();
+ bundle.putString(UrlMenuBottomSheetFragment.EXTRA_URL, url);
+ urlMenuBottomSheetFragment.setArguments(bundle);
+ urlMenuBottomSheetFragment.show(getSupportFragmentManager(), urlMenuBottomSheetFragment.getTag());
+ return true;
+ })))
.usePlugin(LinkifyPlugin.create(Linkify.WEB_URLS))
.usePlugin(TableEntryPlugin.create(this))
.build();
@@ -259,8 +262,9 @@ public class WikiActivity extends BaseActivity {
public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
if (response.isSuccessful()) {
try {
- markwonAdapter.setMarkdown(markwon, new JSONObject(response.body())
- .getJSONObject(JSONUtils.DATA_KEY).getString(JSONUtils.CONTENT_MD_KEY));
+ String markdown = new JSONObject(response.body())
+ .getJSONObject(JSONUtils.DATA_KEY).getString(JSONUtils.CONTENT_MD_KEY);
+ markwonAdapter.setMarkdown(markwon, Utils.modifyMarkdown(markdown));
markwonAdapter.notifyDataSetChanged();
} catch (JSONException e) {
e.printStackTrace();