From 7c8a46e0dd32e922e285ed56d968e6f23011a51d Mon Sep 17 00:00:00 2001 From: Abodunrinwa Toki Date: Wed, 28 Jun 2017 02:49:07 +0100 Subject: [PATCH] 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 --- core/java/android/widget/Editor.java | 42 +++++++++++++++++----------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/core/java/android/widget/Editor.java b/core/java/android/widget/Editor.java index 45e5f8adc4681..bf3b6155853dd 100644 --- a/core/java/android/widget/Editor.java +++ b/core/java/android/widget/Editor.java @@ -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();