From 852d9bdb85b4dd5dcba6ed0a116613cfcbc7cc13 Mon Sep 17 00:00:00 2001 From: Rahul Patel Date: Thu, 5 Dec 2024 22:00:49 +0530 Subject: [PATCH] Blacklist: Add select & remove all action --- .../view/ui/commons/BlacklistFragment.kt | 14 +++++++- .../store/viewmodel/all/BlacklistViewModel.kt | 8 +++++ app/src/main/res/menu/menu_blacklist.xml | 33 +++++++++++++++++++ app/src/main/res/values/strings.xml | 2 ++ 4 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 app/src/main/res/menu/menu_blacklist.xml 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 978a1de75..f72a71461 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 @@ -127,7 +127,7 @@ class BlacklistFragment : BaseFragment() { ) val inflater: MenuInflater = popupMenu.menuInflater - inflater.inflate(R.menu.menu_import_export, popupMenu.menu) + inflater.inflate(R.menu.menu_blacklist, popupMenu.menu) popupMenu.setOnMenuItemClickListener { menuItem: MenuItem -> when (menuItem.itemId) { @@ -143,6 +143,18 @@ class BlacklistFragment : BaseFragment() { true } + R.id.action_select_all -> { + viewModel.selectAll() + binding.recycler.requestModelBuild() + true + } + + R.id.action_remove_all -> { + viewModel.removeAll() + binding.recycler.requestModelBuild() + true + } + else -> false } } diff --git a/app/src/main/java/com/aurora/store/viewmodel/all/BlacklistViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/all/BlacklistViewModel.kt index 6a7d65ca8..acea39901 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/all/BlacklistViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/all/BlacklistViewModel.kt @@ -65,6 +65,14 @@ class BlacklistViewModel @Inject constructor( } } + fun selectAll() { + selected.addAll(packages.value?.map { it.packageName } ?: emptyList()) + } + + fun removeAll() { + selected.clear() + } + fun importBlacklist(context: Context, uri: Uri) { viewModelScope.launch(Dispatchers.IO) { try { diff --git a/app/src/main/res/menu/menu_blacklist.xml b/app/src/main/res/menu/menu_blacklist.xml new file mode 100644 index 000000000..072968921 --- /dev/null +++ b/app/src/main/res/menu/menu_blacklist.xml @@ -0,0 +1,33 @@ + + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index aa0a3c1a4..bd7c0c961 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -85,10 +85,12 @@ "Pause" "Pending" "Post" + "Remove all" Request new analysis "Restart" "Resume" "Search" + "Select all" "Share" "Uninstall" "Successfully uninstalled"