From a6fa70dfc4c055d386aeba5586e9e2f7aeb7e21b Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Wed, 4 Apr 2018 16:09:27 +0200
Subject: [PATCH] Correctly handle nicks without any alphabetical characters

---
 .../kuschku/quasseldroid/ui/chat/input/Editor.kt  | 15 +++++++++++++--
 .../ui/chat/messages/QuasselMessageRenderer.kt    |  7 ++++---
 .../ui/chat/nicks/NickListFragment.kt             |  7 ++++---
 3 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/Editor.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/Editor.kt
index 02dfc3fa2..2beb67c10 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/Editor.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/Editor.kt
@@ -181,8 +181,19 @@ class Editor(
           if (it is AutoCompleteItem.UserItem) {
             val nickName = it.nick
             val senderColorIndex = IrcUserUtils.senderColor(nickName)
-            val initial = nickName.trimStart('-', '_', '[', ']', '{', '}', '|', '`', '^', '.', '\\')
-              .firstOrNull()?.toUpperCase().toString()
+            val rawInitial = nickName.trimStart('-',
+                                                '_',
+                                                '[',
+                                                ']',
+                                                '{',
+                                                '}',
+                                                '|',
+                                                '`',
+                                                '^',
+                                                '.',
+                                                '\\')
+                               .firstOrNull() ?: nickName.firstOrNull()
+            val initial = rawInitial?.toUpperCase().toString()
             val senderColor = senderColors[senderColorIndex]
 
             fun formatNick(nick: CharSequence): CharSequence {
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/QuasselMessageRenderer.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/QuasselMessageRenderer.kt
index 53a8f9e2a..94aa660bb 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/QuasselMessageRenderer.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/QuasselMessageRenderer.kt
@@ -149,8 +149,9 @@ class QuasselMessageRenderer @Inject constructor(
         val content = contentFormatter.format(context, message.content.content, highlight)
         val nickName = HostmaskHelper.nick(message.content.sender)
         val senderColorIndex = IrcUserUtils.senderColor(nickName)
-        val initial = nickName.trimStart('-', '_', '[', ']', '{', '}', '|', '`', '^', '.', '\\')
-          .firstOrNull()?.toUpperCase().toString()
+        val rawInitial = nickName.trimStart('-', '_', '[', ']', '{', '}', '|', '`', '^', '.', '\\')
+                           .firstOrNull() ?: nickName.firstOrNull()
+        val initial = rawInitial?.toUpperCase().toString()
         val senderColor = if (Message_Flag.of(message.content.flag).hasFlag(Message_Flag.Self))
           selfColor
         else
@@ -464,4 +465,4 @@ class QuasselMessageRenderer @Inject constructor(
     ShowPrefixMode.HIGHEST -> prefix.substring(0, Math.min(prefix.length, 1))
     ShowPrefixMode.NONE    -> ""
   }
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/nicks/NickListFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/nicks/NickListFragment.kt
index 4b399d478..edda15255 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/nicks/NickListFragment.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/nicks/NickListFragment.kt
@@ -78,8 +78,9 @@ class NickListFragment : ServiceBoundFragment() {
       it.map {
         val nickName = it.nick
         val senderColorIndex = IrcUserUtils.senderColor(nickName)
-        val initial = nickName.trimStart('-', '_', '[', ']', '{', '}', '|', '`', '^', '.', '\\')
-          .firstOrNull()?.toUpperCase().toString()
+        val rawInitial = nickName.trimStart('-', '_', '[', ']', '{', '}', '|', '`', '^', '.', '\\')
+                           .firstOrNull() ?: nickName.firstOrNull()
+        val initial = rawInitial?.toUpperCase().toString()
         val senderColor = senderColors[senderColorIndex]
 
 
@@ -164,4 +165,4 @@ class NickListFragment : ServiceBoundFragment() {
   companion object {
     private const val KEY_STATE_LIST = "KEY_STATE_LIST"
   }
-}
\ No newline at end of file
+}
-- 
GitLab