From ce647baaf306b318bc43d0821c19d96d9df00b7d Mon Sep 17 00:00:00 2001 From: machiav3lli Date: Fri, 4 Mar 2022 01:16:31 +0100 Subject: [PATCH] Add: Update all in installed tab (closes #3) --- src/main/kotlin/com/looker/droidify/service/SyncService.kt | 6 ++++-- .../com/looker/droidify/ui/activities/MainActivityX.kt | 2 +- .../com/looker/droidify/ui/fragments/InstalledFragment.kt | 6 ++++++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/com/looker/droidify/service/SyncService.kt b/src/main/kotlin/com/looker/droidify/service/SyncService.kt index 7c734912..10575907 100644 --- a/src/main/kotlin/com/looker/droidify/service/SyncService.kt +++ b/src/main/kotlin/com/looker/droidify/service/SyncService.kt @@ -102,6 +102,8 @@ class SyncService : ConnectionService() { } } + fun updateApps(prodcts: List) = batchUpdate(prodcts) + fun sync(request: SyncRequest) { GlobalScope.launch { val ids = db.repositoryDao.all.filter { it.enabled }.map { it.id }.toList() @@ -406,7 +408,7 @@ class SyncService : ConnectionService() { handleNextTask(false) if (result.isNotEmpty()) { if (Preferences[Preferences.Key.InstallAfterSync]) - runAutoUpdate(result) + batchUpdate(result) if (hasUpdates && Preferences[Preferences.Key.UpdateNotify] && updateNotificationBlockerFragment?.get()?.isAdded == true ) @@ -436,7 +438,7 @@ class SyncService : ConnectionService() { * @param productItems a list of apps pending updates * @see SyncService.displayUpdatesNotification */ - private fun runAutoUpdate(productItems: List) { + private fun batchUpdate(productItems: List) { if (Preferences[Preferences.Key.InstallAfterSync]) GlobalScope.launch { // run startUpdate on every item productItems.map { productItem -> diff --git a/src/main/kotlin/com/looker/droidify/ui/activities/MainActivityX.kt b/src/main/kotlin/com/looker/droidify/ui/activities/MainActivityX.kt index e2ba456f..4ba74622 100644 --- a/src/main/kotlin/com/looker/droidify/ui/activities/MainActivityX.kt +++ b/src/main/kotlin/com/looker/droidify/ui/activities/MainActivityX.kt @@ -55,7 +55,7 @@ class MainActivityX : AppCompatActivity() { private val viewModel: MainActivityViewModelX by viewModels() val menuSetup = MutableLiveData() - private val syncConnection = Connection(SyncService::class.java, onBind = { _, _ -> + val syncConnection = Connection(SyncService::class.java, onBind = { _, _ -> navController.currentDestination?.let { val source = Source.values()[when (it.id) { R.id.latestTab -> 1 diff --git a/src/main/kotlin/com/looker/droidify/ui/fragments/InstalledFragment.kt b/src/main/kotlin/com/looker/droidify/ui/fragments/InstalledFragment.kt index 77152de4..79c7cef5 100644 --- a/src/main/kotlin/com/looker/droidify/ui/fragments/InstalledFragment.kt +++ b/src/main/kotlin/com/looker/droidify/ui/fragments/InstalledFragment.kt @@ -10,6 +10,7 @@ import androidx.compose.material.Scaffold import com.google.android.material.composethemeadapter.MdcTheme import com.looker.droidify.R import com.looker.droidify.content.Preferences +import com.looker.droidify.database.entity.Product import com.looker.droidify.database.entity.Repository import com.looker.droidify.databinding.FragmentInstalledXBinding import com.looker.droidify.ui.compose.ProductsHorizontalRecycler @@ -99,6 +100,11 @@ class InstalledFragment : MainNavFragmentX() { } } } + binding.buttonUpdateAll.setOnClickListener { + viewModel.secondaryProducts.value?.let { + mainActivityX.syncConnection.binder?.updateApps(it.map(Product::item)) + } + } mainActivityX.menuSetup.observe(viewLifecycleOwner) { if (it != null) { val searchView =