Commit 56b72615 authored by Leonardo Aramaki's avatar Leonardo Aramaki

Generified the span setting on system messages

parent 16824003
...@@ -11,6 +11,7 @@ import chat.rocket.android.R ...@@ -11,6 +11,7 @@ import chat.rocket.android.R
import chat.rocket.android.app.RocketChatApplication import chat.rocket.android.app.RocketChatApplication
import chat.rocket.android.helper.UrlHelper import chat.rocket.android.helper.UrlHelper
import chat.rocket.android.server.domain.USE_REALNAME import chat.rocket.android.server.domain.USE_REALNAME
import chat.rocket.common.util.ifNull
import chat.rocket.core.model.Message import chat.rocket.core.model.Message
import chat.rocket.core.model.MessageType.* import chat.rocket.core.model.MessageType.*
import chat.rocket.core.model.Value import chat.rocket.core.model.Value
...@@ -71,34 +72,24 @@ data class MessageViewModel(private val message: Message, ...@@ -71,34 +72,24 @@ data class MessageViewModel(private val message: Message,
spannableMsg.setSpan(ForegroundColorSpan(Color.GRAY), 0, spannableMsg.length, spannableMsg.setSpan(ForegroundColorSpan(Color.GRAY), 0, spannableMsg.length,
0) 0)
if (message.type == USER_ADDED) { val username = message.sender?.username
val userAddedStartIndex = 5 val message = message.message
val userAddedLastIndex = userAddedStartIndex + message.message.length
val addedByStartIndex = userAddedLastIndex + 10 val usernameTextStartIndex: Int = if (username != null) content.indexOf(username) else -1
val addedByLastIndex = addedByStartIndex + message.sender?.username!!.length val usernameTextEndIndex = if (username != null) usernameTextStartIndex + username.length else -1
spannableMsg.setSpan(StyleSpan(Typeface.BOLD_ITALIC), userAddedStartIndex, userAddedLastIndex, val messageTextStartIndex = if (message.isNotEmpty()) content.indexOf(message) else -1
0) val messageTextEndIndex = messageTextStartIndex + message.length
spannableMsg.setSpan(StyleSpan(Typeface.BOLD_ITALIC), addedByStartIndex, addedByLastIndex,
0) if (usernameTextStartIndex > -1) {
} else if (message.type == ROOM_NAME_CHANGED) { spannableMsg.setSpan(StyleSpan(Typeface.BOLD_ITALIC), usernameTextStartIndex, usernameTextEndIndex,
val userAddedStartIndex = 22
val userAddedLastIndex = userAddedStartIndex + message.message.length
val addedByStartIndex = userAddedLastIndex + 4
val addedByLastIndex = addedByStartIndex + message.sender?.username!!.length
spannableMsg.setSpan(StyleSpan(Typeface.BOLD_ITALIC), userAddedStartIndex, userAddedLastIndex,
0)
spannableMsg.setSpan(StyleSpan(Typeface.BOLD_ITALIC), addedByStartIndex, addedByLastIndex,
0)
} else if (message.type == USER_REMOVED) {
val userAddedStartIndex = 5
val userAddedLastIndex = userAddedStartIndex + message.message.length
val addedByStartIndex = userAddedLastIndex + 12
val addedByLastIndex = addedByStartIndex + message.sender?.username!!.length
spannableMsg.setSpan(StyleSpan(Typeface.BOLD_ITALIC), userAddedStartIndex, userAddedLastIndex,
0) 0)
spannableMsg.setSpan(StyleSpan(Typeface.BOLD_ITALIC), addedByStartIndex, addedByLastIndex, }
if (messageTextStartIndex > -1) {
spannableMsg.setSpan(StyleSpan(Typeface.BOLD_ITALIC), messageTextStartIndex, messageTextEndIndex,
0) 0)
} }
return spannableMsg return spannableMsg
} }
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment