From 0aff4b210f3dcab7f80b272868fa925a3359435c Mon Sep 17 00:00:00 2001 From: Thomas Date: Mon, 6 Jul 2020 11:59:47 +0200 Subject: [PATCH] More details in notifications --- .../drawers/NotificationsListAdapter.java | 27 ++++++++++++++++++- .../main/res/layout/drawer_notification.xml | 1 + 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java b/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java index 134d60ebb..43b872fce 100644 --- a/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java +++ b/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java @@ -30,7 +30,10 @@ import android.os.Bundle; import android.os.CountDownTimer; import android.os.Handler; import android.text.Html; +import android.text.SpannableString; +import android.text.Spanned; import android.text.method.LinkMovementMethod; +import android.text.style.ForegroundColorSpan; import android.util.TypedValue; import android.view.LayoutInflater; import android.view.MotionEvent; @@ -71,6 +74,8 @@ import java.util.List; import java.util.Objects; import java.util.Timer; import java.util.TimerTask; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import app.fedilab.android.R; import app.fedilab.android.activities.AccountReportActivity; @@ -750,7 +755,27 @@ public class NotificationsListAdapter extends RecyclerView.Adapter displayConfirmationNotificationDialog(notification)); - holder.notification_account_username.setVisibility(View.GONE); + + + if( notification.getAccount() != null) { + SpannableString wordtoSpan = new SpannableString("@" + notification.getAccount().getAcct()); + Pattern hashAcct = Pattern.compile("(@" + notification.getAccount().getAcct() + ")"); + + int theme_text_header_2_line = prefs.getInt("theme_text_header_2_line", -1); + if (theme_text_header_2_line == -1) { + theme_text_header_2_line = ThemeHelper.getAttColor(context, R.attr.textHeader); + } + Matcher matcherAcct = hashAcct.matcher(wordtoSpan); + while (matcherAcct.find()) { + int matchStart = matcherAcct.start(1); + int matchEnd = matcherAcct.end(); + if (wordtoSpan.length() >= matchEnd && matchStart < matchEnd) { + wordtoSpan.setSpan(new ForegroundColorSpan(theme_text_header_2_line), matchStart, matchEnd, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); + } + + } + holder.notification_account_username.setText(wordtoSpan); + } final String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); final View attached = holder.status_more; diff --git a/app/src/main/res/layout/drawer_notification.xml b/app/src/main/res/layout/drawer_notification.xml index fb92badc3..b864cab67 100644 --- a/app/src/main/res/layout/drawer_notification.xml +++ b/app/src/main/res/layout/drawer_notification.xml @@ -69,6 +69,7 @@