Skip to content
Snippets Groups Projects
Verified Commit 07550497 authored by Janne Mareike Koschinski's avatar Janne Mareike Koschinski
Browse files

Fix restoring of chatlist state

parent 7ad841b4
Branches
Tags
No related merge requests found
Pipeline #
...@@ -264,7 +264,15 @@ class BufferViewConfigFragment : ServiceBoundFragment() { ...@@ -264,7 +264,15 @@ class BufferViewConfigFragment : ServiceBoundFragment() {
getColor(0, 0) 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.expandedNetworks,
viewModel.selectedBuffer).toLiveData().switchMapNotNull { a -> viewModel.selectedBuffer).toLiveData().switchMapNotNull { a ->
database.filtered().listen(accountId).zip(accountDatabase.accounts().listen(accountId)).map { (b, c) -> database.filtered().listen(accountId).zip(accountDatabase.accounts().listen(accountId)).map { (b, c) ->
...@@ -344,15 +352,6 @@ class BufferViewConfigFragment : ServiceBoundFragment() { ...@@ -344,15 +352,6 @@ class BufferViewConfigFragment : ServiceBoundFragment() {
}) })
listAdapter.setOnClickListener(this@BufferViewConfigFragment::clickListener) listAdapter.setOnClickListener(this@BufferViewConfigFragment::clickListener)
listAdapter.setOnLongClickListener(this@BufferViewConfigFragment::longClickListener) 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 chatList.adapter = listAdapter
viewModel.selectedBuffer.toLiveData().observe(this, Observer { buffer -> viewModel.selectedBuffer.toLiveData().observe(this, Observer { buffer ->
...@@ -445,10 +444,6 @@ class BufferViewConfigFragment : ServiceBoundFragment() { ...@@ -445,10 +444,6 @@ class BufferViewConfigFragment : ServiceBoundFragment() {
chatList.itemAnimator = DefaultItemAnimator() chatList.itemAnimator = DefaultItemAnimator()
chatList.setItemViewCacheSize(10) chatList.setItemViewCacheSize(10)
savedInstanceState?.run {
chatList.layoutManager.onRestoreInstanceState(getParcelable(KEY_STATE_LIST))
}
viewModel.stateReset.toLiveData().observe(this, Observer { viewModel.stateReset.toLiveData().observe(this, Observer {
listAdapter.submitList(emptyList()) listAdapter.submitList(emptyList())
hasSetBufferViewConfigId = false hasSetBufferViewConfigId = false
......
...@@ -520,8 +520,6 @@ class QuasselViewModel : ViewModel() { ...@@ -520,8 +520,6 @@ class QuasselViewModel : ViewModel() {
Observable.just(Pair<BufferViewConfig?, List<BufferProps>>(null, emptyList())) Observable.just(Pair<BufferViewConfig?, List<BufferProps>>(null, emptyList()))
} }
} }
val bufferListThrottled = bufferList.distinctUntilChanged().throttleLast(100,
TimeUnit.MILLISECONDS)
companion object { companion object {
const val MAX_RECENT_MESSAGES = 20 const val MAX_RECENT_MESSAGES = 20
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment