diff --git a/mastodon/build.gradle b/mastodon/build.gradle index 3757881ba..8748c8369 100644 --- a/mastodon/build.gradle +++ b/mastodon/build.gradle @@ -13,7 +13,7 @@ android { applicationId "org.joinmastodon.android" minSdk 23 targetSdk 34 - versionCode 122 + versionCode 123 versionName "2.7.3" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/text/BaseMonospaceSpan.java b/mastodon/src/main/java/org/joinmastodon/android/ui/text/BaseMonospaceSpan.java index 84fa9ba04..8425cc441 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/text/BaseMonospaceSpan.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/text/BaseMonospaceSpan.java @@ -21,7 +21,7 @@ public abstract class BaseMonospaceSpan extends TypefaceSpan{ @Override public void updateDrawState(@NonNull TextPaint paint){ super.updateDrawState(paint); - paint.setColor(UiUtils.getThemeColor(context, R.attr.colorM3Tertiary)); + paint.setColor(UiUtils.getThemeColor(context, R.attr.colorRichTextText)); paint.setTextSize(paint.getTextSize()*0.9375f); paint.baselineShift=V.dp(-1); } diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/text/BlockQuoteSpan.java b/mastodon/src/main/java/org/joinmastodon/android/ui/text/BlockQuoteSpan.java index 5cfb7495e..434beac81 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/text/BlockQuoteSpan.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/text/BlockQuoteSpan.java @@ -3,7 +3,9 @@ package org.joinmastodon.android.ui.text; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; +import android.graphics.PorterDuff; import android.graphics.drawable.Drawable; +import android.os.Build; import android.text.Layout; import android.text.Spanned; import android.text.TextPaint; @@ -24,10 +26,8 @@ public class BlockQuoteSpan extends CharacterStyle implements LeadingMarginSpan{ public BlockQuoteSpan(Context context, boolean firstLevel){ this.context=context; - icon=context.getResources().getDrawable(R.drawable.quote, context.getTheme()); + icon=context.getResources().getDrawable(R.drawable.quote, context.getTheme()).mutate(); this.firstLevel=firstLevel; - paint.setColor(UiUtils.getThemeColor(context, R.attr.colorM3TertiaryContainer)); - paint.setAlpha(51); paint.setStyle(Paint.Style.STROKE); paint.setStrokeWidth(V.dp(3)); } @@ -41,21 +41,34 @@ public class BlockQuoteSpan extends CharacterStyle implements LeadingMarginSpan{ @Override public void drawLeadingMargin(@NonNull Canvas c, @NonNull Paint p, int x, int dir, int top, int baseline, int bottom, @NonNull CharSequence text, int start, int end, boolean first, @NonNull Layout layout){ if(text instanceof Spanned s && s.getSpanStart(this)==start){ + int color; + if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.S && UiUtils.isDarkTheme()){ + color=UiUtils.alphaBlendColors( + context.getColor(android.R.color.system_accent3_700), + context.getColor(android.R.color.system_accent3_800), + 0.5f + ); + }else{ + color=UiUtils.getThemeColor(context, R.attr.colorRichTextDecorations); + } int level=s.getSpans(start, end, LeadingMarginSpan.class).length-1; if(dir<0){ // RTL -// c.drawText(this.text, layout.getWidth()-V.dp(32*level)-p.measureText(this.text), baseline, p); if(level==0){ + icon.setColorFilter(color, PorterDuff.Mode.SRC_IN); icon.setBounds(layout.getWidth()-icon.getIntrinsicWidth(), top, layout.getWidth(), top+icon.getIntrinsicHeight()); icon.draw(c); }else{ + paint.setColor(color); float xOffset=layout.getWidth()-V.dp(32+18*(level-1)+1.5f); c.drawLine(xOffset, top, xOffset, layout.getLineBottom(layout.getLineForOffset(s.getSpanEnd(this))), paint); } }else{ if(level==0){ + icon.setColorFilter(color, PorterDuff.Mode.SRC_IN); icon.setBounds(x, top, x+icon.getIntrinsicWidth(), top+icon.getIntrinsicHeight()); icon.draw(c); }else{ + paint.setColor(color); float xOffset=x+V.dp(32+18*(level-1)+1.5f); c.drawLine(xOffset, top, xOffset, layout.getLineBottom(layout.getLineForOffset(s.getSpanEnd(this))), paint); } @@ -65,6 +78,6 @@ public class BlockQuoteSpan extends CharacterStyle implements LeadingMarginSpan{ @Override public void updateDrawState(TextPaint tp){ - tp.setColor(UiUtils.getThemeColor(context, R.attr.colorM3Tertiary)); + tp.setColor(UiUtils.getThemeColor(context, R.attr.colorRichTextText)); } } diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/views/LinkedTextView.java b/mastodon/src/main/java/org/joinmastodon/android/ui/views/LinkedTextView.java index acc11bc4e..e3044d581 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/views/LinkedTextView.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/views/LinkedTextView.java @@ -68,8 +68,7 @@ public class LinkedTextView extends TextView{ currentActionMode=null; } }); - bgPaint.setColor(UiUtils.getThemeColor(context, R.attr.colorM3TertiaryContainer)); - bgPaint.setAlpha(20); + bgPaint.setColor(UiUtils.getThemeColor(context, R.attr.colorRichTextContainer)); bgPaint.setPathEffect(new CornerPathEffect(V.dp(2))); } diff --git a/mastodon/src/main/res/drawable/quote.xml b/mastodon/src/main/res/drawable/quote.xml index 2ec877eec..9452b05e6 100644 --- a/mastodon/src/main/res/drawable/quote.xml +++ b/mastodon/src/main/res/drawable/quote.xml @@ -4,7 +4,6 @@ android:viewportWidth="24" android:viewportHeight="20"> diff --git a/mastodon/src/main/res/values-v31/colors.xml b/mastodon/src/main/res/values-v31/colors.xml index f87cf2e00..ec9b15396 100644 --- a/mastodon/src/main/res/values-v31/colors.xml +++ b/mastodon/src/main/res/values-v31/colors.xml @@ -45,4 +45,11 @@ @android:color/system_neutral2_200 @android:color/system_neutral2_400 @android:color/system_neutral2_700 + + @android:color/system_accent3_700 + @android:color/system_accent3_100 + @android:color/system_accent3_200 + @android:color/system_accent3_200 + @android:color/system_accent3_800 + #0f0 diff --git a/mastodon/src/main/res/values/attrs.xml b/mastodon/src/main/res/values/attrs.xml index 960bce24c..c756146dd 100644 --- a/mastodon/src/main/res/values/attrs.xml +++ b/mastodon/src/main/res/values/attrs.xml @@ -33,6 +33,9 @@ + + + diff --git a/mastodon/src/main/res/values/colors.xml b/mastodon/src/main/res/values/colors.xml index 01eb175ca..c3de36865 100644 --- a/mastodon/src/main/res/values/colors.xml +++ b/mastodon/src/main/res/values/colors.xml @@ -104,5 +104,12 @@ #FFFFFF #FFFFFF + #6C3646 + #FFD9E1 + #FDB2C5 + #FDB2C5 + #512030 + #7A4152 + 0.12 \ No newline at end of file diff --git a/mastodon/src/main/res/values/styles.xml b/mastodon/src/main/res/values/styles.xml index 7db971633..79b4541c1 100644 --- a/mastodon/src/main/res/values/styles.xml +++ b/mastodon/src/main/res/values/styles.xml @@ -58,6 +58,9 @@ #FFF @color/ext_favorite_light @color/ext_boost_light + @color/ext_rich_text_text_light + @color/ext_rich_text_container_light + @color/ext_rich_text_decoration_light ?colorM3Background @color/navigation_bar_bg_light @@ -126,6 +129,9 @@ #000 @color/ext_favorite_dark @color/ext_boost_dark + @color/ext_rich_text_text_dark + @color/ext_rich_text_container_dark + @color/ext_rich_text_decoration_dark ?colorM3Background ?colorM3Background