ShortcutManagerUtil: Ensure app has a launch intent

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2024-02-23 12:53:52 +05:30
parent fdd58ef153
commit 3091679c4c
2 changed files with 8 additions and 4 deletions

View File

@@ -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) {

View File

@@ -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