From dfd3c653cef679b05a5e4f79b2e894b5b0e55c37 Mon Sep 17 00:00:00 2001 From: Abodunrinwa Toki Date: Tue, 8 May 2018 18:23:10 +0100 Subject: [PATCH] Fix TextClassifier logging. No logs were being sent via the TextClassificationManagerService to the TextClassifierService. Also, SelectionEvent.getSessionId() is nullable. Handle appropriately. Bug: 79418429 Test: manual - manually tested via a debugger. Auto tests coming soon. Test: bit CtsViewTestCases:android.view.textclassifier.cts.TextClassificationManagerTest Change-Id: I196885d9b03c0c11cae7686a5835d14791065e78 --- .../view/textclassifier/SelectionSessionLogger.java | 6 ++++-- .../view/textclassifier/SystemTextClassifier.java | 12 ++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/core/java/android/view/textclassifier/SelectionSessionLogger.java b/core/java/android/view/textclassifier/SelectionSessionLogger.java index f2fb63eb01f3f..cdacdd504eebb 100644 --- a/core/java/android/view/textclassifier/SelectionSessionLogger.java +++ b/core/java/android/view/textclassifier/SelectionSessionLogger.java @@ -86,8 +86,10 @@ public final class SelectionSessionLogger { .addTaggedData(SMART_START, event.getSmartStart()) .addTaggedData(SMART_END, event.getSmartEnd()) .addTaggedData(EVENT_START, event.getStart()) - .addTaggedData(EVENT_END, event.getEnd()) - .addTaggedData(SESSION_ID, event.getSessionId().flattenToString()); + .addTaggedData(EVENT_END, event.getEnd()); + if (event.getSessionId() != null) { + log.addTaggedData(SESSION_ID, event.getSessionId().flattenToString()); + } mMetricsLogger.write(log); debugLog(log); } diff --git a/core/java/android/view/textclassifier/SystemTextClassifier.java b/core/java/android/view/textclassifier/SystemTextClassifier.java index da86b559c5dbc..10191e0edbf7b 100644 --- a/core/java/android/view/textclassifier/SystemTextClassifier.java +++ b/core/java/android/view/textclassifier/SystemTextClassifier.java @@ -129,6 +129,18 @@ public final class SystemTextClassifier implements TextClassifier { return mFallback.generateLinks(request); } + @Override + public void onSelectionEvent(SelectionEvent event) { + Preconditions.checkNotNull(event); + Utils.checkMainThread(); + + try { + mManagerService.onSelectionEvent(mSessionId, event); + } catch (RemoteException e) { + Log.e(LOG_TAG, "Error reporting selection event.", e); + } + } + /** * @inheritDoc */