diff --git a/src/com/android/launcher3/model/data/ItemInfoWithIcon.java b/src/com/android/launcher3/model/data/ItemInfoWithIcon.java index 76a0c4d64c..e5fb015f2e 100644 --- a/src/com/android/launcher3/model/data/ItemInfoWithIcon.java +++ b/src/com/android/launcher3/model/data/ItemInfoWithIcon.java @@ -16,7 +16,6 @@ package com.android.launcher3.model.data; -import android.content.ComponentName; import android.content.Context; import android.content.Intent; @@ -220,10 +219,10 @@ public abstract class ItemInfoWithIcon extends ItemInfo { /** Creates an intent to that launches the app store at this app's page. */ @Nullable public Intent getMarketIntent(Context context) { - ComponentName componentName = getTargetComponent(); + String targetPackage = getTargetPackage(); - return componentName != null - ? new PackageManagerHelper(context).getMarketIntent(componentName.getPackageName()) + return targetPackage != null + ? new PackageManagerHelper(context).getMarketIntent(targetPackage) : null; } diff --git a/src/com/android/launcher3/touch/ItemClickHandler.java b/src/com/android/launcher3/touch/ItemClickHandler.java index e95a787cfd..32c5aa529f 100644 --- a/src/com/android/launcher3/touch/ItemClickHandler.java +++ b/src/com/android/launcher3/touch/ItemClickHandler.java @@ -248,13 +248,19 @@ public class ItemClickHandler { final Launcher launcher = Launcher.getLauncher(context); if (shortcut.itemType == LauncherSettings.Favorites.ITEM_TYPE_DEEP_SHORTCUT && shortcut.isDisabledVersionLower()) { + final Intent marketIntent = shortcut.getMarketIntent(context); + // No market intent means no target package for the shortcut, which should be an + // issue. Falling back to showing toast messages. + if (marketIntent == null) { + return false; + } new AlertDialog.Builder(context) .setTitle(R.string.dialog_update_title) .setMessage(R.string.dialog_update_message) .setPositiveButton(R.string.dialog_update, (d, i) -> { // Direct the user to the play store to update the app - context.startActivity(shortcut.getMarketIntent(context)); + context.startActivity(marketIntent); }) .setNeutralButton(R.string.dialog_remove, (d, i) -> { // Remove the icon if launcher is successfully initialized