From 3091679c4cdfc5744421898565731bc66d1c13bd Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Fri, 23 Feb 2024 12:53:52 +0530 Subject: [PATCH] ShortcutManagerUtil: Ensure app has a launch intent Signed-off-by: Aayush Gupta --- .../main/java/com/aurora/store/util/ShortcutManagerUtil.kt | 5 +++-- .../com/aurora/store/view/ui/details/AppDetailsFragment.kt | 7 +++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/aurora/store/util/ShortcutManagerUtil.kt b/app/src/main/java/com/aurora/store/util/ShortcutManagerUtil.kt index 34c690055..97e62a01f 100644 --- a/app/src/main/java/com/aurora/store/util/ShortcutManagerUtil.kt +++ b/app/src/main/java/com/aurora/store/util/ShortcutManagerUtil.kt @@ -10,8 +10,9 @@ object ShortcutManagerUtil { private const val TAG = "ShortcutManagerUtil" - fun canPinShortcut(context: Context): Boolean { - return ShortcutManagerCompat.isRequestPinShortcutSupported(context) + fun canPinShortcut(context: Context, packageName: String): Boolean { + return ShortcutManagerCompat.isRequestPinShortcutSupported(context) && + context.packageManager.getLaunchIntentForPackage(packageName) != null } fun requestPinShortcut(context: Context, packageName: String) { 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 53879ad59..12031f958 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 @@ -158,7 +158,7 @@ class AppDetailsFragment : BaseFragment(R.layout.fragment_details) { attachActions() binding.layoutDetailsToolbar.toolbar.menu.apply { findItem(R.id.action_home_screen)?.isVisible = - ShortcutManagerUtil.canPinShortcut(requireContext()) + ShortcutManagerUtil.canPinShortcut(requireContext(), app.packageName) findItem(R.id.action_uninstall)?.isVisible = true findItem(R.id.menu_app_settings)?.isVisible = true } @@ -418,7 +418,10 @@ class AppDetailsFragment : BaseFragment(R.layout.fragment_details) { app.isInstalled = PackageUtil.isInstalled(requireContext(), app.packageName) menu?.findItem(R.id.action_home_screen)?.isVisible = - app.isInstalled && ShortcutManagerUtil.canPinShortcut(requireContext()) + app.isInstalled && ShortcutManagerUtil.canPinShortcut( + requireContext(), + app.packageName + ) menu?.findItem(R.id.action_uninstall)?.isVisible = app.isInstalled menu?.findItem(R.id.menu_app_settings)?.isVisible = app.isInstalled