From 3355e46e40e23912ba56cb5d39fc514e18ab76f3 Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Thu, 22 Feb 2018 14:43:07 +0100
Subject: [PATCH] Fix an issue where nickchange messages with self were broken

---
 .../chat/messages/QuasselMessageRenderer.kt   | 35 ++++++++++++-------
 app/src/main/res/values/strings_messages.xml  |  1 +
 2 files changed, 24 insertions(+), 12 deletions(-)

diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/messages/QuasselMessageRenderer.kt b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/messages/QuasselMessageRenderer.kt
index c797b728a..f4a9a5fef 100644
--- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/messages/QuasselMessageRenderer.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/messages/QuasselMessageRenderer.kt
@@ -131,18 +131,29 @@ class QuasselMessageRenderer(
         ),
         message.messageId == markerLine
       )
-      Message_Type.Nick   -> FormattedMessage(
-        message.messageId,
-        timeFormatter.format(message.time.atZone(zoneId)),
-        SpanFormatter.format(
-          context.getString(R.string.message_format_nick),
-          formatPrefix(message.senderPrefixes, highlight),
-          formatNick(message.sender, self, highlight),
-          formatPrefix(message.senderPrefixes, highlight),
-          formatNick(message.content, self, highlight)
-        ),
-        message.messageId == markerLine
-      )
+      Message_Type.Nick   -> {
+        val nickSelf = message.sender == message.content || self
+        FormattedMessage(
+          message.messageId,
+          timeFormatter.format(message.time.atZone(zoneId)),
+          if (nickSelf) {
+            SpanFormatter.format(
+              context.getString(R.string.message_format_nick_self),
+              formatPrefix(message.senderPrefixes, highlight),
+              formatNick(message.sender, nickSelf, highlight)
+            )
+          } else {
+            SpanFormatter.format(
+              context.getString(R.string.message_format_nick),
+              formatPrefix(message.senderPrefixes, highlight),
+              formatNick(message.sender, nickSelf, highlight),
+              formatPrefix(message.senderPrefixes, highlight),
+              formatNick(message.content, nickSelf, highlight)
+            )
+          },
+          message.messageId == markerLine
+        )
+      }
       Message_Type.Mode   -> FormattedMessage(
         message.messageId,
         timeFormatter.format(message.time.atZone(zoneId)),
diff --git a/app/src/main/res/values/strings_messages.xml b/app/src/main/res/values/strings_messages.xml
index 67ed8824c..199e7741e 100644
--- a/app/src/main/res/values/strings_messages.xml
+++ b/app/src/main/res/values/strings_messages.xml
@@ -19,6 +19,7 @@
   <string name="message_format_action">* %1$s%2$s %3$s</string>
   <string name="message_format_notice">[%1$s%2$s] %3$s</string>
   <string name="message_format_nick">%1$s%2$s is now known as %3$s%4$s</string>
+  <string name="message_format_nick_self">You are now known as %1$s%2$s</string>
   <string name="message_format_mode">%1$s by %2$s%3$s</string>
   <string name="message_format_join">%1$s%2$s joined</string>
   <string name="message_format_part_1">%1$s%2$s left</string>
-- 
GitLab