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 a6ab816a4cc465f52bf2d7ea518169ee96a90b69..a23db1f5fbaa235680bf53f8ab41f85422910391 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 @@ -264,7 +264,15 @@ class BufferViewConfigFragment : ServiceBoundFragment() { getColor(0, 0) } - combineLatest(viewModel.bufferListThrottled, + var hasRestoredChatListState = false + listAdapter.setOnUpdateFinishedListener { + if (!hasRestoredChatListState) { + savedInstanceState?.getParcelable<Parcelable>(KEY_STATE_LIST) + ?.let(chatList.layoutManager::onRestoreInstanceState) + hasRestoredChatListState = true + } + } + combineLatest(viewModel.bufferList, viewModel.expandedNetworks, viewModel.selectedBuffer).toLiveData().switchMapNotNull { a -> database.filtered().listen(accountId).zip(accountDatabase.accounts().listen(accountId)).map { (b, c) -> @@ -344,15 +352,6 @@ class BufferViewConfigFragment : ServiceBoundFragment() { }) listAdapter.setOnClickListener(this@BufferViewConfigFragment::clickListener) listAdapter.setOnLongClickListener(this@BufferViewConfigFragment::longClickListener) - - var hasRestoredChatListState = false - listAdapter.setOnUpdateFinishedListener { - if (!hasRestoredChatListState) { - savedInstanceState?.getParcelable<Parcelable>(KEY_STATE_LIST) - ?.let(chatList.layoutManager::onRestoreInstanceState) - hasRestoredChatListState = true - } - } chatList.adapter = listAdapter viewModel.selectedBuffer.toLiveData().observe(this, Observer { buffer -> @@ -445,10 +444,6 @@ class BufferViewConfigFragment : ServiceBoundFragment() { chatList.itemAnimator = DefaultItemAnimator() chatList.setItemViewCacheSize(10) - savedInstanceState?.run { - chatList.layoutManager.onRestoreInstanceState(getParcelable(KEY_STATE_LIST)) - } - viewModel.stateReset.toLiveData().observe(this, Observer { listAdapter.submitList(emptyList()) hasSetBufferViewConfigId = false diff --git a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt index d147b446684742e0b4716f372819ae546d7b8020..a04c36e95ded15a6eff9b0f82316170a4001d45b 100644 --- a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt +++ b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/QuasselViewModel.kt @@ -520,8 +520,6 @@ class QuasselViewModel : ViewModel() { Observable.just(Pair<BufferViewConfig?, List<BufferProps>>(null, emptyList())) } } - val bufferListThrottled = bufferList.distinctUntilChanged().throttleLast(100, - TimeUnit.MILLISECONDS) companion object { const val MAX_RECENT_MESSAGES = 20