summaryrefslogtreecommitdiff
path: root/android/service/textclassifier/TextClassifierService.java
diff options
context:
space:
mode:
Diffstat (limited to 'android/service/textclassifier/TextClassifierService.java')
-rw-r--r--android/service/textclassifier/TextClassifierService.java74
1 files changed, 67 insertions, 7 deletions
diff --git a/android/service/textclassifier/TextClassifierService.java b/android/service/textclassifier/TextClassifierService.java
index f1bb72cf..b461c0da 100644
--- a/android/service/textclassifier/TextClassifierService.java
+++ b/android/service/textclassifier/TextClassifierService.java
@@ -17,6 +17,7 @@
package android.service.textclassifier;
import android.Manifest;
+import android.annotation.IntRange;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
@@ -97,7 +98,8 @@ public abstract class TextClassifierService extends Service {
Preconditions.checkNotNull(request);
Preconditions.checkNotNull(callback);
TextClassifierService.this.onSuggestSelection(
- sessionId, request, mCancellationSignal,
+ request.getText(), request.getStartIndex(), request.getEndIndex(),
+ TextSelection.Options.from(sessionId, request), mCancellationSignal,
new Callback<TextSelection>() {
@Override
public void onSuccess(TextSelection result) {
@@ -130,7 +132,8 @@ public abstract class TextClassifierService extends Service {
Preconditions.checkNotNull(request);
Preconditions.checkNotNull(callback);
TextClassifierService.this.onClassifyText(
- sessionId, request, mCancellationSignal,
+ request.getText(), request.getStartIndex(), request.getEndIndex(),
+ TextClassification.Options.from(sessionId, request), mCancellationSignal,
new Callback<TextClassification>() {
@Override
public void onSuccess(TextClassification result) {
@@ -161,7 +164,8 @@ public abstract class TextClassifierService extends Service {
Preconditions.checkNotNull(request);
Preconditions.checkNotNull(callback);
TextClassifierService.this.onGenerateLinks(
- sessionId, request, mCancellationSignal,
+ request.getText(), TextLinks.Options.from(sessionId, request),
+ mCancellationSignal,
new Callback<TextLinks>() {
@Override
public void onSuccess(TextLinks result) {
@@ -234,6 +238,25 @@ public abstract class TextClassifierService extends Service {
@NonNull CancellationSignal cancellationSignal,
@NonNull Callback<TextSelection> callback);
+ // TODO: Remove once apps can build against the latest sdk.
+ /** @hide */
+ public void onSuggestSelection(
+ @NonNull CharSequence text,
+ @IntRange(from = 0) int selectionStartIndex,
+ @IntRange(from = 0) int selectionEndIndex,
+ @Nullable TextSelection.Options options,
+ @NonNull CancellationSignal cancellationSignal,
+ @NonNull Callback<TextSelection> callback) {
+ final TextClassificationSessionId sessionId = options.getSessionId();
+ final TextSelection.Request request = options.getRequest() != null
+ ? options.getRequest()
+ : new TextSelection.Request.Builder(
+ text, selectionStartIndex, selectionEndIndex)
+ .setDefaultLocales(options.getDefaultLocales())
+ .build();
+ onSuggestSelection(sessionId, request, cancellationSignal, callback);
+ }
+
/**
* Classifies the specified text and returns a {@link TextClassification} object that can be
* used to generate a widget for handling the classified text.
@@ -249,6 +272,26 @@ public abstract class TextClassifierService extends Service {
@NonNull CancellationSignal cancellationSignal,
@NonNull Callback<TextClassification> callback);
+ // TODO: Remove once apps can build against the latest sdk.
+ /** @hide */
+ public void onClassifyText(
+ @NonNull CharSequence text,
+ @IntRange(from = 0) int startIndex,
+ @IntRange(from = 0) int endIndex,
+ @Nullable TextClassification.Options options,
+ @NonNull CancellationSignal cancellationSignal,
+ @NonNull Callback<TextClassification> callback) {
+ final TextClassificationSessionId sessionId = options.getSessionId();
+ final TextClassification.Request request = options.getRequest() != null
+ ? options.getRequest()
+ : new TextClassification.Request.Builder(
+ text, startIndex, endIndex)
+ .setDefaultLocales(options.getDefaultLocales())
+ .setReferenceTime(options.getReferenceTime())
+ .build();
+ onClassifyText(sessionId, request, cancellationSignal, callback);
+ }
+
/**
* Generates and returns a {@link TextLinks} that may be applied to the text to annotate it with
* links information.
@@ -264,6 +307,23 @@ public abstract class TextClassifierService extends Service {
@NonNull CancellationSignal cancellationSignal,
@NonNull Callback<TextLinks> callback);
+ // TODO: Remove once apps can build against the latest sdk.
+ /** @hide */
+ public void onGenerateLinks(
+ @NonNull CharSequence text,
+ @Nullable TextLinks.Options options,
+ @NonNull CancellationSignal cancellationSignal,
+ @NonNull Callback<TextLinks> callback) {
+ final TextClassificationSessionId sessionId = options.getSessionId();
+ final TextLinks.Request request = options.getRequest() != null
+ ? options.getRequest()
+ : new TextLinks.Request.Builder(text)
+ .setDefaultLocales(options.getDefaultLocales())
+ .setEntityConfig(options.getEntityConfig())
+ .build();
+ onGenerateLinks(sessionId, request, cancellationSignal, callback);
+ }
+
/**
* Writes the selection event.
* This is called when a selection event occurs. e.g. user changed selection; or smart selection
@@ -283,17 +343,17 @@ public abstract class TextClassifierService extends Service {
* @param context the text classification context
* @param sessionId the session's Id
*/
- public abstract void onCreateTextClassificationSession(
+ public void onCreateTextClassificationSession(
@NonNull TextClassificationContext context,
- @NonNull TextClassificationSessionId sessionId);
+ @NonNull TextClassificationSessionId sessionId) {}
/**
* Destroys the text classification session identified by the specified sessionId.
*
* @param sessionId the id of the session to destroy
*/
- public abstract void onDestroyTextClassificationSession(
- @NonNull TextClassificationSessionId sessionId);
+ public void onDestroyTextClassificationSession(
+ @NonNull TextClassificationSessionId sessionId) {}
/**
* Returns a TextClassifier that runs in this service's process.