diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/BufferViewConfigFragment.kt b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/BufferViewConfigFragment.kt index 026c7b1daefda0e14fb1e36839f96c60ada5c116..23d8508c7ffc2f3a85077033f4df77679f92838d 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/BufferViewConfigFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/BufferViewConfigFragment.kt @@ -74,8 +74,8 @@ class BufferViewConfigFragment : ServiceBoundFragment() { } } - val ircFormatDeserializer = IrcFormatDeserializer(context!!) - val renderingSettings = RenderingSettings( + private var ircFormatDeserializer: IrcFormatDeserializer? = null + private val renderingSettings = RenderingSettings( showPrefix = RenderingSettings.ShowPrefixMode.FIRST, colorizeNicknames = RenderingSettings.ColorizeNicknamesMode.ALL_BUT_MINE, colorizeMirc = true, @@ -134,9 +134,9 @@ class BufferViewConfigFragment : ServiceBoundFragment() { away -> BufferListAdapter.BufferStatus.AWAY else -> BufferListAdapter.BufferStatus.ONLINE }, - description = ircFormatDeserializer.formatString( + description = ircFormatDeserializer?.formatString( realName, renderingSettings.colorizeMirc - ), + ) ?: realName, activity = activity ) } @@ -155,9 +155,9 @@ class BufferViewConfigFragment : ServiceBoundFragment() { IrcChannel.NULL -> BufferListAdapter.BufferStatus.OFFLINE else -> BufferListAdapter.BufferStatus.ONLINE }, - description = ircFormatDeserializer.formatString( + description = ircFormatDeserializer?.formatString( topic, renderingSettings.colorizeMirc - ), + ) ?: topic, activity = activity ) } @@ -210,6 +210,10 @@ class BufferViewConfigFragment : ServiceBoundFragment() { override fun onCreate(savedInstanceState: Bundle?) { handlerThread.onCreate() super.onCreate(savedInstanceState) + + if (ircFormatDeserializer == null) { + ircFormatDeserializer = IrcFormatDeserializer(context!!) + } } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/NickListFragment.kt b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/NickListFragment.kt index 5ada6fa5b12c06f92402f5bea44b20497653badb..be9bd31ff994b6c8b010f10f37e9f1212c0ff911 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/NickListFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/NickListFragment.kt @@ -34,8 +34,8 @@ class NickListFragment : ServiceBoundFragment() { @BindView(R.id.nickList) lateinit var nickList: RecyclerView - val ircFormatDeserializer = IrcFormatDeserializer(context!!) - val renderingSettings = RenderingSettings( + private var ircFormatDeserializer: IrcFormatDeserializer? = null + private val renderingSettings = RenderingSettings( showPrefix = RenderingSettings.ShowPrefixMode.FIRST, colorizeNicknames = RenderingSettings.ColorizeNicknamesMode.ALL_BUT_MINE, colorizeMirc = true, @@ -74,7 +74,9 @@ class NickListFragment : ServiceBoundFragment() { user.nick(), network.modesToPrefixes(userModes), lowestMode, - ircFormatDeserializer.formatString(realName, renderingSettings.colorizeMirc), + ircFormatDeserializer?.formatString( + realName, renderingSettings.colorizeMirc + ) ?: realName, away, network.support("CASEMAPPING") ) @@ -97,6 +99,10 @@ class NickListFragment : ServiceBoundFragment() { override fun onCreate(savedInstanceState: Bundle?) { handlerThread.onCreate() super.onCreate(savedInstanceState) + + if (ircFormatDeserializer == null) { + ircFormatDeserializer = IrcFormatDeserializer(context!!) + } } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/QuasselMessageRenderer.kt b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/QuasselMessageRenderer.kt index df5950c069fd8bd7acfb6725616f5303e01eadf2..4829aef05c6496e3e055504a7a401775fb0210d4 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/QuasselMessageRenderer.kt +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/QuasselMessageRenderer.kt @@ -210,7 +210,7 @@ class QuasselMessageRenderer( Message_Type.Error -> FormattedMessage( message.messageId, timeFormatter.format(message.time.atZone(zoneId)), - message.content + formatContent(message.content) ) Message_Type.Topic -> FormattedMessage( message.messageId, diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ToolbarFragment.kt b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ToolbarFragment.kt index 235822264cad0339f87094c4b05b13645be5c8a6..4ef64d13bfca99a7e1c78bc7ec78a98412fcff1b 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ToolbarFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ToolbarFragment.kt @@ -23,6 +23,7 @@ import de.kuschku.quasseldroid_ng.ui.settings.data.RenderingSettings import de.kuschku.quasseldroid_ng.util.helper.* import de.kuschku.quasseldroid_ng.util.irc.format.IrcFormatDeserializer import de.kuschku.quasseldroid_ng.util.service.ServiceBoundFragment +import de.kuschku.quasseldroid_ng.util.ui.SpanFormatter import io.reactivex.Observable class ToolbarFragment : ServiceBoundFragment() { @@ -45,8 +46,8 @@ class ToolbarFragment : ServiceBoundFragment() { showLag = true ) - val ircFormatDeserializer = IrcFormatDeserializer(context!!) - val renderingSettings = RenderingSettings( + private var ircFormatDeserializer: IrcFormatDeserializer? = null + private val renderingSettings = RenderingSettings( showPrefix = RenderingSettings.ShowPrefixMode.FIRST, colorizeNicknames = RenderingSettings.ColorizeNicknamesMode.ALL_BUT_MINE, colorizeMirc = true, @@ -81,9 +82,9 @@ class ToolbarFragment : ServiceBoundFragment() { BufferData( info = info, network = network.networkInfo(), - description = ircFormatDeserializer.formatString( + description = ircFormatDeserializer?.formatString( realName, renderingSettings.colorizeMirc - ) + ) ?: realName ) } } @@ -96,9 +97,9 @@ class ToolbarFragment : ServiceBoundFragment() { BufferData( info = info, network = network.networkInfo(), - description = ircFormatDeserializer.formatString( + description = ircFormatDeserializer?.formatString( topic, renderingSettings.colorizeMirc - ) + ) ?: topic ) } } @@ -154,6 +155,13 @@ class ToolbarFragment : ServiceBoundFragment() { toolbarSubtitle.visibleIf(value?.isNotEmpty() == true) } + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + if (ircFormatDeserializer == null) { + ircFormatDeserializer = IrcFormatDeserializer(context!!) + } + } + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { @@ -177,7 +185,7 @@ class ToolbarFragment : ServiceBoundFragment() { if (description.isNullOrBlank()) { this.subtitle = "Lag: ${lag}ms" } else { - this.subtitle = "Lag: ${lag}ms | $description" + this.subtitle = SpanFormatter.format("Lag: %dms | %s", lag, description) } } }