From 0a10830f768641e38b723dc72fe930aeee9cd92d Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Thu, 13 Dec 2018 23:10:36 +0100
Subject: [PATCH] Improve display of netsplits

---
 .../chat/messages/QuasselMessageRenderer.kt   | 22 +++++++++++++++++--
 .../main/res/values-de/strings_messages.xml   |  8 +++----
 .../res/values-fr-rCA/strings_messages.xml    |  8 +++----
 .../main/res/values-lt/strings_messages.xml   | 16 +++++++-------
 .../main/res/values-pt/strings_messages.xml   |  8 +++----
 .../main/res/values-sr/strings_messages.xml   | 12 +++++-----
 app/src/main/res/values/strings_messages.xml  |  8 +++----
 7 files changed, 50 insertions(+), 32 deletions(-)

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 72688b529..2d482931a 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
@@ -575,12 +575,21 @@ class QuasselMessageRenderer @Inject constructor(
         val split = message.content.content.split("#:#")
         val (server1, server2) = split.last().split(' ')
         val usersAffected = split.size - 1
+        val users = split.subList(0, split.size - 1).map {
+          contentFormatter.formatNick(it, false, monochromeForeground, false)
+        }
+
         FormattedMessage(
           id = message.content.messageId,
           time = timeFormatter.format(message.content.time.atZone(zoneId)),
           dayChange = formatDayChange(message),
           combined = context.resources.getQuantityString(
-            R.plurals.message_netsplit_join, usersAffected, server1, server2, usersAffected
+            R.plurals.message_netsplit_join,
+            usersAffected,
+            server1,
+            server2,
+            usersAffected,
+            users.joinToString(", ")
           ),
           hasDayChange = message.hasDayChange,
           isMarkerLine = message.isMarkerLine,
@@ -592,12 +601,21 @@ class QuasselMessageRenderer @Inject constructor(
         val split = message.content.content.split("#:#")
         val (server1, server2) = split.last().split(' ')
         val usersAffected = split.size - 1
+        val users = split.subList(0, split.size - 1).map {
+          contentFormatter.formatNick(it, false, monochromeForeground, false)
+        }
+
         FormattedMessage(
           id = message.content.messageId,
           time = timeFormatter.format(message.content.time.atZone(zoneId)),
           dayChange = formatDayChange(message),
           combined = context.resources.getQuantityString(
-            R.plurals.message_netsplit_quit, usersAffected, server1, server2, usersAffected
+            R.plurals.message_netsplit_quit,
+            usersAffected,
+            server1,
+            server2,
+            usersAffected,
+            users.joinToString(", ")
           ),
           hasDayChange = message.hasDayChange,
           isMarkerLine = message.isMarkerLine,
diff --git a/app/src/main/res/values-de/strings_messages.xml b/app/src/main/res/values-de/strings_messages.xml
index 84dbd97c7..44d070cc1 100644
--- a/app/src/main/res/values-de/strings_messages.xml
+++ b/app/src/main/res/values-de/strings_messages.xml
@@ -42,11 +42,11 @@
   <string name="message_format_kill_1">%1$s wurde von %2$s%3$s aus dem Netzwerk geworfen</string>
   <string name="message_format_kill_2">%1$s wurde von %2$s%3$s aus dem Chat geworfen (%4$s)</string>
   <plurals name="message_netsplit_join">
-    <item quantity="one">Netsplit zwischen %1$s und %2$s beendet: %3$d Nutzer war betroffen</item>
-    <item quantity="other">Netsplit zwischen %1$s und %2$s beendet: %3$d Nutzer waren betroffen</item>
+    <item quantity="one">Netsplit zwischen %1$s und %2$s beendet: %3$d Nutzer war betroffen: %4$s</item>
+    <item quantity="other">Netsplit zwischen %1$s und %2$s beendet: %3$d Nutzer waren betroffen: %4$s</item>
   </plurals>
   <plurals name="message_netsplit_quit">
-    <item quantity="one">Netsplit zwischen %1$s und %2$s: %3$d Nutzer ist betroffen</item>
-    <item quantity="other">Netsplit zwischen %1$s und %2$s: %3$d Nutzer sind betroffen</item>
+    <item quantity="one">Netsplit zwischen %1$s und %2$s: %3$d Nutzer ist betroffen: %4$s</item>
+    <item quantity="other">Netsplit zwischen %1$s und %2$s: %3$d Nutzer sind betroffen: %4$s</item>
   </plurals>
 </resources>
diff --git a/app/src/main/res/values-fr-rCA/strings_messages.xml b/app/src/main/res/values-fr-rCA/strings_messages.xml
index 8878979ff..f628edc1b 100644
--- a/app/src/main/res/values-fr-rCA/strings_messages.xml
+++ b/app/src/main/res/values-fr-rCA/strings_messages.xml
@@ -42,11 +42,11 @@
   <string name="message_format_kill_1">%1$s a été supprimé %2$s%3$s</string>
   <string name="message_format_kill_2">%1$s a été supprimé par %2$s%3$s (%4$s)</string>
   <plurals name="message_netsplit_join">
-    <item quantity="one">Netsplit entre %1$s et %2$s est terminé: %3$d nouvel utilisateur</item>
-    <item quantity="other">Netsplit entre %1$s et %2$s est terminé: %3$d nouveaux utilisateurs</item>
+    <item quantity="one">Netsplit entre %1$s et %2$s est terminé: %3$d nouvel utilisateur: %4$s</item>
+    <item quantity="other">Netsplit entre %1$s et %2$s est terminé: %3$d nouveaux utilisateurs: %4$s</item>
   </plurals>
   <plurals name="message_netsplit_quit">
-    <item quantity="one">Netsplit entre %1$s et %2$s: %3$d utilisateur a quitté</item>
-    <item quantity="other">Netsplit entre %1$s et %2$s: %3$d utilisateurs ont quittés</item>
+    <item quantity="one">Netsplit entre %1$s et %2$s: %3$d utilisateur a quitté: %4$s</item>
+    <item quantity="other">Netsplit entre %1$s et %2$s: %3$d utilisateurs ont quittés: %4$s</item>
   </plurals>
 </resources>
diff --git a/app/src/main/res/values-lt/strings_messages.xml b/app/src/main/res/values-lt/strings_messages.xml
index 84d891c39..84f95c61e 100644
--- a/app/src/main/res/values-lt/strings_messages.xml
+++ b/app/src/main/res/values-lt/strings_messages.xml
@@ -43,15 +43,15 @@
   <string name="message_format_kill_2">%1$s buvo nužudytas %2$s%3$s (%4$s)</string>
   <!-- Transifex’ quantity handling is different from Android’s. Issue opened on 2018-05-18 -->
   <plurals name="message_netsplit_join" tools:ignore="UnusedQuantity">
-    <item quantity="one">Netsplit tarp %1$s ir %2$s baigėsi: %3$d vartotojas prisijungė</item>
-    <item quantity="few">Netsplit tarp %1$s ir %2$s baigėsi: %3$d vartotojai prisijungė</item>
-    <item quantity="many">Netsplit tarp %1$s ir %2$s baigėsi: %3$d vartotojų prisijungė</item>
-    <item quantity="other">Netsplit tarp %1$s ir %2$s baigėsi: %3$d vartotojų prisijungė</item>
+    <item quantity="one">Netsplit tarp %1$s ir %2$s baigėsi: %3$d vartotojas prisijungė: %4$s</item>
+    <item quantity="few">Netsplit tarp %1$s ir %2$s baigėsi: %3$d vartotojai prisijungė: %4$s</item>
+    <item quantity="many">Netsplit tarp %1$s ir %2$s baigėsi: %3$d vartotojų prisijungė: %4$s</item>
+    <item quantity="other">Netsplit tarp %1$s ir %2$s baigėsi: %3$d vartotojų prisijungė: %4$s</item>
   </plurals>
   <plurals name="message_netsplit_quit" tools:ignore="UnusedQuantity">
-    <item quantity="one">Netsplit tarp %1$s ir %2$s: %3$d vartotojas išėjo</item>
-    <item quantity="few">Netsplit tarp %1$s ir %2$s: %3$d vartotojai išėjo</item>
-    <item quantity="many">Netsplit tarp %1$s ir %2$s: %3$d vartotojų išėjo</item>
-    <item quantity="other">Netsplit tarp %1$s ir %2$s: %3$d vartotojų išėjo</item>
+    <item quantity="one">Netsplit tarp %1$s ir %2$s: %3$d vartotojas išėjo: %4$s</item>
+    <item quantity="few">Netsplit tarp %1$s ir %2$s: %3$d vartotojai išėjo: %4$s</item>
+    <item quantity="many">Netsplit tarp %1$s ir %2$s: %3$d vartotojų išėjo: %4$s</item>
+    <item quantity="other">Netsplit tarp %1$s ir %2$s: %3$d vartotojų išėjo: %4$s</item>
   </plurals>
 </resources>
diff --git a/app/src/main/res/values-pt/strings_messages.xml b/app/src/main/res/values-pt/strings_messages.xml
index 9f97c840b..88cfb8cb0 100644
--- a/app/src/main/res/values-pt/strings_messages.xml
+++ b/app/src/main/res/values-pt/strings_messages.xml
@@ -42,11 +42,11 @@
   <string name="message_format_kill_1">%1$s foi killado por %2$s%3$s</string>
   <string name="message_format_kill_2">%1$s foi killado por %2$s%3$s (%4$s)</string>
   <plurals name="message_netsplit_join">
-    <item quantity="one">Netsplit entre %1$s e %2$s terminou: %3$d utilizadores entraram</item>
-    <item quantity="other">Netsplit entre %1$s e %2$s terminou: %3$d utilizadores entraram</item>
+    <item quantity="one">Netsplit entre %1$s e %2$s terminou: %3$d utilizadores entraram: %4$s</item>
+    <item quantity="other">Netsplit entre %1$s e %2$s terminou: %3$d utilizadores entraram: %4$s</item>
   </plurals>
   <plurals name="message_netsplit_quit">
-    <item quantity="one">Netsplit entre %1$s and %2$s: %3$d user qui</item>
-    <item quantity="other">Netsplit entre %1$s e %2$s: %3$d utilizadores desligaram</item>
+    <item quantity="one">Netsplit entre %1$s and %2$s: %3$d user qui: %4$s</item>
+    <item quantity="other">Netsplit entre %1$s e %2$s: %3$d utilizadores desligaram: %4$s</item>
   </plurals>
 </resources>
diff --git a/app/src/main/res/values-sr/strings_messages.xml b/app/src/main/res/values-sr/strings_messages.xml
index 431b3d204..f0ab55430 100644
--- a/app/src/main/res/values-sr/strings_messages.xml
+++ b/app/src/main/res/values-sr/strings_messages.xml
@@ -42,13 +42,13 @@
   <string name="message_format_kill_1">%1$s je ubijen/na od %2$s%3$s</string>
   <string name="message_format_kill_2">%1$s je ubijen/na od %2$s%3$s (%4$s)</string>
   <plurals name="message_netsplit_join">
-    <item quantity="one">Netsplit između %1$s i %2$s se završio: %3$d se pridružio/la</item>
-    <item quantity="few">Netsplit između %1$s i %2$s se završio: %3$d su se pridružili</item>
-    <item quantity="other">Netsplit između %1$s i %2$s se završio: %3$d korisnika se pridružilo</item>
+    <item quantity="one">Netsplit između %1$s i %2$s se završio: %3$d se pridružio/la: %4$s</item>
+    <item quantity="few">Netsplit između %1$s i %2$s se završio: %3$d su se pridružili: %4$s</item>
+    <item quantity="other">Netsplit između %1$s i %2$s se završio: %3$d korisnika se pridružilo: %4$s</item>
   </plurals>
   <plurals name="message_netsplit_quit">
-    <item quantity="one">Netsplit između %1$s i %2$s: %3$d je napustio/la</item>
-    <item quantity="few">Netsplit između %1$s i %2$s: %3$d su napustili</item>
-    <item quantity="other">Netsplit između %1$s i %2$s: %3$d korisnika je prekinulo vezu</item>
+    <item quantity="one">Netsplit između %1$s i %2$s: %3$d je napustio/la: %4$s</item>
+    <item quantity="few">Netsplit između %1$s i %2$s: %3$d su napustili: %4$s</item>
+    <item quantity="other">Netsplit između %1$s i %2$s: %3$d korisnika je prekinulo vezu: %4$s</item>
   </plurals>
 </resources>
diff --git a/app/src/main/res/values/strings_messages.xml b/app/src/main/res/values/strings_messages.xml
index b4180977a..537f8211e 100644
--- a/app/src/main/res/values/strings_messages.xml
+++ b/app/src/main/res/values/strings_messages.xml
@@ -51,11 +51,11 @@
   <string name="message_format_kill_1">%1$s was killed by %2$s%3$s</string>
   <string name="message_format_kill_2">%1$s was killed by %2$s%3$s (%4$s)</string>
   <plurals name="message_netsplit_join">
-    <item quantity="one">Netsplit between %1$s and %2$s ended: %3$d user joined</item>
-    <item quantity="other">Netsplit between %1$s and %2$s ended: %3$d users joined</item>
+    <item quantity="one">Netsplit between %1$s and %2$s ended: %3$d user joined: %4$s</item>
+    <item quantity="other">Netsplit between %1$s and %2$s ended: %3$d users joined: %4$s</item>
   </plurals>
   <plurals name="message_netsplit_quit">
-    <item quantity="one">Netsplit between %1$s and %2$s: %3$d user quit</item>
-    <item quantity="other">Netsplit between %1$s and %2$s: %3$d users quit</item>
+    <item quantity="one">Netsplit between %1$s and %2$s: %3$d user quit: %4$s</item>
+    <item quantity="other">Netsplit between %1$s and %2$s: %3$d users quit: %4$s</item>
   </plurals>
 </resources>
-- 
GitLab