diff --git a/app/src/main/java/de/kuschku/quasseldroid/service/QuasselNotificationBackend.kt b/app/src/main/java/de/kuschku/quasseldroid/service/QuasselNotificationBackend.kt index 72cc885b0a7c2143925622233c9fe6822fb6de58..686616d11afb3d1ca17c4de59de99ed07bf0a542 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/service/QuasselNotificationBackend.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/service/QuasselNotificationBackend.kt @@ -304,11 +304,11 @@ class QuasselNotificationBackend @Inject constructor( .firstOrNull() ?: nickName.firstOrNull() val initial = rawInitial?.toUpperCase().toString() val senderColor = when (messageSettings.colorizeNicknames) { - MessageSettings.ColorizeNicknamesMode.ALL -> senderColors[senderColorIndex] - MessageSettings.ColorizeNicknamesMode.ALL_BUT_MINE -> + MessageSettings.SenderColorMode.ALL -> senderColors[senderColorIndex] + MessageSettings.SenderColorMode.ALL_BUT_MINE -> if (self) selfColor else senderColors[senderColorIndex] - MessageSettings.ColorizeNicknamesMode.NONE -> selfColor + MessageSettings.SenderColorMode.NONE -> selfColor } val avatarList = AvatarHelper.avatar(messageSettings, ident, realName, avatarUrl, size) diff --git a/app/src/main/java/de/kuschku/quasseldroid/settings/MessageSettings.kt b/app/src/main/java/de/kuschku/quasseldroid/settings/MessageSettings.kt index a914d9d420e79cf08ff2fa4a98745895407d4ce2..5e5b90e65d5150bcc6ce06dca4d845ea7127e314 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/settings/MessageSettings.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/settings/MessageSettings.kt @@ -21,7 +21,7 @@ package de.kuschku.quasseldroid.settings data class MessageSettings( val showPrefix: ShowPrefixMode = ShowPrefixMode.HIGHEST, - val colorizeNicknames: ColorizeNicknamesMode = ColorizeNicknamesMode.ALL_BUT_MINE, + val colorizeNicknames: SenderColorMode = SenderColorMode.ALL_BUT_MINE, val colorizeMirc: Boolean = true, val useMonospace: Boolean = false, val textSize: Int = 14, @@ -41,7 +41,7 @@ data class MessageSettings( val replaceEmoji: Boolean = true ) { - enum class ColorizeNicknamesMode { + enum class SenderColorMode { ALL, ALL_BUT_MINE, NONE; diff --git a/app/src/main/java/de/kuschku/quasseldroid/settings/Settings.kt b/app/src/main/java/de/kuschku/quasseldroid/settings/Settings.kt index 69341309b360eaab29639162580b37766ce92607..fd17b1204c3134b61049ed3fe6675360b0c68536 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/settings/Settings.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/settings/Settings.kt @@ -79,7 +79,7 @@ object Settings { "" ) ?: "" ) ?: MessageSettings.DEFAULT.showPrefix, - colorizeNicknames = MessageSettings.ColorizeNicknamesMode.of( + colorizeNicknames = MessageSettings.SenderColorMode.of( getString( context.getString(R.string.preference_colorize_nicknames_key), "" diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ToolbarFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ToolbarFragment.kt index f503d82bfab8e22728ae202ef9e45bab81310e8a..2dfe1990a06812ddc4a1f9b82e18bc4d6d0c13d9 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ToolbarFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/ToolbarFragment.kt @@ -114,10 +114,10 @@ class ToolbarFragment : ServiceBoundFragment() { val nickName = user.nick() val useSelfColor = when (messageSettings.colorizeNicknames) { - MessageSettings.ColorizeNicknamesMode.ALL -> false - MessageSettings.ColorizeNicknamesMode.ALL_BUT_MINE -> + MessageSettings.SenderColorMode.ALL -> false + MessageSettings.SenderColorMode.ALL_BUT_MINE -> user.network().isMyNick(nickName) - MessageSettings.ColorizeNicknamesMode.NONE -> true + MessageSettings.SenderColorMode.NONE -> true } val fallbackDrawable = colorContext.buildTextDrawable(user.nick(), useSelfColor) diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/add/query/QueryCreateFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/add/query/QueryCreateFragment.kt index 95c12d4bde351ce92ba49839d784ad29901daa98..559c2af0ddf6aa8dd1635204e162fae4ce40f949 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/add/query/QueryCreateFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/add/query/QueryCreateFragment.kt @@ -19,13 +19,9 @@ package de.kuschku.quasseldroid.ui.chat.add.query -import android.graphics.Typeface import android.os.Bundle import android.text.Editable -import android.text.SpannableString import android.text.TextWatcher -import android.text.style.ForegroundColorSpan -import android.text.style.StyleSpan import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -65,6 +61,7 @@ import de.kuschku.quasseldroid.util.avatars.AvatarHelper import de.kuschku.quasseldroid.util.helper.loadWithFallbacks import de.kuschku.quasseldroid.util.helper.styledAttributes import de.kuschku.quasseldroid.util.helper.toLiveData +import de.kuschku.quasseldroid.util.irc.format.ContentFormatter import de.kuschku.quasseldroid.util.irc.format.IrcFormatDeserializer import de.kuschku.quasseldroid.util.service.ServiceBoundFragment import de.kuschku.quasseldroid.viewmodel.data.Avatar @@ -98,6 +95,9 @@ class QueryCreateFragment : ServiceBoundFragment() { @Inject lateinit var modelHelper: QueryCreateViewModelHelper + @Inject + lateinit var contentFormatter: ContentFormatter + private var hasSelectedNetwork = false private var networkId = NetworkId(0) @@ -260,30 +260,13 @@ class QueryCreateFragment : ServiceBoundFragment() { .firstOrNull() ?: nickName.firstOrNull() val initial = rawInitial?.toUpperCase().toString() val useSelfColor = when (messageSettings.colorizeNicknames) { - MessageSettings.ColorizeNicknamesMode.ALL -> false - MessageSettings.ColorizeNicknamesMode.ALL_BUT_MINE -> it.self - MessageSettings.ColorizeNicknamesMode.NONE -> true + MessageSettings.SenderColorMode.ALL -> false + MessageSettings.SenderColorMode.ALL_BUT_MINE -> it.self + MessageSettings.SenderColorMode.NONE -> true } val senderColor = if (useSelfColor) selfColor else senderColors[senderColorIndex] - - fun formatNick(nick: CharSequence): CharSequence { - val spannableString = SpannableString(nick) - spannableString.setSpan( - ForegroundColorSpan(senderColor), - 0, - nick.length, - SpannableString.SPAN_INCLUSIVE_EXCLUSIVE - ) - spannableString.setSpan( - StyleSpan(Typeface.BOLD), - 0, - nick.length, - SpannableString.SPAN_INCLUSIVE_EXCLUSIVE - ) - return spannableString - } it.copy( - displayNick = formatNick(it.nick), + displayNick = contentFormatter.formatNick(it.nick), fallbackDrawable = colorContext.buildTextDrawable(initial, senderColor), initial = initial, modes = when (messageSettings.showPrefix) { diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/archive/ArchiveListAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/archive/ArchiveListAdapter.kt index cfd355e21cc6f50de9f650fdb44f6ea7963346da..4b710ec4dc70230895a391cbe47dc7de09092de8 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/archive/ArchiveListAdapter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/archive/ArchiveListAdapter.kt @@ -297,7 +297,7 @@ class ArchiveListAdapter( } override fun bind(item: BufferListItem, messageSettings: MessageSettings) { - name.text = item.props.network.networkName + name.text = item.props.name bufferId = item.props.info.bufferId networkId = item.props.info.networkId @@ -396,7 +396,7 @@ class ArchiveListAdapter( override fun bind(item: BufferListItem, messageSettings: MessageSettings) { bufferId = item.props.info.bufferId - name.text = item.props.info.bufferName + name.text = item.props.name description.text = item.props.description name.setTextColor( @@ -487,7 +487,7 @@ class ArchiveListAdapter( override fun bind(item: BufferListItem, messageSettings: MessageSettings) { bufferId = item.props.info.bufferId - name.text = item.props.info.bufferName + name.text = item.props.name description.text = item.props.description name.setTextColor( @@ -573,7 +573,7 @@ class ArchiveListAdapter( override fun bind(item: BufferListItem, messageSettings: MessageSettings) { bufferId = item.props.info.bufferId - name.text = item.props.info.bufferName + name.text = item.props.name description.text = item.props.description name.setTextColor( diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferListAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferListAdapter.kt index 5fd727f293dad140ac8a52e9d0f996cf5bdda98a..7ffba7ff27397853fb146a618efd12d05c6764a9 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferListAdapter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferListAdapter.kt @@ -218,7 +218,7 @@ class BufferListAdapter( } override fun bind(item: BufferListItem, messageSettings: MessageSettings) { - name.text = item.props.network.networkName + name.text = item.props.name bufferId = item.props.info.bufferId networkId = item.props.info.networkId @@ -317,7 +317,7 @@ class BufferListAdapter( override fun bind(item: BufferListItem, messageSettings: MessageSettings) { bufferId = item.props.info.bufferId - name.text = item.props.info.bufferName + name.text = item.props.name description.text = item.props.description name.setTextColor( @@ -408,7 +408,7 @@ class BufferListAdapter( override fun bind(item: BufferListItem, messageSettings: MessageSettings) { bufferId = item.props.info.bufferId - name.text = item.props.info.bufferName + name.text = item.props.name description.text = item.props.description name.setTextColor( diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/AutoCompleteHelper.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/AutoCompleteHelper.kt index a3250d1de13bf017eb0d6f4cecf7e19d627c1465..99b4da1606ed9d80f491de83d1d41dca3dced225 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/AutoCompleteHelper.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/AutoCompleteHelper.kt @@ -19,10 +19,6 @@ package de.kuschku.quasseldroid.ui.chat.input -import android.graphics.Typeface -import android.text.SpannableString -import android.text.style.ForegroundColorSpan -import android.text.style.StyleSpan import androidx.fragment.app.FragmentActivity import androidx.lifecycle.Observer import de.kuschku.libquassel.protocol.BufferId @@ -45,6 +41,7 @@ import de.kuschku.quasseldroid.util.avatars.AvatarHelper import de.kuschku.quasseldroid.util.emoji.EmojiData import de.kuschku.quasseldroid.util.helper.styledAttributes import de.kuschku.quasseldroid.util.helper.toLiveData +import de.kuschku.quasseldroid.util.irc.format.ContentFormatter import de.kuschku.quasseldroid.util.irc.format.IrcFormatDeserializer import de.kuschku.quasseldroid.viewmodel.data.AutoCompleteItem import de.kuschku.quasseldroid.viewmodel.data.BufferStatus @@ -56,6 +53,7 @@ class AutoCompleteHelper( private val autoCompleteSettings: AutoCompleteSettings, private val messageSettings: MessageSettings, private val ircFormatDeserializer: IrcFormatDeserializer, + private val contentFormatter: ContentFormatter, private val helper: EditorViewModelHelper ) { private var autocompleteListener: ((AutoCompletionState) -> Unit)? = null @@ -110,31 +108,13 @@ class AutoCompleteHelper( ?: nickName.firstOrNull() val initial = rawInitial?.toUpperCase().toString() val useSelfColor = when (messageSettings.colorizeNicknames) { - MessageSettings.ColorizeNicknamesMode.ALL -> false - MessageSettings.ColorizeNicknamesMode.ALL_BUT_MINE -> it.self - MessageSettings.ColorizeNicknamesMode.NONE -> true + MessageSettings.SenderColorMode.ALL -> false + MessageSettings.SenderColorMode.ALL_BUT_MINE -> it.self + MessageSettings.SenderColorMode.NONE -> true } val senderColor = if (useSelfColor) selfColor else senderColors[senderColorIndex] - - fun formatNick(nick: CharSequence): CharSequence { - val spannableString = SpannableString(nick) - spannableString.setSpan( - ForegroundColorSpan(senderColor), - 0, - nick.length, - SpannableString.SPAN_INCLUSIVE_EXCLUSIVE - ) - spannableString.setSpan( - StyleSpan(Typeface.BOLD), - 0, - nick.length, - SpannableString.SPAN_INCLUSIVE_EXCLUSIVE - ) - return spannableString - } - it.copy( - displayNick = formatNick(it.nick), + displayNick = contentFormatter.formatNick(it.nick), fallbackDrawable = colorContext.buildTextDrawable(initial, senderColor), modes = when (messageSettings.showPrefix) { MessageSettings.ShowPrefixMode.ALL -> diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/ChatlineFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/ChatlineFragment.kt index 6b5375b9ade40ea208044b5d9a4ba2ca8304451e..6ff86d51b901fa375f3df06295905e8b4f9ef707 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/ChatlineFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/ChatlineFragment.kt @@ -41,6 +41,7 @@ import de.kuschku.quasseldroid.settings.AutoCompleteSettings import de.kuschku.quasseldroid.settings.MessageSettings import de.kuschku.quasseldroid.util.emoji.EmojiData import de.kuschku.quasseldroid.util.helper.* +import de.kuschku.quasseldroid.util.irc.format.ContentFormatter import de.kuschku.quasseldroid.util.irc.format.IrcFormatDeserializer import de.kuschku.quasseldroid.util.irc.format.IrcFormatSerializer import de.kuschku.quasseldroid.util.service.ServiceBoundFragment @@ -87,6 +88,9 @@ class ChatlineFragment : ServiceBoundFragment() { @Inject lateinit var ircFormatDeserializer: IrcFormatDeserializer + @Inject + lateinit var contentFormatter: ContentFormatter + @Inject lateinit var ircFormatSerializer: IrcFormatSerializer @@ -120,6 +124,7 @@ class ChatlineFragment : ServiceBoundFragment() { autoCompleteSettings, messageSettings, ircFormatDeserializer, + contentFormatter, modelHelper ) 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 38203fe9b21fb74687e57b7f029458a928dd9a0d..b57c6cda5a4c887395d61c3f622c929c4367ec3b 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 @@ -266,10 +266,10 @@ class QuasselMessageRenderer @Inject constructor( .firstOrNull() ?: nickName.firstOrNull() val initial = rawInitial?.toUpperCase().toString() val useSelfColor = when (messageSettings.colorizeNicknames) { - MessageSettings.ColorizeNicknamesMode.ALL -> false - MessageSettings.ColorizeNicknamesMode.ALL_BUT_MINE -> + MessageSettings.SenderColorMode.ALL -> false + MessageSettings.SenderColorMode.ALL_BUT_MINE -> message.content.flag.hasFlag(Message_Flag.Self) - MessageSettings.ColorizeNicknamesMode.NONE -> true + MessageSettings.SenderColorMode.NONE -> true } val senderColor = if (useSelfColor) selfColor else senderColors[senderColorIndex] @@ -301,10 +301,10 @@ class QuasselMessageRenderer @Inject constructor( .firstOrNull() ?: nickName.firstOrNull() val initial = rawInitial?.toUpperCase().toString() val useSelfColor = when (messageSettings.colorizeNicknames) { - MessageSettings.ColorizeNicknamesMode.ALL -> false - MessageSettings.ColorizeNicknamesMode.ALL_BUT_MINE -> + MessageSettings.SenderColorMode.ALL -> false + MessageSettings.SenderColorMode.ALL_BUT_MINE -> message.content.flag.hasFlag(Message_Flag.Self) - MessageSettings.ColorizeNicknamesMode.NONE -> true + MessageSettings.SenderColorMode.NONE -> true } val senderColor = if (useSelfColor) selfColor else senderColors[senderColorIndex] 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 db13879234451227afb8782204faedea3dc06b91..fa596d38c099c9b2acc6294e46d156c9eec125eb 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 @@ -19,11 +19,7 @@ package de.kuschku.quasseldroid.ui.chat.nicks -import android.graphics.Typeface import android.os.Bundle -import android.text.SpannableString -import android.text.style.ForegroundColorSpan -import android.text.style.StyleSpan import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -53,6 +49,7 @@ import de.kuschku.quasseldroid.util.avatars.AvatarHelper import de.kuschku.quasseldroid.util.helper.loadWithFallbacks import de.kuschku.quasseldroid.util.helper.styledAttributes import de.kuschku.quasseldroid.util.helper.toLiveData +import de.kuschku.quasseldroid.util.irc.format.ContentFormatter import de.kuschku.quasseldroid.util.irc.format.IrcFormatDeserializer import de.kuschku.quasseldroid.util.service.ServiceBoundFragment import de.kuschku.quasseldroid.viewmodel.data.Avatar @@ -73,6 +70,9 @@ class NickListFragment : ServiceBoundFragment() { @Inject lateinit var ircFormatDeserializer: IrcFormatDeserializer + @Inject + lateinit var contentFormatter: ContentFormatter + @Inject lateinit var modelHelper: ChatViewModelHelper @@ -115,30 +115,14 @@ class NickListFragment : ServiceBoundFragment() { .firstOrNull() ?: nickName.firstOrNull() val initial = rawInitial?.toUpperCase().toString() val useSelfColor = when (messageSettings.colorizeNicknames) { - MessageSettings.ColorizeNicknamesMode.ALL -> false - MessageSettings.ColorizeNicknamesMode.ALL_BUT_MINE -> it.self - MessageSettings.ColorizeNicknamesMode.NONE -> true + MessageSettings.SenderColorMode.ALL -> false + MessageSettings.SenderColorMode.ALL_BUT_MINE -> it.self + MessageSettings.SenderColorMode.NONE -> true } val senderColor = if (useSelfColor) selfColor else senderColors[senderColorIndex] - fun formatNick(nick: CharSequence): CharSequence { - val spannableString = SpannableString(nick) - spannableString.setSpan( - ForegroundColorSpan(senderColor), - 0, - nick.length, - SpannableString.SPAN_INCLUSIVE_EXCLUSIVE - ) - spannableString.setSpan( - StyleSpan(Typeface.BOLD), - 0, - nick.length, - SpannableString.SPAN_INCLUSIVE_EXCLUSIVE - ) - return spannableString - } it.copy( - displayNick = formatNick(it.nick), + displayNick = contentFormatter.formatNick(it.nick), fallbackDrawable = colorContext.buildTextDrawable(initial, senderColor), initial = initial, modes = when (messageSettings.showPrefix) { diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/topic/TopicFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/topic/TopicFragment.kt index f13e82e10ecfd9844da47074488936d522555f4c..6451c31e4d147d437daddcbce5332677d8b70823 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/topic/TopicFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/topic/TopicFragment.kt @@ -38,6 +38,7 @@ import de.kuschku.quasseldroid.settings.AutoCompleteSettings import de.kuschku.quasseldroid.settings.MessageSettings import de.kuschku.quasseldroid.ui.chat.input.* import de.kuschku.quasseldroid.util.helper.toLiveData +import de.kuschku.quasseldroid.util.irc.format.ContentFormatter import de.kuschku.quasseldroid.util.irc.format.IrcFormatDeserializer import de.kuschku.quasseldroid.util.irc.format.IrcFormatSerializer import de.kuschku.quasseldroid.util.ui.settings.fragment.Savable @@ -67,6 +68,9 @@ class TopicFragment : ServiceBoundSettingsFragment(), Savable { @Inject lateinit var formatDeserializer: IrcFormatDeserializer + @Inject + lateinit var contentFormatter: ContentFormatter + @Inject lateinit var formatSerializer: IrcFormatSerializer @@ -88,6 +92,7 @@ class TopicFragment : ServiceBoundSettingsFragment(), Savable { autoCompleteSettings, messageSettings, formatDeserializer, + contentFormatter, modelHelper ) 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 c47dc3268b9c882e1b4c71e21da9d45ec5a15740..bdd711fc1d722730d066530e7902587764be8c7c 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 @@ -38,6 +38,7 @@ import de.kuschku.quasseldroid.settings.AppearanceSettings import de.kuschku.quasseldroid.settings.AutoCompleteSettings import de.kuschku.quasseldroid.settings.MessageSettings import de.kuschku.quasseldroid.ui.chat.input.* +import de.kuschku.quasseldroid.util.irc.format.ContentFormatter import de.kuschku.quasseldroid.util.irc.format.IrcFormatDeserializer import de.kuschku.quasseldroid.util.irc.format.IrcFormatSerializer import de.kuschku.quasseldroid.util.ui.settings.fragment.Changeable @@ -71,6 +72,9 @@ class AliasItemFragment : ServiceBoundSettingsFragment(), Savable, Changeable { @Inject lateinit var formatDeserializer: IrcFormatDeserializer + @Inject + lateinit var contentFormatter: ContentFormatter + @Inject lateinit var formatSerializer: IrcFormatSerializer @@ -99,6 +103,7 @@ class AliasItemFragment : ServiceBoundSettingsFragment(), Savable, Changeable { autoCompleteSettings, messageSettings, formatDeserializer, + contentFormatter, modelHelper ) diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/info/user/UserInfoFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/info/user/UserInfoFragment.kt index f74eb7a912bc2a5e642ea4c89973cc9c0a63ec94..10f728033dc644d98010da4eeabc0b1ab44beea2 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/info/user/UserInfoFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/info/user/UserInfoFragment.kt @@ -61,6 +61,7 @@ import de.kuschku.quasseldroid.util.avatars.MatrixApi import de.kuschku.quasseldroid.util.avatars.MatrixAvatarInfo import de.kuschku.quasseldroid.util.helper.* import de.kuschku.quasseldroid.util.irc.format.ContentFormatter +import de.kuschku.quasseldroid.util.irc.format.IrcFormatDeserializer import de.kuschku.quasseldroid.util.irc.format.spans.IrcItalicSpan import de.kuschku.quasseldroid.util.service.ServiceBoundFragment import de.kuschku.quasseldroid.util.ui.BetterLinkMovementMethod @@ -133,6 +134,9 @@ class UserInfoFragment : ServiceBoundFragment() { @Inject lateinit var contentFormatter: ContentFormatter + @Inject + lateinit var ircFormatDeserializer: IrcFormatDeserializer + @Inject lateinit var messageSettings: MessageSettings @@ -318,8 +322,7 @@ class UserInfoFragment : ServiceBoundFragment() { } } } - - nick.text = user.nick + nick.text = ircFormatDeserializer.formatString(user.nick, messageSettings.colorizeMirc) val (content, _) = contentFormatter.formatContent( user.realName ?: "", networkId = user.networkId @@ -337,11 +340,19 @@ class UserInfoFragment : ServiceBoundFragment() { account.text = user.account accountContainer.visibleIf(!user.account.isNullOrBlank()) - ident.text = user.user - identContainer.visibleIf(!user.user.isNullOrBlank()) + val (userIdent, _) = contentFormatter.formatContent( + user.user ?: "", + networkId = user.networkId + ) + ident.text = userIdent + identContainer.visibleIf(userIdent.isNotBlank()) - host.text = user.host - hostContainer.visibleIf(!user.host.isNullOrBlank()) + val (userHost, _) = contentFormatter.formatContent( + user.host ?: "", + networkId = user.networkId + ) + host.text = userHost + hostContainer.visibleIf(userHost.isNotBlank()) server.text = user.server serverContainer.visibleIf(!user.server.isNullOrBlank()) diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/ContentFormatter.kt b/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/ContentFormatter.kt index 994875db4252bda289a3368b41669e83803a6d2b..f9ce956997870344cbf3152c4adc6c47e102df16 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/ContentFormatter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/ContentFormatter.kt @@ -183,11 +183,11 @@ class ContentFormatter @Inject constructor( showHostmask: Boolean = false, senderColors: IntArray = this.senderColors, @ColorInt selfColor: Int = this.selfColor) = when (messageSettings.colorizeNicknames) { - MessageSettings.ColorizeNicknamesMode.ALL -> + MessageSettings.SenderColorMode.ALL -> formatNickImpl(sender, false, !highlight, showHostmask, senderColors, selfColor) - MessageSettings.ColorizeNicknamesMode.ALL_BUT_MINE -> + MessageSettings.SenderColorMode.ALL_BUT_MINE -> formatNickImpl(sender, self, !highlight, showHostmask, senderColors, selfColor) - MessageSettings.ColorizeNicknamesMode.NONE -> + MessageSettings.SenderColorMode.NONE -> formatNickImpl(sender, false, false, showHostmask, senderColors, selfColor) } diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/ui/presenter/BufferPresenter.kt b/app/src/main/java/de/kuschku/quasseldroid/util/ui/presenter/BufferPresenter.kt index 61c970bd0cb496793cc030070053d8abd209298e..d48a10ca6ed622399d2f0bd3403ff5bc01dcd660 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/ui/presenter/BufferPresenter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/ui/presenter/BufferPresenter.kt @@ -25,6 +25,7 @@ import de.kuschku.quasseldroid.settings.AppearanceSettings import de.kuschku.quasseldroid.settings.MessageSettings import de.kuschku.quasseldroid.util.ColorContext import de.kuschku.quasseldroid.util.avatars.AvatarHelper +import de.kuschku.quasseldroid.util.irc.format.ContentFormatter import de.kuschku.quasseldroid.util.irc.format.IrcFormatDeserializer import de.kuschku.quasseldroid.viewmodel.data.BufferListItem import de.kuschku.quasseldroid.viewmodel.data.BufferProps @@ -35,10 +36,19 @@ class BufferPresenter @Inject constructor( val appearanceSettings: AppearanceSettings, val messageSettings: MessageSettings, val ircFormatDeserializer: IrcFormatDeserializer, + val contentFormatter: ContentFormatter, val colorContext: ColorContext ) { fun render(props: BufferProps): BufferProps { return props.copy( + name = when { + props.info.type.hasFlag(Buffer_Type.QueryBuffer) -> + ircFormatDeserializer.formatString(props.info.bufferName, messageSettings.colorizeMirc) + props.info.type.hasFlag(Buffer_Type.StatusBuffer) -> + props.network.networkName + else -> + props.info.bufferName ?: "" + }, description = ircFormatDeserializer.formatString( props.description.toString(), colorize = messageSettings.colorizeMirc @@ -47,10 +57,10 @@ class BufferPresenter @Inject constructor( props.ircUser?.let { val nickName = it.nick() val useSelfColor = when (messageSettings.colorizeNicknames) { - MessageSettings.ColorizeNicknamesMode.ALL -> false - MessageSettings.ColorizeNicknamesMode.ALL_BUT_MINE -> + MessageSettings.SenderColorMode.ALL -> false + MessageSettings.SenderColorMode.ALL_BUT_MINE -> props.ircUser?.network()?.isMyNick(nickName) == true - MessageSettings.ColorizeNicknamesMode.NONE -> true + MessageSettings.SenderColorMode.NONE -> true } colorContext.buildTextDrawable(it.nick(), useSelfColor) diff --git a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/BufferProps.kt b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/BufferProps.kt index add74fb9b2dd30a259b4e73d50a736ccf449cf13..09ee3a32aa8962242ab234118f710589a1d03557 100644 --- a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/BufferProps.kt +++ b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/BufferProps.kt @@ -37,6 +37,7 @@ data class BufferProps( val bufferActivity: Buffer_Activities = BufferInfo.Activity.of( BufferInfo.Activity.NoActivity ), + val name: CharSequence = "", val ircUser: IrcUser? = null, val avatarUrls: List<Avatar> = emptyList(), val fallbackDrawable: Drawable? = null,