From b5c4231ba8129532574dfd3d26a301f29ae16253 Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Wed, 13 Jun 2018 15:25:41 +0200 Subject: [PATCH] Fixes bug where buffer list was incorrectly wrong --- .../ui/chat/buffers/BufferViewConfigFragment.kt | 14 ++++++-------- .../util/service/ServiceBoundFragment.kt | 6 ++++++ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferViewConfigFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferViewConfigFragment.kt index f7ef6bd6c..a6ab816a4 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferViewConfigFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferViewConfigFragment.kt @@ -47,10 +47,7 @@ import de.kuschku.quasseldroid.settings.MessageSettings import de.kuschku.quasseldroid.ui.coresettings.network.NetworkEditActivity import de.kuschku.quasseldroid.util.ColorContext import de.kuschku.quasseldroid.util.avatars.AvatarHelper -import de.kuschku.quasseldroid.util.helper.combineLatest -import de.kuschku.quasseldroid.util.helper.styledAttributes -import de.kuschku.quasseldroid.util.helper.toLiveData -import de.kuschku.quasseldroid.util.helper.zip +import de.kuschku.quasseldroid.util.helper.* import de.kuschku.quasseldroid.util.irc.format.IrcFormatDeserializer import de.kuschku.quasseldroid.util.service.ServiceBoundFragment import de.kuschku.quasseldroid.viewmodel.data.BufferHiddenState @@ -269,10 +266,11 @@ class BufferViewConfigFragment : ServiceBoundFragment() { combineLatest(viewModel.bufferListThrottled, viewModel.expandedNetworks, - viewModel.selectedBuffer) - .toLiveData().zip(database.filtered().listen(accountId), - accountDatabase.accounts().listen(accountId)) - .observe(this, Observer { it -> + viewModel.selectedBuffer).toLiveData().switchMapNotNull { a -> + database.filtered().listen(accountId).zip(accountDatabase.accounts().listen(accountId)).map { (b, c) -> + Triple(a, b, c) + } + }.observe(this, Observer { it -> it?.let { (data, activityList, account) -> runInBackground { val (info, expandedNetworks, selected) = data diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundFragment.kt index 86f0c7630..fb4d42363 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundFragment.kt @@ -60,6 +60,12 @@ abstract class ServiceBoundFragment : DaggerFragment() { super.onCreate(savedInstanceState) } + override fun onStart() { + super.onStart() + accountId = context?.getSharedPreferences(Keys.Status.NAME, Context.MODE_PRIVATE) + ?.getLong(Keys.Status.selectedAccount, -1) ?: -1 + } + override fun onDestroy() { lifecycle.removeObserver(connection) super.onDestroy() -- GitLab