ShortcutManagerUtil: Ensure app has a launch intent
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user