diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliasitem/AliasItemFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliasitem/AliasItemFragment.kt index fc061d63816aac75240a221c08b5881f573e5c14..d7b15d6690c80a3bcf8a2386e720ddaaff4cca38 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliasitem/AliasItemFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliasitem/AliasItemFragment.kt @@ -39,7 +39,6 @@ import de.kuschku.quasseldroid.settings.AutoCompleteSettings import de.kuschku.quasseldroid.settings.MessageSettings import de.kuschku.quasseldroid.ui.chat.input.* import de.kuschku.quasseldroid.ui.coresettings.SettingsFragment -import de.kuschku.quasseldroid.util.compatibility.AndroidCrashFixer import de.kuschku.quasseldroid.util.irc.format.IrcFormatDeserializer import de.kuschku.quasseldroid.util.irc.format.IrcFormatSerializer import de.kuschku.quasseldroid.viewmodel.EditorViewModel @@ -131,7 +130,7 @@ class AliasItemFragment : SettingsFragment(), SettingsFragment.Savable, } rule?.let { data -> - name.setText(AndroidCrashFixer.removeCrashableCharacters(data.name)) + name.setText(data.name ?: "") expansion.setText(formatDeserializer.formatString(data.expansion, true)) } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliaslist/AliasListAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliaslist/AliasListAdapter.kt index 625c40470ba5bda57c138edb2bcfc0fb25e2515b..e1df794a7a8050c599f607d810a6b36388b2cea5 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliaslist/AliasListAdapter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/aliaslist/AliasListAdapter.kt @@ -69,7 +69,7 @@ class AliasListAdapter @Inject constructor( notifyItemChanged(index) } - fun indexOf(name: String) = data.map(IAliasManager.Alias::name).indexOf(name) + fun indexOf(name: String?) = data.map(IAliasManager.Alias::name).indexOf(name) fun remove(index: Int) { data.removeAt(index) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 336b63168974536d40a6c1f0eb1aa85b7ef20a6a..7e7f849a0eef98f5cda8ebe0b9b0114071b29f94 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -66,6 +66,7 @@ <string name="label_join_long">Join Channel</string> <string name="label_libraries">Libraries</string> <string name="label_license">License</string> + <string name="label_match_all">Matches all messages</string> <string name="label_mark_read">Mark Read</string> <string name="label_mention">Mention</string> <string name="label_mention_long">Copy username into input line</string> diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/AliasManager.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/AliasManager.kt index 3e26c5bcaebd8c4db46fb771fae29b99e2a8af63..132f1624e4d1f4521300c0a4ef1b348a10693d75 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/AliasManager.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/AliasManager.kt @@ -60,7 +60,7 @@ class AliasManager constructor( _aliases = names.zip(expansions, ::Alias).toList() } - override fun addAlias(name: String, expansion: String) { + override fun addAlias(name: String?, expansion: String?) { if (contains(name)) { return } @@ -70,9 +70,9 @@ class AliasManager constructor( super.addAlias(name, expansion) } - fun indexOf(name: String) = _aliases.map(Alias::name).indexOf(name) + fun indexOf(name: String?) = _aliases.map(Alias::name).indexOf(name) - fun contains(name: String) = _aliases.map(Alias::name).contains(name) + fun contains(name: String?) = _aliases.map(Alias::name).contains(name) fun defaults() = listOf( Alias("j", "/join $0"), @@ -124,7 +124,7 @@ class AliasManager constructor( if (search != null) { val found = _aliases.firstOrNull { it.name.equals(search, true) } if (found != null) { - expand(found.expansion, info, split.getOrNull(1) ?: "", previousCommands) + expand(found.expansion ?: "", info, split.getOrNull(1) ?: "", previousCommands) return } } @@ -138,8 +138,8 @@ class AliasManager constructor( val network = proxy.network(bufferInfo.networkId) val paramRange = Regex("""\$(\d+)\.\.(\d*)""") - val commands = expansion.split("; ?".toRegex()).dropLastWhile { it.isEmpty() } - val params = msg.split(' ').dropLastWhile({ it.isEmpty() }) + val commands = expansion.split("; ?".toRegex()).dropLastWhile(String::isEmpty) + val params = msg.split(' ').dropLastWhile(String::isEmpty) val expandedCommands = LinkedList<String>() for (i in commands.indices) { diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IAliasManager.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IAliasManager.kt index efb7edefc2daa2ade19e6913ae2b96f36ecf09dd..d45b8d48e80fa537184a73490bee4f0ec785d467 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IAliasManager.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/interfaces/IAliasManager.kt @@ -32,7 +32,7 @@ interface IAliasManager : ISyncableObject { fun initAliases(): QVariantMap fun initSetAliases(aliases: QVariantMap) @Slot - fun addAlias(name: String, expansion: String) { + fun addAlias(name: String?, expansion: String?) { SYNC("addAlias", ARG(name, Type.QString), ARG(expansion, Type.QString)) } @@ -42,8 +42,8 @@ interface IAliasManager : ISyncableObject { } data class Alias( - val name: String, - val expansion: String + val name: String?, + val expansion: String? ) : Serializable data class Command( diff --git a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/AutoCompleteItem.kt b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/AutoCompleteItem.kt index 29c9e39fb91e7e342d0930d2df94e5e40bd29589..53e44b93b5b593123b8a9f21b8bd54e0dd1f7b17 100644 --- a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/AutoCompleteItem.kt +++ b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/AutoCompleteItem.kt @@ -79,9 +79,9 @@ sealed class AutoCompleteItem(open val name: String, val suffix: String, private } data class AliasItem( - val alias: String, - val expansion: String - ) : AutoCompleteItem(alias, " ", 1) + val alias: String?, + val expansion: String? + ) : AutoCompleteItem(alias ?: "", " ", 1) data class ChannelItem( val info: BufferInfo,