Added feature that prevents repositories from being downloaded every single time that user requests to show Module/Download fragment unless requested by user

This commit is contained in:
Viktor De Pasquale
2019-05-25 16:42:34 +02:00
parent 1c90b6eca3
commit 6e1aefe6d8
6 changed files with 11 additions and 10 deletions
@@ -48,14 +48,14 @@ class ModuleViewModel(
queryDisposable?.dispose()
queryDisposable = query()
}
refresh()
refresh(false)
}
fun fabPressed() = OpenFilePickerEvent().publish()
fun repoPressed(item: RepoRvItem) = OpenChangelogEvent(item.item).publish()
fun downloadPressed(item: RepoRvItem) = InstallModuleEvent(item.item).publish()
fun refresh() {
fun refresh(forceReload: Boolean) {
val updateInstalled = moduleRepo.fetchInstalledModules()
.flattenAsFlowable { it }
.map { ModuleRvItem(it) }
@@ -63,7 +63,7 @@ class ModuleViewModel(
.map { it to itemsInstalled.calculateDiff(it) }
.doOnSuccessUi { itemsInstalled.update(it.first, it.second) }
val updateRemote = moduleRepo.fetchModules()
val updateRemote = moduleRepo.fetchModules(forceReload)
zip(updateInstalled, updateRemote) { _, remote -> remote }
.flattenAsFlowable { it }
@@ -56,7 +56,7 @@ class ReposFragment : MagiskFragment<ModuleViewModel, FragmentReposBinding>(),
Config.get<Int>(Config.Key.REPO_ORDER)!!
) { d, which ->
Config.set(Config.Key.REPO_ORDER, which)
viewModel.refresh()
viewModel.refresh(false)
d.dismiss()
}.show()
}