diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferListAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferListAdapter.kt index ca154ae8e49ff6356465ef5ca9718ddcea5050db..de653dc1ebb0cc21fc8d52d49c5e5634b8f9b1b5 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferListAdapter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferListAdapter.kt @@ -38,7 +38,7 @@ class BufferListAdapter( private val clickListener: ((BufferId) -> Unit)? = null, private val longClickListener: ((BufferId) -> Unit)? = null ) : RecyclerView.Adapter<BufferListAdapter.BufferViewHolder>() { - var data = mutableListOf<BufferListItem>() + var data = emptyList<BufferListItem>() fun expandListener(networkId: NetworkId) { if (collapsedNetworks.value.orEmpty().contains(networkId)) @@ -62,7 +62,7 @@ class BufferListAdapter( init { liveData.zip(collapsedNetworks.toLiveData(), selectedBuffer.toLiveData()).observe( lifecycleOwner, Observer { it: Triple<List<BufferProps>?, Set<NetworkId>, BufferId>? -> - val old: List<BufferListItem> = ArrayList(data) + val old: List<BufferListItem> = data runInBackground { val list = it?.first ?: emptyList() val collapsedNetworks = it?.second ?: emptySet() @@ -98,8 +98,7 @@ class BufferListAdapter( ) runOnUiThread( Runnable { - data.clear() - data.addAll(new) + data = new result.dispatchUpdatesTo(this@BufferListAdapter) }) }