DO NOT MERGE No smart text assist for unprovisioned device.

Test: bit CtsViewTestCases:android.view.textclassifier.cts.TextClassificationManagerTest
bit FrameworksCoreTests:android.widget.TextViewActivityTest
bit FrameworksCoreTests:android.widget.TextViewActivityMoutseTest
Bug: 120866126
Bug: 62745625
Merged-In: I360250a5c2a92d09c8d8f559b51c74f490f70c2c
Change-Id: I360250a5c2a92d09c8d8f559b51c74f490f70c2c
This commit is contained in:
Abodunrinwa Toki
2017-06-28 02:49:07 +01:00
parent 3c2abaa4da
commit 7c8a46e0dd

View File

@@ -3909,25 +3909,35 @@ public class Editor {
menu.removeItem(TextView.ID_ASSIST);
final TextClassification textClassification =
getSelectionActionModeHelper().getTextClassification();
if (textClassification != null) {
final Drawable icon = textClassification.getIcon();
final CharSequence label = textClassification.getLabel();
final OnClickListener onClickListener =
textClassification.getOnClickListener();
final Intent intent = textClassification.getIntent();
if ((icon != null || !TextUtils.isEmpty(label))
&& (onClickListener != null || intent != null)) {
menu.add(TextView.ID_ASSIST, TextView.ID_ASSIST, MENU_ITEM_ORDER_ASSIST, label)
.setIcon(icon)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
mMetricsLogger.write(
new LogMaker(MetricsEvent.TEXT_SELECTION_MENU_ITEM_ASSIST)
.setType(MetricsEvent.TYPE_OPEN)
.setSubtype(textClassification.getLogType()));
}
if (canAssist()) {
menu.add(TextView.ID_ASSIST, TextView.ID_ASSIST, MENU_ITEM_ORDER_ASSIST,
textClassification.getLabel())
.setIcon(textClassification.getIcon())
.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
mMetricsLogger.write(
new LogMaker(MetricsEvent.TEXT_SELECTION_MENU_ITEM_ASSIST)
.setType(MetricsEvent.TYPE_OPEN)
.setSubtype(textClassification.getLogType()));
}
}
private boolean canAssist() {
final TextClassification textClassification =
getSelectionActionModeHelper().getTextClassification();
final boolean validAction = textClassification != null
&& (textClassification.getIcon() != null
|| !TextUtils.isEmpty(textClassification.getLabel()))
&& (textClassification.getOnClickListener() != null
|| (textClassification.getIntent() != null
&& mTextView.getContext().canStartActivityForResult()));
final boolean deviceProvisioned = mTextView.isDeviceProvisioned();
if (validAction && !deviceProvisioned) {
android.util.EventLog.writeEvent(0x534e4554, "120866126", -1, "");
}
return validAction && deviceProvisioned;
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
getSelectionActionModeHelper().onSelectionAction();