From bedcf6d0b626a447d4fec40e3e33b4fe0339ea38 Mon Sep 17 00:00:00 2001 From: Alex Ning Date: Tue, 6 Apr 2021 23:43:32 +0800 Subject: Support inline gif in comments. --- .../infinityforreddit/comment/ParseComment.java | 2 +- .../infinityforreddit/utils/Utils.java | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) (limited to 'app/src') 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) -- cgit v1.2.3 b2&follow=1'>metadata/android/en-US/images/phoneScreenshots/8.png (unfollow)
Commit message (Expand)AuthorFilesLines
2022-09-09Fix memory leak on BigImageViewer (#1067)Michael Manganiello3-3/+3
2022-09-08Update ExoPlayer.Docile-Alligator25-1936/+1303
2022-09-06Version 5.3.1.Docile-Alligator5-313/+12
2022-09-04Fix stupid Redgifs API issue.Docile-Alligator54-121/+6559
2022-08-27Version 5.3.0.Docile-Alligator2-3/+3
2022-08-26Minor bugs fixed.Docile-Alligator1-1/+5
2022-08-21Show an indicator for the current sort type.Docile-Alligator13-39/+145
2022-08-21Show an indicator for the current sort type in SortTypeBottomSheetFragment.Docile-Alligator9-27/+66
2022-08-16Version 5.3.0-beta1.Docile-Alligator2-4/+2
2022-08-16Receive events in HistoryPostFragment.Docile-Alligator1-6/+399
2022-08-15Update Redgifs API.Docile-Alligator4-13/+35
2022-08-15Show urls in ShareLinkBottomSheetFragment.Docile-Alligator2-2/+40
2022-08-15Apply custom theme to settings page.Docile-Alligator77-239/+518
2022-08-14Apply custom theme to the header of the navigation drawer.Docile-Alligator4-16/+14
2022-08-14Heading markdown fix (#908)Sergei Kozelko11-15/+165
2022-08-14Fix post content is not parsed in other types of posts.Docile-Alligator8-96/+131
2022-08-13Fix saved comments not shown when clicking Saved option in the bottom navigat...Docile-Alligator4-8/+4
2022-08-13Fix caption shown under the navbar in ViewRedditGalleryImageOrGifFragment.Docile-Alligator4-23/+37
2022-08-12Manage theme insertion callbacks behaviour (#892)Andrei Shpakovskiy1-25/+25
2022-08-12fixed renamed labelWladimir Kirianov1-1/+1
2022-08-12fixed typosWladimir Kirianov1-2/+2
2022-08-05Extra small font sizeDocile-Alligator7-0/+36
2022-08-05Set default position of cursor at the end of query (#842)Andrei Shpakovskiy1-0/+1
2022-08-05Move mAccessToken and mAccountName initialization upper (#841)Anatolii Afanasev1-3/+3
2022-08-05Apply FAB theme in CustomThemeListingActivity (#857)Sergei Kozelko1-0/+1
2022-08-05Fix loading previews after quick scroll (#861)Sergei Kozelko2-1/+8
2022-08-04Clear user flair.Docile-Alligator4-25/+55
2022-07-29Fixed linksWladimir Kirianov1-1/+1
2022-07-28Minor UI tweaks in ViewSubredditDetailActivity, ViewUserDetailActivity and Cu...Docile-Alligator12-27/+46
2022-07-28Update config.ymlWladimir Kirianov1-1/+1
2022-07-28Update translation contributors.Docile-Alligator1-19/+19