From 48fdee2a65c3e399b8725e7ae6c4d575527ef6ed Mon Sep 17 00:00:00 2001 From: Mario Danic Date: Tue, 9 Apr 2019 10:40:30 +0200 Subject: [PATCH] Fix mention coloring Signed-off-by: Mario Danic --- .../messages/MagicIncomingTextMessageViewHolder.java | 3 ++- .../messages/MagicOutcomingTextMessageViewHolder.java | 2 +- .../adapters/messages/MagicSystemMessageViewHolder.java | 3 ++- .../main/java/com/nextcloud/talk/utils/DisplayUtils.java | 6 +++--- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.java b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.java index 6df27b1de..42aaf6f1c 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.java +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.java @@ -155,7 +155,8 @@ public class MagicIncomingTextMessageViewHolder .nc_incoming_text_mention_others); } - messageString = DisplayUtils.searchAndColor(message.getText(), "@" + individualHashMap.get("name"), color); + messageString = DisplayUtils.searchAndColor(messageString, + "@" + individualHashMap.get("name"), color); } else if (individualHashMap.get("type").equals("file")) { itemView.setOnClickListener(v -> { Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(individualHashMap.get("link"))); diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.java b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.java index 559ab5d09..26633d1fd 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.java +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.java @@ -92,7 +92,7 @@ public class MagicOutcomingTextMessageViewHolder extends MessageHolders.Outcomin if (individualHashMap.get("type").equals("user") || individualHashMap.get("type").equals("guest") || individualHashMap.get("type").equals("call")) { if (!individualHashMap.get("id").equals(message.getActiveUserId())) { messageString = - DisplayUtils.searchAndColor(message.getText(), + DisplayUtils.searchAndColor(messageString, "@" + individualHashMap.get("name"), NextcloudTalkApplication .getSharedApplication().getResources().getColor(R.color.nc_outcoming_text_default)); } diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicSystemMessageViewHolder.java b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicSystemMessageViewHolder.java index 0f09ab820..ec6f34260 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicSystemMessageViewHolder.java +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicSystemMessageViewHolder.java @@ -68,7 +68,8 @@ public class MagicSystemMessageViewHolder extends MessageHolders.IncomingTextMes } messageString = - DisplayUtils.searchAndColor(message.getText(), "@" + individualHashMap.get("name"), color); + DisplayUtils.searchAndColor(messageString, + "@" + individualHashMap.get("name"), color); } } } diff --git a/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java b/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java index c38714bc5..ffbe23455 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java +++ b/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java @@ -209,10 +209,10 @@ public class DisplayUtils { } - public static Spannable searchAndColor(String text, String searchText, @ColorInt int color) { + public static Spannable searchAndColor(Spannable text, String searchText, @ColorInt int color) { Spannable spannableString = new SpannableString(text); - + String stringText = text.toString(); if (TextUtils.isEmpty(text) || TextUtils.isEmpty(searchText)) { return spannableString; } @@ -227,7 +227,7 @@ public class DisplayUtils { int lastStartIndex = -1; while (m.find()) { - int start = text.indexOf(m.group(), lastStartIndex); + int start = stringText.indexOf(m.group(), lastStartIndex); int end = start + m.group().length(); lastStartIndex = end; spannableString.setSpan(new ForegroundColorSpan(color), start, end,