From 878dedfb842f7a58b7e06a8ddf5060a2520a4638 Mon Sep 17 00:00:00 2001 From: Hyunyoung Song Date: Thu, 24 Jun 2021 22:06:59 -0700 Subject: [PATCH] Don't use ProxyActivity when launching from SearchActionItemInfo intent Bug: 188490184 Test: Manual Change-Id: I9b1b17dfb7e896025a01245414cdab11cf3125cb --- .../launcher3/model/data/SearchActionItemInfo.java | 9 +++++++-- src/com/android/launcher3/touch/ItemClickHandler.java | 9 +-------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/com/android/launcher3/model/data/SearchActionItemInfo.java b/src/com/android/launcher3/model/data/SearchActionItemInfo.java index b3057d5bd2..7ca283ee0c 100644 --- a/src/com/android/launcher3/model/data/SearchActionItemInfo.java +++ b/src/com/android/launcher3/model/data/SearchActionItemInfo.java @@ -25,6 +25,7 @@ import android.os.UserHandle; import androidx.annotation.Nullable; +import com.android.launcher3.Utilities; import com.android.launcher3.logger.LauncherAtom.ItemInfo; import com.android.launcher3.logger.LauncherAtom.SearchActionItem; @@ -34,6 +35,7 @@ import com.android.launcher3.logger.LauncherAtom.SearchActionItem; public class SearchActionItemInfo extends ItemInfoWithIcon { public static final int FLAG_SHOULD_START = 1 << 1; + @Deprecated public static final int FLAG_SHOULD_START_FOR_RESULT = FLAG_SHOULD_START | 1 << 2; public static final int FLAG_BADGE_WITH_PACKAGE = 1 << 3; public static final int FLAG_PRIMARY_ICON_FROM_TITLE = 1 << 4; @@ -89,10 +91,13 @@ public class SearchActionItemInfo extends ItemInfoWithIcon { * Setter for mIntent with assertion for null value mPendingIntent */ public void setIntent(Intent intent) { - if (mPendingIntent != null && intent != null) { + if (mPendingIntent != null && intent != null && Utilities.IS_DEBUG_DEVICE) { throw new RuntimeException( "SearchActionItemInfo can only have either an Intent or a PendingIntent"); } + if (intent != null) { + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + } mIntent = intent; } @@ -104,7 +109,7 @@ public class SearchActionItemInfo extends ItemInfoWithIcon { * Setter of mPendingIntent with assertion for null value mIntent */ public void setPendingIntent(PendingIntent pendingIntent) { - if (mIntent != null && pendingIntent != null) { + if (mIntent != null && pendingIntent != null && Utilities.IS_DEBUG_DEVICE) { throw new RuntimeException( "SearchActionItemInfo can only have either an Intent or a PendingIntent"); } diff --git a/src/com/android/launcher3/touch/ItemClickHandler.java b/src/com/android/launcher3/touch/ItemClickHandler.java index b53f96eea3..408ba28e0a 100644 --- a/src/com/android/launcher3/touch/ItemClickHandler.java +++ b/src/com/android/launcher3/touch/ItemClickHandler.java @@ -262,19 +262,12 @@ public class ItemClickHandler { */ public static void onClickSearchAction(Launcher launcher, SearchActionItemInfo itemInfo) { if (itemInfo.getIntent() != null) { - if (itemInfo.hasFlags(SearchActionItemInfo.FLAG_SHOULD_START_FOR_RESULT)) { - launcher.startActivityForResult(itemInfo.getIntent(), 0); - } else { - launcher.startActivity(itemInfo.getIntent()); - } + launcher.startActivity(itemInfo.getIntent()); } else if (itemInfo.getPendingIntent() != null) { try { PendingIntent pendingIntent = itemInfo.getPendingIntent(); if (!itemInfo.hasFlags(SearchActionItemInfo.FLAG_SHOULD_START)) { pendingIntent.send(); - } else if (itemInfo.hasFlags(SearchActionItemInfo.FLAG_SHOULD_START_FOR_RESULT)) { - launcher.startIntentSenderForResult(pendingIntent.getIntentSender(), 0, null, 0, - 0, 0); } else { launcher.startIntentSender(pendingIntent.getIntentSender(), null, 0, 0, 0); }