Merge "Showing Toast message when the target package is null for the disabled shortcut" into tm-qpr-dev am: 8e66905618

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/19498059

Change-Id: I5321ab73320efc9666306702239364a205519c6b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Sihua Ma
2022-09-19 23:53:22 +00:00
committed by Automerger Merge Worker
2 changed files with 10 additions and 5 deletions
@@ -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;
}
@@ -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