From 9d1fd0cb591e8d446eb7b861322412607a9a7f41 Mon Sep 17 00:00:00 2001 From: Conny Duck Date: Mon, 5 May 2025 21:23:04 +0200 Subject: [PATCH] ensure correct font weight for boost/fav count in all locales --- .../tusky/adapter/StatusBaseViewHolder.java | 19 +++++++++++++++---- app/src/main/res/values/strings.xml | 10 ++++------ 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/keylesspalace/tusky/adapter/StatusBaseViewHolder.java b/app/src/main/java/com/keylesspalace/tusky/adapter/StatusBaseViewHolder.java index bd3102923c..687648b8f8 100644 --- a/app/src/main/java/com/keylesspalace/tusky/adapter/StatusBaseViewHolder.java +++ b/app/src/main/java/com/keylesspalace/tusky/adapter/StatusBaseViewHolder.java @@ -3,13 +3,17 @@ import static com.keylesspalace.tusky.viewdata.PollViewDataKt.buildDescription; import android.content.Context; +import android.graphics.Typeface; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.net.Uri; +import android.text.Spannable; +import android.text.SpannableStringBuilder; import android.text.Spanned; import android.text.TextUtils; import android.text.format.DateUtils; +import android.text.style.StyleSpan; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; @@ -22,10 +26,10 @@ import androidx.annotation.DrawableRes; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.annotation.PluralsRes; import androidx.appcompat.content.res.AppCompatResources; import androidx.appcompat.widget.TooltipCompat; import androidx.constraintlayout.widget.ConstraintLayout; -import androidx.core.text.HtmlCompat; import androidx.recyclerview.widget.DefaultItemAnimator; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -980,14 +984,21 @@ private CharSequence getPollDescription(@NonNull StatusViewData.Concrete status, @NonNull protected CharSequence getFavsText(@NonNull Context context, int count) { - String countString = numberFormat.format(count); - return HtmlCompat.fromHtml(context.getResources().getQuantityString(R.plurals.favs, count, countString), HtmlCompat.FROM_HTML_MODE_LEGACY); + return getMetaDataText(context, R.plurals.favs, count); } @NonNull protected CharSequence getReblogsText(@NonNull Context context, int count) { + return getMetaDataText(context, R.plurals.reblogs, count); + } + + private CharSequence getMetaDataText(@NonNull Context context, @PluralsRes int text, int count) { String countString = numberFormat.format(count); - return HtmlCompat.fromHtml(context.getResources().getQuantityString(R.plurals.reblogs, count, countString), HtmlCompat.FROM_HTML_MODE_LEGACY); + String textString = context.getResources().getQuantityString(text, count, countString); + SpannableStringBuilder sb = new SpannableStringBuilder(textString); + int countIndex = textString.indexOf(countString); + sb.setSpan(new StyleSpan(Typeface.BOLD), countIndex, countIndex + countString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + return sb; } private void setupPoll(PollViewData poll, List emojis, diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index fadc47a610..4dfbcf48ad 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -556,15 +556,13 @@ Failed to Unpin - %1$s Favorites - <b>%1$s</b> Favorite - <b>%1$s</b> Favorites + %1$s Favorite + %1$s Favorites - %1$s Boosts - <b>%1$s</b> Boost - <b>%1$s</b> Boosts + %1$s Boost + %1$s Boosts Translating…