From d48e24f37603af0d736c75fd7c35da171dd547b5 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Sat, 21 Dec 2024 12:35:39 +0700 Subject: [PATCH] AppDetailsFragment: Also show Unarchive as primary action Show action text as "Unarchive" if the package was archived instead of "Install" Signed-off-by: Aayush Gupta --- .../main/java/com/aurora/store/util/PackageUtil.kt | 9 +++++++++ .../store/view/ui/details/AppDetailsFragment.kt | 12 +++++++++--- app/src/main/res/values/strings.xml | 3 +++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/aurora/store/util/PackageUtil.kt b/app/src/main/java/com/aurora/store/util/PackageUtil.kt index e3491cc3b..1ad600a6e 100644 --- a/app/src/main/java/com/aurora/store/util/PackageUtil.kt +++ b/app/src/main/java/com/aurora/store/util/PackageUtil.kt @@ -40,6 +40,7 @@ import com.aurora.extensions.isHuawei import com.aurora.extensions.isOAndAbove import com.aurora.extensions.isPAndAbove import com.aurora.extensions.isTAndAbove +import com.aurora.extensions.isVAndAbove import com.aurora.extensions.isValidApp import com.aurora.store.BuildConfig import com.aurora.store.R @@ -95,6 +96,14 @@ object PackageUtil { } } + fun isArchived(context: Context, packageName: String): Boolean { + return try { + isVAndAbove && context.packageManager.getArchivedPackage(packageName) != null + } catch (e: PackageManager.NameNotFoundException) { + false + } + } + fun isSharedLibrary(context: Context, packageName: String): Boolean { return if (isOAndAbove) { getAllSharedLibraries(context).any { it.name == packageName } diff --git a/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsFragment.kt b/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsFragment.kt index fc3eb6bdc..3a27befd8 100644 --- a/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsFragment.kt +++ b/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsFragment.kt @@ -624,10 +624,16 @@ class AppDetailsFragment : BaseFragment() { } } } else { - if (app.isFree) { - binding.layoutDetailsApp.btnPrimaryAction.setText(R.string.action_install) + if (PackageUtil.isArchived(requireContext(), app.packageName)) { + binding.layoutDetailsApp.btnPrimaryAction.text = + getString(R.string.action_unarchive) } else { - binding.layoutDetailsApp.btnPrimaryAction.text = app.price + if (app.isFree) { + binding.layoutDetailsApp.btnPrimaryAction.text = + getString(R.string.action_install) + } else { + binding.layoutDetailsApp.btnPrimaryAction.text = app.price + } } binding.layoutDetailsApp.btnPrimaryAction.setOnClickListener { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2317e8000..2b088d12e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -480,4 +480,7 @@ Default Available + + + Unarchive