aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Ning <chineseperson5@gmail.com>2021-04-06 15:43:32 +0000
committerAlex Ning <chineseperson5@gmail.com>2021-04-06 15:43:32 +0000
commitbedcf6d0b626a447d4fec40e3e33b4fe0339ea38 (patch)
treefd52b034f3f4bdabbc257a4186982680289c9e17
parent98a66a8bb780e083dd82a34bdff240ce132a755c (diff)
downloadinfinity-for-reddit-bedcf6d0b626a447d4fec40e3e33b4fe0339ea38.tar
infinity-for-reddit-bedcf6d0b626a447d4fec40e3e33b4fe0339ea38.tar.gz
infinity-for-reddit-bedcf6d0b626a447d4fec40e3e33b4fe0339ea38.tar.bz2
infinity-for-reddit-bedcf6d0b626a447d4fec40e3e33b4fe0339ea38.tar.lz
infinity-for-reddit-bedcf6d0b626a447d4fec40e3e33b4fe0339ea38.tar.xz
infinity-for-reddit-bedcf6d0b626a447d4fec40e3e33b4fe0339ea38.tar.zst
infinity-for-reddit-bedcf6d0b626a447d4fec40e3e33b4fe0339ea38.zip
Support inline gif in comments.
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/comment/ParseComment.java2
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/utils/Utils.java19
2 files changed, 20 insertions, 1 deletions
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/comment/ParseComment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/comment/ParseComment.java
index 0b38c530..d5a41dd1 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/comment/ParseComment.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/comment/ParseComment.java
@@ -140,7 +140,7 @@ public class ParseComment {
String distinguished = singleCommentData.getString(JSONUtils.DISTINGUISHED_KEY);
String commentMarkdown = "";
if (!singleCommentData.isNull(JSONUtils.BODY_KEY)) {
- commentMarkdown = Utils.modifyMarkdown(singleCommentData.getString(JSONUtils.BODY_KEY).trim());
+ commentMarkdown = Utils.parseInlineGifInComments(Utils.modifyMarkdown(singleCommentData.getString(JSONUtils.BODY_KEY).trim()));
}
String commentRawText = Utils.trimTrailingWhitespace(
Html.fromHtml(singleCommentData.getString(JSONUtils.BODY_HTML_KEY))).toString();
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/utils/Utils.java b/app/src/main/java/ml/docilealligator/infinityforreddit/utils/Utils.java
index f7a7d247..4cea425b 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/utils/Utils.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/utils/Utils.java
@@ -22,6 +22,8 @@ import androidx.core.text.HtmlCompat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import ml.docilealligator.infinityforreddit.R;
import ml.docilealligator.infinityforreddit.SortType;
@@ -93,6 +95,23 @@ public class Utils {
return regexed.toString();
}
+ public static String parseInlineGifInComments(String markdown) {
+ StringBuilder markdownStringBuilder = new StringBuilder(markdown);
+ Pattern inlineGifPattern = Pattern.compile("!\\[gif]\\(giphy\\|\\w+\\)");
+ Matcher matcher = inlineGifPattern.matcher(markdownStringBuilder);
+ while (matcher.find()) {
+ markdownStringBuilder.replace(matcher.start(), matcher.end(), "[gif](https://media3.giphy.com/media/" + markdownStringBuilder.substring(matcher.start() + "![gif](giphy|".length(), matcher.end() - 1) + "/giphy.mp4)");
+ }
+
+ Pattern inlineGifPattern2 = Pattern.compile("!\\[gif]\\(giphy\\|\\w+\\|downsized\\)");
+ Matcher matcher2 = inlineGifPattern2.matcher(markdownStringBuilder);
+ while (matcher2.find()) {
+ markdownStringBuilder.replace(matcher2.start(), matcher2.end(), "[gif](https://media3.giphy.com/media/" + markdownStringBuilder.substring(matcher2.start() + "![gif](giphy|".length(), matcher2.end() - "|downsized\\)".length()) + "/giphy.mp4)");
+ }
+
+ return markdownStringBuilder.toString();
+ }
+
public static CharSequence trimTrailingWhitespace(CharSequence source) {
if(source == null)