Bug fixes in modules fragment

- Progress is not updated in upgradable modules (and can cause crash)
- EndlessRecyclerScrollListener is not reset on new query
This commit is contained in:
topjohnwu 2020-07-08 01:40:08 -07:00
parent 01a43b03bd
commit dc8f0f6feb

View File

@ -256,6 +256,7 @@ class ModuleViewModel(
} }
override fun query() { override fun query() {
EndlessRecyclerScrollListener.ResetState().publish()
queryJob = viewModelScope.launch { queryJob = viewModelScope.launch {
val searched = queryInternal(query, 0) val searched = queryInternal(query, 0)
val diff = withContext(Dispatchers.Default) { val diff = withContext(Dispatchers.Default) {
@ -277,10 +278,13 @@ class ModuleViewModel(
// --- // ---
private fun update(repo: Repo, progress: Int) = viewModelScope.launch { private fun update(repo: Repo, progress: Int) = viewModelScope.launch {
val item = withContext(Dispatchers.Default) { val items = withContext(Dispatchers.Default) {
(itemsRemote + itemsSearch).first { it.item.id == repo.id } val predicate = { it: RepoItem -> it.item.id == repo.id }
itemsUpdatable.filter(predicate) +
itemsRemote.filter(predicate) +
itemsSearch.filter(predicate)
} }
item.progress.value = progress items.forEach { it.progress.value = progress }
} }
// --- // ---