From c91c5ef642a735f45bb42c0bf7f5679e641acb92 Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Fri, 9 Mar 2018 18:03:36 +0100 Subject: [PATCH] Fixing sync issue where channels were improperly joined --- .../ui/chat/NickListAdapter.kt | 2 +- .../util/irc/IrcCaseMappers.kt | 52 ------------------ .../libquassel/util/irc/IrcCaseMappers.kt | 53 +++++++++++++++++++ 3 files changed, 54 insertions(+), 53 deletions(-) delete mode 100644 app/src/main/java/de/kuschku/quasseldroid_ng/util/irc/IrcCaseMappers.kt create mode 100644 lib/src/main/java/de/kuschku/libquassel/util/irc/IrcCaseMappers.kt diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/NickListAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/NickListAdapter.kt index d0cbd6982..ce4f8b57e 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/NickListAdapter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/NickListAdapter.kt @@ -11,9 +11,9 @@ import android.view.ViewGroup import android.widget.TextView import butterknife.BindView import butterknife.ButterKnife +import de.kuschku.libquassel.util.irc.IrcCaseMappers import de.kuschku.quasseldroid_ng.R import de.kuschku.quasseldroid_ng.util.helper.visibleIf -import de.kuschku.quasseldroid_ng.util.irc.IrcCaseMappers class NickListAdapter( lifecycleOwner: LifecycleOwner, diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/util/irc/IrcCaseMappers.kt b/app/src/main/java/de/kuschku/quasseldroid_ng/util/irc/IrcCaseMappers.kt deleted file mode 100644 index 31cefa1b3..000000000 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/util/irc/IrcCaseMappers.kt +++ /dev/null @@ -1,52 +0,0 @@ -package de.kuschku.quasseldroid_ng.util.irc - -import java.util.* - -object IrcCaseMappers { - var irc: IrcCaseMapper = UnicodeCaseMapper() - var unicode: IrcCaseMapper = ClassicalIrcCaseMapper() - - interface IrcCaseMapper { - fun equalsIgnoreCase(a: String?, b: String?): Boolean - - fun toLowerCase(value: String?): String? - - fun toUpperCase(value: String?): String? - } - - internal class UnicodeCaseMapper : IrcCaseMapper { - - override fun equalsIgnoreCase(a: String?, b: String?): Boolean { - return a.equals(b, ignoreCase = true) - } - - override fun toLowerCase(value: String?): String? { - return value?.toLowerCase(Locale.US) - } - - override fun toUpperCase(value: String?): String? { - return value?.toUpperCase(Locale.US) - } - } - - internal class ClassicalIrcCaseMapper : IrcCaseMapper { - override fun toLowerCase(value: String?): String? { - return value?.toLowerCase(Locale.US)?.replace('[', '{')?.replace(']', '}')?.replace('^', '~') - } - - override fun toUpperCase(value: String?): String? { - return value?.toUpperCase(Locale.US)?.replace('{', '[')?.replace('}', ']')?.replace('~', '^') - } - - override fun equalsIgnoreCase(a: String?, b: String?): Boolean { - return toLowerCase(a) == toLowerCase(b) || toUpperCase(a) == toUpperCase(b) - } - } - - operator fun get(caseMapping: String) - = if (caseMapping.equals("rfc1459", ignoreCase = true)) { - irc - } else { - unicode - } -} \ No newline at end of file diff --git a/lib/src/main/java/de/kuschku/libquassel/util/irc/IrcCaseMappers.kt b/lib/src/main/java/de/kuschku/libquassel/util/irc/IrcCaseMappers.kt new file mode 100644 index 000000000..c7cbc1521 --- /dev/null +++ b/lib/src/main/java/de/kuschku/libquassel/util/irc/IrcCaseMappers.kt @@ -0,0 +1,53 @@ +package de.kuschku.libquassel.util.irc + +import java.util.* + +object IrcCaseMappers { + var irc: IrcCaseMapper = UnicodeCaseMapper() + var unicode: IrcCaseMapper = ClassicalIrcCaseMapper() + + interface IrcCaseMapper { + fun equalsIgnoreCase(a: String, b: String): Boolean + + fun toLowerCase(value: String): String + + fun toUpperCase(value: String): String + } + + internal class UnicodeCaseMapper : IrcCaseMapper { + + override fun equalsIgnoreCase(a: String, b: String): Boolean { + return a.equals(b, ignoreCase = true) + } + + override fun toLowerCase(value: String): String { + return value.toLowerCase(Locale.US) + } + + override fun toUpperCase(value: String): String { + return value.toUpperCase(Locale.US) + } + } + + internal class ClassicalIrcCaseMapper : + IrcCaseMapper { + override fun toLowerCase(value: String): String { + return value.toLowerCase(Locale.US).replace('[', '{').replace(']', '}').replace('^', '~') + } + + override fun toUpperCase(value: String): String { + return value.toUpperCase(Locale.US).replace('{', '[').replace('}', ']').replace('~', '^') + } + + override fun equalsIgnoreCase(a: String, b: String): Boolean { + return toLowerCase(a) == toLowerCase(b) || toUpperCase(a) == toUpperCase(b) + } + } + + operator fun get(caseMapping: String) + = if (caseMapping.equals("rfc1459", ignoreCase = true)) { + irc + } else { + unicode + } +} \ No newline at end of file -- GitLab