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 b6946bae8711371d83e495aec4b176cb21d5616d..22cbf88c0258ce2be7de4f54cfe5078afe5e1e56 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 @@ -520,8 +520,7 @@ class QuasselMessageRenderer @Inject constructor( } } - private fun formatNick(sender: String, self: Boolean, - highlight: Boolean, showHostmask: Boolean) = + private fun formatNick(sender: String, self: Boolean, highlight: Boolean, showHostmask: Boolean) = when (messageSettings.colorizeNicknames) { ColorizeNicknamesMode.ALL -> formatNickImpl(sender, !highlight, showHostmask) @@ -531,8 +530,7 @@ class QuasselMessageRenderer @Inject constructor( formatNickImpl(sender, false, showHostmask) } - private fun formatPrefix(prefix: String, - highlight: Boolean) = when (messageSettings.showPrefix) { + private fun formatPrefix(prefix: String, highlight: Boolean) = when (messageSettings.showPrefix) { ShowPrefixMode.ALL -> prefix ShowPrefixMode.HIGHEST -> prefix.substring(0, Math.min(prefix.length, 1)) ShowPrefixMode.NONE -> "" 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 5aafe6bda25f09866d0818c13ed3472042221d3c..7c951159225201c5ed77d0b292872ce7c7682d18 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 @@ -29,6 +29,7 @@ import de.kuschku.quasseldroid.R import de.kuschku.quasseldroid.settings.AppearanceSettings import de.kuschku.quasseldroid.settings.MessageSettings import de.kuschku.quasseldroid.ui.chat.info.user.UserInfoActivity +import de.kuschku.quasseldroid.ui.chat.input.AutoCompleteHelper.Companion.IGNORED_CHARS import de.kuschku.quasseldroid.util.AvatarHelper import de.kuschku.quasseldroid.util.helper.loadWithFallbacks import de.kuschku.quasseldroid.util.helper.styledAttributes @@ -119,7 +120,8 @@ class NickListFragment : ServiceBoundFragment() { avatarUrls = AvatarHelper.avatar(messageSettings, it, avatarSize) ) }.sortedBy { - IrcCaseMappers.unicode.toLowerCase(it.nick) + IrcCaseMappers[it.networkCasemapping].toLowerCase(it.nick.trimStart(*IGNORED_CHARS)) + .trimStart(*IGNORED_CHARS) }.sortedBy { it.lowestMode } diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/BufferSyncer.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/BufferSyncer.kt index 3209bbd9c9c3999ad687a83cfafca46606a25443..737c474657705750f8d282f3de2e6e0ac7985eca 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/BufferSyncer.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/BufferSyncer.kt @@ -230,7 +230,8 @@ class BufferSyncer constructor( }.filter { groupId == null || it.groupId == groupId }.filter { - bufferName == null || IrcCaseMappers.unicode.equalsIgnoreCaseNullable(it.bufferName, bufferName) + val caseMapper = IrcCaseMappers[session.networks[it.bufferId]?.support("CASEMAPPING")] + bufferName == null || caseMapper.equalsIgnoreCaseNullable(it.bufferName, bufferName) } fun find( diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/Network.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/Network.kt index aa738ae01bb80ed3348a690ad7906edcd727d0b6..0cbe0a8208fcb70bec12e4d9feed9c686ca4fe68 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/Network.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/Network.kt @@ -24,11 +24,11 @@ class Network constructor( } override fun fromVariantMap(properties: QVariantMap) { + initSetSupports(properties["Supports"].valueOr(::emptyMap)) initSetCaps(properties["Caps"].valueOr(::emptyMap)) initSetCapsEnabled(properties["CapsEnabled"].valueOr(::emptyList)) initSetIrcUsersAndChannels(properties["IrcUsersAndChannels"].valueOr(::emptyMap)) initSetServerList(properties["ServerList"].valueOr(::emptyList)) - initSetSupports(properties["Supports"].valueOr(::emptyMap)) initSetProperties(properties) }