diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java index 274630dae..3cd5bfa23 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java @@ -1601,7 +1601,7 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList title.setText(item.parsedName); value.setText(item.parsedValue); if(item.verifiedAt!=null){ - int textColor=UiUtils.isDarkTheme() ? 0xFF89bb9c : 0xFF5b8e63; + int textColor=UiUtils.getThemeColor(getContext(), R.attr.colorM3Success); value.setTextColor(textColor); value.setLinkTextColor(textColor); Drawable check=getResources().getDrawable(R.drawable.ic_fluent_checkmark_starburst_20_regular, getActivity().getTheme()).mutate(); diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java index 6791ebdbc..fd0f0d14e 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java @@ -250,9 +250,9 @@ public abstract class StatusDisplayItem{ boolean hasSpoiler=!TextUtils.isEmpty(statusForContent.spoilerText); if(!TextUtils.isEmpty(statusForContent.content)){ - SpannableStringBuilder parsedText=HtmlParser.parse(statusForContent.content, statusForContent.emojis, statusForContent.mentions, statusForContent.tags, accountID); + SpannableStringBuilder parsedText=HtmlParser.parse(statusForContent.content, statusForContent.emojis, statusForContent.mentions, statusForContent.tags, accountID, fragment.getContext()); HtmlParser.applyFilterHighlights(fragment.getActivity(), parsedText, status.filtered); - TextStatusDisplayItem text=new TextStatusDisplayItem(parentID, HtmlParser.parse(statusForContent.content, statusForContent.emojis, statusForContent.mentions, statusForContent.tags, accountID), fragment, statusForContent, (flags & FLAG_NO_TRANSLATE) != 0); + TextStatusDisplayItem text=new TextStatusDisplayItem(parentID, HtmlParser.parse(statusForContent.content, statusForContent.emojis, statusForContent.mentions, statusForContent.tags, accountID, fragment.getContext()), fragment, statusForContent, (flags & FLAG_NO_TRANSLATE) != 0); contentItems.add(text); }else if(!hasSpoiler && header!=null){ header.needBottomPadding=true; diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/text/DiffRemovedSpan.java b/mastodon/src/main/java/org/joinmastodon/android/ui/text/DiffRemovedSpan.java index 6f58dc121..481377181 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/text/DiffRemovedSpan.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/text/DiffRemovedSpan.java @@ -3,21 +3,21 @@ package org.joinmastodon.android.ui.text; import android.text.TextPaint; import android.text.style.CharacterStyle; -import org.joinmastodon.android.ui.utils.UiUtils; - public class DiffRemovedSpan extends CharacterStyle { private final String text; + private final int color; - public DiffRemovedSpan(String text){ + public DiffRemovedSpan(String text, int color){ this.text=text; + this.color=color; } @Override public void updateDrawState(TextPaint tp) { tp.setStrikeThruText(true); - tp.setColor(0xFFCA5B63); + tp.setColor(color); } public String getText() { diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/text/HtmlParser.java b/mastodon/src/main/java/org/joinmastodon/android/ui/text/HtmlParser.java index 0cd72eeaa..7cc2741b6 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/text/HtmlParser.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/text/HtmlParser.java @@ -70,6 +70,10 @@ public class HtmlParser{ private HtmlParser(){} + public static SpannableStringBuilder parse(String source, List emojis, List mentions, List tags, String accountID){ + return parse(source, emojis, mentions, tags, accountID, null); + } + /** * Parse HTML and custom emoji into a spanned string for display. * Supported tags:
    @@ -82,7 +86,7 @@ public class HtmlParser{ * @param emojis Custom emojis that are present in source as :code: * @return a spanned string */ - public static SpannableStringBuilder parse(String source, List emojis, List mentions, List tags, String accountID){ + public static SpannableStringBuilder parse(String source, List emojis, List mentions, List tags, String accountID, Context context){ class SpanInfo{ public Object span; public int start; @@ -107,6 +111,9 @@ public class HtmlParser{ Map tagsByTag=tags.stream().distinct().collect(Collectors.toMap(t->t.name.toLowerCase(), Function.identity())); final SpannableStringBuilder ssb=new SpannableStringBuilder(); + int colorInsert=UiUtils.getThemeColor(context, R.attr.colorM3Success); + int colorDelete=UiUtils.getThemeColor(context, R.attr.colorM3Error); + Jsoup.parseBodyFragment(source).body().traverse(new NodeVisitor(){ private final ArrayList openSpans=new ArrayList<>(); @@ -173,8 +180,8 @@ public class HtmlParser{ case "code", "pre" -> openSpans.add(new SpanInfo(new TypefaceSpan("monospace"), ssb.length(), el)); case "blockquote" -> openSpans.add(new SpanInfo(new LeadingMarginSpan.Standard(V.dp(10)), ssb.length(), el)); // fake elements for the edit history diff view - case "edit-diff-insert" -> openSpans.add(new SpanInfo(new ForegroundColorSpan(UiUtils.isDarkTheme() ? 0xFF89bb9c : 0xFF5b8e63), ssb.length(), el)); - case "edit-diff-delete" -> openSpans.add(new SpanInfo(new DiffRemovedSpan(el.text()), ssb.length(), el)); + case "edit-diff-insert" -> openSpans.add(new SpanInfo(new ForegroundColorSpan(colorInsert), ssb.length(), el)); + case "edit-diff-delete" -> openSpans.add(new SpanInfo(new DiffRemovedSpan(el.text(), colorDelete), ssb.length(), el)); } } } diff --git a/mastodon/src/main/res/values/attrs.xml b/mastodon/src/main/res/values/attrs.xml index 0224779c0..a33ec6c53 100644 --- a/mastodon/src/main/res/values/attrs.xml +++ b/mastodon/src/main/res/values/attrs.xml @@ -37,6 +37,7 @@ + diff --git a/mastodon/src/main/res/values/palettes.xml b/mastodon/src/main/res/values/palettes.xml index 793a4ea06..6ea6378d9 100644 --- a/mastodon/src/main/res/values/palettes.xml +++ b/mastodon/src/main/res/values/palettes.xml @@ -59,6 +59,7 @@ @color/bookmark_selected #14000000 #22000000 + #FF5b8e63 #1F1F1F1F #B3261E @@ -143,6 +144,7 @@ #F9DEDC #000 #80000000 + #FF89bb9c