From 6c56467d8abd5c3d9529a220215b8ab252c91b4b Mon Sep 17 00:00:00 2001 From: Abodunrinwa Toki Date: Thu, 9 May 2019 02:03:40 +0100 Subject: [PATCH] Report AUTO_SELECTION as a smart selection event. This is so other TCs can have access to the smart indices fore each event. Note that TRON logs remain unchanged. Bug: 132290431 Test: Manually verified. > adb shell setprop log.tag.androidtc VERBOSE > adb shell stop && adb shell start > adb logcat -s "SelectionSessionLogger" Use a custom text classifier Observe that events in the same session as an AUTO_SELECTION event log the AUTO_SELECTION events indices as their smart indices. Change-Id: I109e6e71afc50a02fd81930f5ff1ec86dc47a039 --- .../textclassifier/SelectionSessionLogger.java | 15 ++++++++++++--- .../textclassifier/TextClassificationSession.java | 14 +++++--------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/core/java/android/view/textclassifier/SelectionSessionLogger.java b/core/java/android/view/textclassifier/SelectionSessionLogger.java index 48a568abb1696..20cc944338729 100644 --- a/core/java/android/view/textclassifier/SelectionSessionLogger.java +++ b/core/java/android/view/textclassifier/SelectionSessionLogger.java @@ -80,12 +80,16 @@ public final class SelectionSessionLogger { .addTaggedData(INDEX, event.getEventIndex()) .addTaggedData(WIDGET_TYPE, event.getWidgetType()) .addTaggedData(WIDGET_VERSION, event.getWidgetVersion()) - .addTaggedData(MODEL_NAME, SignatureParser.getModelName(event.getResultId())) .addTaggedData(ENTITY_TYPE, event.getEntityType()) - .addTaggedData(SMART_START, event.getSmartStart()) - .addTaggedData(SMART_END, event.getSmartEnd()) .addTaggedData(EVENT_START, event.getStart()) .addTaggedData(EVENT_END, event.getEnd()); + if (isPlatformLocalTextClassifierSmartSelection(event.getResultId())) { + // Ensure result id and smart indices are only set for events with smart selection from + // the platform's textclassifier. + log.addTaggedData(MODEL_NAME, SignatureParser.getModelName(event.getResultId())) + .addTaggedData(SMART_START, event.getSmartStart()) + .addTaggedData(SMART_END, event.getSmartEnd()); + } if (event.getSessionId() != null) { log.addTaggedData(SESSION_ID, event.getSessionId().flattenToString()); } @@ -193,6 +197,11 @@ public final class SelectionSessionLogger { } } + static boolean isPlatformLocalTextClassifierSmartSelection(String signature) { + return SelectionSessionLogger.CLASSIFIER_ID.equals( + SelectionSessionLogger.SignatureParser.getClassifierId(signature)); + } + private static void debugLog(LogMaker log) { if (!Log.ENABLE_FULL_LOGGING) { return; diff --git a/core/java/android/view/textclassifier/TextClassificationSession.java b/core/java/android/view/textclassifier/TextClassificationSession.java index ba1287fc6b0f7..15f54ef2a623e 100644 --- a/core/java/android/view/textclassifier/TextClassificationSession.java +++ b/core/java/android/view/textclassifier/TextClassificationSession.java @@ -158,11 +158,11 @@ final class TextClassificationSession implements TextClassifier { mStartEvent = event; break; case SelectionEvent.EVENT_SMART_SELECTION_SINGLE: // fall through - case SelectionEvent.EVENT_SMART_SELECTION_MULTI: + case SelectionEvent.EVENT_SMART_SELECTION_MULTI: // fall through + case SelectionEvent.EVENT_AUTO_SELECTION: mSmartEvent = event; break; - case SelectionEvent.EVENT_SELECTION_MODIFIED: // fall through - case SelectionEvent.EVENT_AUTO_SELECTION: + case SelectionEvent.EVENT_SELECTION_MODIFIED: if (mPrevEvent != null && mPrevEvent.getAbsoluteStart() == event.getAbsoluteStart() && mPrevEvent.getAbsoluteEnd() == event.getAbsoluteEnd()) { @@ -215,7 +215,8 @@ final class TextClassificationSession implements TextClassifier { case SelectionEvent.EVENT_SMART_SELECTION_SINGLE: // fall through case SelectionEvent.EVENT_SMART_SELECTION_MULTI: // fall through case SelectionEvent.EVENT_AUTO_SELECTION: - if (isPlatformLocalTextClassifierSmartSelection(event.getResultId())) { + if (SelectionSessionLogger.isPlatformLocalTextClassifierSmartSelection( + event.getResultId())) { if (event.getAbsoluteEnd() - event.getAbsoluteStart() > 1) { event.setEventType(SelectionEvent.EVENT_SMART_SELECTION_MULTI); } else { @@ -229,10 +230,5 @@ final class TextClassificationSession implements TextClassifier { return; } } - - private static boolean isPlatformLocalTextClassifierSmartSelection(String signature) { - return SelectionSessionLogger.CLASSIFIER_ID.equals( - SelectionSessionLogger.SignatureParser.getClassifierId(signature)); - } } }