From 8951c19581b035466ddf66b0f6e89e8a105ce898 Mon Sep 17 00:00:00 2001 From: Alexander Bakker Date: Sun, 10 Mar 2024 20:38:15 +0100 Subject: [PATCH] Only bold number of shown entries if found in the translated string This should fix the following crash: ``` Exception java.lang.IndexOutOfBoundsException: setSpan (-1 ... 0) starts before 0 at android.text.SpannableStringInternal.checkRange (SpannableStringInternal.java:499) at android.text.SpannableStringInternal.setSpan (SpannableStringInternal.java:199) at android.text.SpannableStringInternal.setSpan (SpannableStringInternal.java:186) at android.text.SpannableString.setSpan (SpannableString.java:60) at com.beemdevelopment.aegis.ui.views.EntryAdapter$FooterView.refresh (EntryAdapter.java:596) ``` --- .../beemdevelopment/aegis/ui/views/EntryAdapter.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryAdapter.java b/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryAdapter.java index d672b4c3..2bdbcf34 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryAdapter.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryAdapter.java @@ -17,10 +17,10 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; -import com.beemdevelopment.aegis.CopyBehavior; import com.beemdevelopment.aegis.AccountNamePosition; -import com.beemdevelopment.aegis.R; +import com.beemdevelopment.aegis.CopyBehavior; import com.beemdevelopment.aegis.Preferences; +import com.beemdevelopment.aegis.R; import com.beemdevelopment.aegis.SortCategory; import com.beemdevelopment.aegis.ViewMode; import com.beemdevelopment.aegis.helpers.ItemTouchHelperAdapter; @@ -777,8 +777,10 @@ public class EntryAdapter extends RecyclerView.Adapter String entriesShownString = String.format("%d", entriesShown); int spanStart = entriesShownSpannable.toString().indexOf(entriesShownString); - int spanEnd = spanStart + entriesShownString.length(); - entriesShownSpannable.setSpan(new StyleSpan(Typeface.BOLD), spanStart, spanEnd, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + if (spanStart >= 0) { + int spanEnd = spanStart + entriesShownString.length(); + entriesShownSpannable.setSpan(new StyleSpan(Typeface.BOLD), spanStart, spanEnd, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + } TextView textView = _footerView.findViewById(R.id.entries_shown_count); textView.setText(entriesShownSpannable);