Small kotlin improvement

This commit is contained in:
Benoit Marty 2019-10-29 16:20:22 +01:00
parent 361427488f
commit 6567c5e6c7

View File

@ -44,12 +44,11 @@ object CommandParser {
return ParsedCommand.ErrorNotACommand return ParsedCommand.ErrorNotACommand
} }
var messageParts: List<String>? = null val messageParts = try {
textMessage.split("\\s+".toRegex()).dropLastWhile { it.isEmpty() }
try {
messageParts = textMessage.split("\\s+".toRegex()).dropLastWhile { it.isEmpty() }
} catch (e: Exception) { } catch (e: Exception) {
Timber.e(e, "## manageSplashCommand() : split failed") Timber.e(e, "## manageSplashCommand() : split failed")
null
} }
// test if the string cut fails // test if the string cut fails
@ -57,10 +56,8 @@ object CommandParser {
return ParsedCommand.ErrorEmptySlashCommand return ParsedCommand.ErrorEmptySlashCommand
} }
val slashCommand = messageParts[0] when (val slashCommand = messageParts.first()) {
Command.CHANGE_DISPLAY_NAME.command -> {
when (slashCommand) {
Command.CHANGE_DISPLAY_NAME.command -> {
val newDisplayName = textMessage.substring(Command.CHANGE_DISPLAY_NAME.command.length).trim() val newDisplayName = textMessage.substring(Command.CHANGE_DISPLAY_NAME.command.length).trim()
return if (newDisplayName.isNotEmpty()) { return if (newDisplayName.isNotEmpty()) {
@ -69,7 +66,7 @@ object CommandParser {
ParsedCommand.ErrorSyntax(Command.CHANGE_DISPLAY_NAME) ParsedCommand.ErrorSyntax(Command.CHANGE_DISPLAY_NAME)
} }
} }
Command.TOPIC.command -> { Command.TOPIC.command -> {
val newTopic = textMessage.substring(Command.TOPIC.command.length).trim() val newTopic = textMessage.substring(Command.TOPIC.command.length).trim()
return if (newTopic.isNotEmpty()) { return if (newTopic.isNotEmpty()) {
@ -78,12 +75,12 @@ object CommandParser {
ParsedCommand.ErrorSyntax(Command.TOPIC) ParsedCommand.ErrorSyntax(Command.TOPIC)
} }
} }
Command.EMOTE.command -> { Command.EMOTE.command -> {
val message = textMessage.substring(Command.EMOTE.command.length).trim() val message = textMessage.substring(Command.EMOTE.command.length).trim()
return ParsedCommand.SendEmote(message) return ParsedCommand.SendEmote(message)
} }
Command.JOIN_ROOM.command -> { Command.JOIN_ROOM.command -> {
val roomAlias = textMessage.substring(Command.JOIN_ROOM.command.length).trim() val roomAlias = textMessage.substring(Command.JOIN_ROOM.command.length).trim()
return if (roomAlias.isNotEmpty()) { return if (roomAlias.isNotEmpty()) {
@ -92,7 +89,7 @@ object CommandParser {
ParsedCommand.ErrorSyntax(Command.JOIN_ROOM) ParsedCommand.ErrorSyntax(Command.JOIN_ROOM)
} }
} }
Command.PART.command -> { Command.PART.command -> {
val roomAlias = textMessage.substring(Command.PART.command.length).trim() val roomAlias = textMessage.substring(Command.PART.command.length).trim()
return if (roomAlias.isNotEmpty()) { return if (roomAlias.isNotEmpty()) {
@ -101,7 +98,7 @@ object CommandParser {
ParsedCommand.ErrorSyntax(Command.PART) ParsedCommand.ErrorSyntax(Command.PART)
} }
} }
Command.INVITE.command -> { Command.INVITE.command -> {
return if (messageParts.size == 2) { return if (messageParts.size == 2) {
val userId = messageParts[1] val userId = messageParts[1]
@ -114,7 +111,7 @@ object CommandParser {
ParsedCommand.ErrorSyntax(Command.INVITE) ParsedCommand.ErrorSyntax(Command.INVITE)
} }
} }
Command.KICK_USER.command -> { Command.KICK_USER.command -> {
return if (messageParts.size >= 2) { return if (messageParts.size >= 2) {
val userId = messageParts[1] val userId = messageParts[1]
if (MatrixPatterns.isUserId(userId)) { if (MatrixPatterns.isUserId(userId)) {
@ -130,7 +127,7 @@ object CommandParser {
ParsedCommand.ErrorSyntax(Command.KICK_USER) ParsedCommand.ErrorSyntax(Command.KICK_USER)
} }
} }
Command.BAN_USER.command -> { Command.BAN_USER.command -> {
return if (messageParts.size >= 2) { return if (messageParts.size >= 2) {
val userId = messageParts[1] val userId = messageParts[1]
if (MatrixPatterns.isUserId(userId)) { if (MatrixPatterns.isUserId(userId)) {
@ -146,7 +143,7 @@ object CommandParser {
ParsedCommand.ErrorSyntax(Command.BAN_USER) ParsedCommand.ErrorSyntax(Command.BAN_USER)
} }
} }
Command.UNBAN_USER.command -> { Command.UNBAN_USER.command -> {
return if (messageParts.size == 2) { return if (messageParts.size == 2) {
val userId = messageParts[1] val userId = messageParts[1]
@ -159,7 +156,7 @@ object CommandParser {
ParsedCommand.ErrorSyntax(Command.UNBAN_USER) ParsedCommand.ErrorSyntax(Command.UNBAN_USER)
} }
} }
Command.SET_USER_POWER_LEVEL.command -> { Command.SET_USER_POWER_LEVEL.command -> {
return if (messageParts.size == 3) { return if (messageParts.size == 3) {
val userId = messageParts[1] val userId = messageParts[1]
if (MatrixPatterns.isUserId(userId)) { if (MatrixPatterns.isUserId(userId)) {
@ -192,25 +189,25 @@ object CommandParser {
ParsedCommand.ErrorSyntax(Command.SET_USER_POWER_LEVEL) ParsedCommand.ErrorSyntax(Command.SET_USER_POWER_LEVEL)
} }
} }
Command.MARKDOWN.command -> { Command.MARKDOWN.command -> {
return if (messageParts.size == 2) { return if (messageParts.size == 2) {
when { when {
"on".equals(messageParts[1], true) -> ParsedCommand.SetMarkdown(true) "on".equals(messageParts[1], true) -> ParsedCommand.SetMarkdown(true)
"off".equals(messageParts[1], true) -> ParsedCommand.SetMarkdown(false) "off".equals(messageParts[1], true) -> ParsedCommand.SetMarkdown(false)
else -> ParsedCommand.ErrorSyntax(Command.MARKDOWN) else -> ParsedCommand.ErrorSyntax(Command.MARKDOWN)
} }
} else { } else {
ParsedCommand.ErrorSyntax(Command.MARKDOWN) ParsedCommand.ErrorSyntax(Command.MARKDOWN)
} }
} }
Command.CLEAR_SCALAR_TOKEN.command -> { Command.CLEAR_SCALAR_TOKEN.command -> {
return if (messageParts.size == 1) { return if (messageParts.size == 1) {
ParsedCommand.ClearScalarToken ParsedCommand.ClearScalarToken
} else { } else {
ParsedCommand.ErrorSyntax(Command.CLEAR_SCALAR_TOKEN) ParsedCommand.ErrorSyntax(Command.CLEAR_SCALAR_TOKEN)
} }
} }
else -> { else -> {
// Unknown command // Unknown command
return ParsedCommand.ErrorUnknownSlashCommand(slashCommand) return ParsedCommand.ErrorUnknownSlashCommand(slashCommand)
} }