From 29ce733611bc08cfd5b36fec6b21689da9ef3590 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Mon, 4 Mar 2024 14:50:15 +0530 Subject: [PATCH] UpdatesFragment: Move Update All button to FAB * Also link BlacklistFragment in in it's place as requested by users Signed-off-by: Aayush Gupta --- .../view/ui/commons/BlacklistFragment.kt | 6 ++- .../store/view/ui/updates/UpdatesFragment.kt | 46 ++++++++++++++----- app/src/main/res/layout/fragment_updates.xml | 17 ++++++- .../main/res/layout/view_header_update.xml | 2 +- app/src/main/res/values/strings.xml | 1 + 5 files changed, 57 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/aurora/store/view/ui/commons/BlacklistFragment.kt b/app/src/main/java/com/aurora/store/view/ui/commons/BlacklistFragment.kt index e080a4b4c..8099043eb 100644 --- a/app/src/main/java/com/aurora/store/view/ui/commons/BlacklistFragment.kt +++ b/app/src/main/java/com/aurora/store/view/ui/commons/BlacklistFragment.kt @@ -65,10 +65,14 @@ class BlacklistFragment : Fragment(R.layout.activity_generic_recycler) { updateController(null) } + override fun onPause() { + super.onPause() + blacklistProvider.save(VM.selected) + } + override fun onDestroyView() { super.onDestroyView() _binding = null - blacklistProvider.save(VM.selected) } private fun updateController(blackList: List?) { diff --git a/app/src/main/java/com/aurora/store/view/ui/updates/UpdatesFragment.kt b/app/src/main/java/com/aurora/store/view/ui/updates/UpdatesFragment.kt index 1fd46b172..f5d2785d4 100644 --- a/app/src/main/java/com/aurora/store/view/ui/updates/UpdatesFragment.kt +++ b/app/src/main/java/com/aurora/store/view/ui/updates/UpdatesFragment.kt @@ -30,6 +30,7 @@ import androidx.activity.result.contract.ActivityResultContracts import androidx.core.content.ContextCompat import androidx.fragment.app.viewModels import androidx.lifecycle.lifecycleScope +import androidx.navigation.fragment.findNavController import com.aurora.Constants import com.aurora.extensions.browse import com.aurora.extensions.isRAndAbove @@ -96,6 +97,37 @@ class UpdatesFragment : BaseFragment(R.layout.fragment_updates) { updateController(map) binding.swipeRefreshLayout.isRefreshing = false viewModel.updateAllEnqueued = map?.values?.all { it?.isRunning == true } ?: false + + if (!map.isNullOrEmpty()) { + binding.updateFab.apply { + visibility = View.VISIBLE + if (viewModel.updateAllEnqueued) { + setImageDrawable( + ContextCompat.getDrawable( + requireContext(), + R.drawable.ic_cancel + ) + ) + } else { + setImageDrawable( + ContextCompat.getDrawable( + requireContext(), + R.drawable.ic_installation + ) + ) + } + setOnClickListener { + if (viewModel.updateAllEnqueued) { + cancelAll() + } else { + map.keys.forEach { updateSingle(it, true) } + } + binding.recycler.requestModelBuild() + } + } + } else { + binding.updateFab.visibility = View.GONE + } } } @@ -156,19 +188,9 @@ class UpdatesFragment : BaseFragment(R.layout.fragment_updates) { else getString(R.string.updates_available) ) - .action( - if (viewModel.updateAllEnqueued) - getString(R.string.action_cancel) - else - getString(R.string.action_update_all) - ) + .action(getString(R.string.action_manage)) .click { _ -> - if (viewModel.updateAllEnqueued) { - cancelAll() - } else { - appList.keys.forEach { updateSingle(it, true) } - } - requestModelBuild() + findNavController().navigate(R.id.blacklistFragment) } ) diff --git a/app/src/main/res/layout/fragment_updates.xml b/app/src/main/res/layout/fragment_updates.xml index 720464a79..8767987ab 100644 --- a/app/src/main/res/layout/fragment_updates.xml +++ b/app/src/main/res/layout/fragment_updates.xml @@ -40,4 +40,19 @@ app:stackFromEnd="false" tools:listitem="@layout/view_app_list" /> - \ No newline at end of file + + + diff --git a/app/src/main/res/layout/view_header_update.xml b/app/src/main/res/layout/view_header_update.xml index a17049b13..2c9036444 100644 --- a/app/src/main/res/layout/view_header_update.xml +++ b/app/src/main/res/layout/view_header_update.xml @@ -59,5 +59,5 @@ android:layout_marginStart="@dimen/margin_small" android:layout_marginEnd="@dimen/margin_small" android:padding="@dimen/padding_xsmall" - android:text="@string/action_update_all" /> + android:text="@string/action_manage" /> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b0f6a8413..002322390 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -402,4 +402,5 @@ Please, disable battery optimizations to allow background operations. Optionally you can choose to keep the optimizations enabled, but then you won\'t be able to take benefit of background downloads and automated updates, so choice is yours. Failed to export APKs + Manage