From 9090d941ae25f2f479d0be66f1cfdae69017ba57 Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Mon, 19 Feb 2018 01:27:48 +0100 Subject: [PATCH] Fix a crashing bug due to the context not being available yet --- .../ui/chat/BufferViewConfigFragment.kt | 16 +++++++++----- .../ui/chat/NickListFragment.kt | 12 +++++++--- .../ui/chat/QuasselMessageRenderer.kt | 2 +- .../ui/chat/ToolbarFragment.kt | 22 +++++++++++++------ 4 files changed, 35 insertions(+), 17 deletions(-) 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 026c7b1da..23d8508c7 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 5ada6fa5b..be9bd31ff 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 df5950c06..4829aef05 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 235822264..4ef64d13b 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) } } } -- GitLab