Merge "Fix an issue that clicking on a smart action chip on keyguard ... failed to launch app resolver when there are more than one app handlers." into qt-dev
am: 78a48f5512
Change-Id: Ic7dd0c9f952e905c8f42001276f3def6e1797b70
This commit is contained in:
@@ -19,7 +19,9 @@ package android.view.textclassifier;
|
||||
import android.annotation.Nullable;
|
||||
import android.app.Person;
|
||||
import android.app.RemoteAction;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.text.TextUtils;
|
||||
import android.util.ArrayMap;
|
||||
import android.util.Pair;
|
||||
@@ -200,10 +202,12 @@ public final class ActionsSuggestionsHelper {
|
||||
if (remoteAction == null) {
|
||||
return null;
|
||||
}
|
||||
Intent actionIntent = ExtrasUtils.getActionIntent(conversationAction.getExtras());
|
||||
ComponentName componentName = actionIntent.getComponent();
|
||||
// Action without a component name will be considered as from the same app.
|
||||
String packageName = componentName == null ? null : componentName.getPackageName();
|
||||
return new Pair<>(
|
||||
conversationAction.getAction().getTitle().toString(),
|
||||
ExtrasUtils.getActionIntent(
|
||||
conversationAction.getExtras()).getComponent().getPackageName());
|
||||
conversationAction.getAction().getTitle().toString(), packageName);
|
||||
}
|
||||
|
||||
private static final class PersonEncoder {
|
||||
|
||||
@@ -118,14 +118,16 @@ public final class LabeledIntent {
|
||||
return null;
|
||||
}
|
||||
Intent resolvedIntent = new Intent(intent);
|
||||
resolvedIntent.setComponent(new ComponentName(packageName, className));
|
||||
resolvedIntent.putExtra(
|
||||
TextClassifier.EXTRA_FROM_TEXT_CLASSIFIER,
|
||||
getFromTextClassifierExtra(textLanguagesBundle));
|
||||
|
||||
boolean shouldShowIcon = false;
|
||||
Icon icon = null;
|
||||
if (!"android".equals(packageName)) {
|
||||
// We only set the component name when the package name is not resolved to "android"
|
||||
// to workaround a bug that explicit intent with component name == ResolverActivity
|
||||
// can't be launched on keyguard.
|
||||
resolvedIntent.setComponent(new ComponentName(packageName, className));
|
||||
if (resolveInfo.activityInfo.getIconResource() != 0) {
|
||||
icon = Icon.createWithResource(
|
||||
packageName, resolveInfo.activityInfo.getIconResource());
|
||||
|
||||
Reference in New Issue
Block a user