Merge "Revert "Don't use ProxyActivity when launching from SearchActionItemInfo intent"" into sc-dev

This commit is contained in:
Hyunyoung Song 2021-07-02 21:18:18 +00:00 committed by Android (Google) Code Review
commit 933d2536da
2 changed files with 10 additions and 8 deletions

View File

@ -25,7 +25,6 @@ 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;
@ -35,7 +34,6 @@ 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;
@ -91,13 +89,10 @@ public class SearchActionItemInfo extends ItemInfoWithIcon {
* Setter for mIntent with assertion for null value mPendingIntent
*/
public void setIntent(Intent intent) {
if (mPendingIntent != null && intent != null && Utilities.IS_DEBUG_DEVICE) {
if (mPendingIntent != null && intent != null) {
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;
}
@ -109,7 +104,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 && Utilities.IS_DEBUG_DEVICE) {
if (mIntent != null && pendingIntent != null) {
throw new RuntimeException(
"SearchActionItemInfo can only have either an Intent or a PendingIntent");
}

View File

@ -262,12 +262,19 @@ public class ItemClickHandler {
*/
public static void onClickSearchAction(Launcher launcher, SearchActionItemInfo itemInfo) {
if (itemInfo.getIntent() != null) {
launcher.startActivity(itemInfo.getIntent());
if (itemInfo.hasFlags(SearchActionItemInfo.FLAG_SHOULD_START_FOR_RESULT)) {
launcher.startActivityForResult(itemInfo.getIntent(), 0);
} else {
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);
}