Showing Toast message when the target package is null for the disabled shortcut

The shortcut for a certain set of apps could have their component names set to null. In this case, if we still need the package name for the shortcut, we should use the package name from the intent, which is accomplished in getTargetPackage. Additionally, if the target package is still null, we are falling back to showing the Toast messages only.

Fix: 239685630
Test: Verified that the crash no longer happens after clicking on grayed out shortcuts
Change-Id: I4de68ea1a227032e16e5c00407f75159a7aba30f
This commit is contained in:
Sihua Ma
2022-08-02 10:49:37 -07:00
parent bb76b99c56
commit 1d8b7cba31
2 changed files with 10 additions and 5 deletions

View File

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