Merge "Add callbacks when TextClassifierService connection status change"
This commit is contained in:
@@ -6962,9 +6962,11 @@ package android.service.textclassifier {
|
||||
method @Deprecated public final android.view.textclassifier.TextClassifier getLocalTextClassifier();
|
||||
method @Nullable public final android.os.IBinder onBind(android.content.Intent);
|
||||
method @MainThread public abstract void onClassifyText(@Nullable android.view.textclassifier.TextClassificationSessionId, @NonNull android.view.textclassifier.TextClassification.Request, @NonNull android.os.CancellationSignal, @NonNull android.service.textclassifier.TextClassifierService.Callback<android.view.textclassifier.TextClassification>);
|
||||
method public void onConnected();
|
||||
method @MainThread public void onCreateTextClassificationSession(@NonNull android.view.textclassifier.TextClassificationContext, @NonNull android.view.textclassifier.TextClassificationSessionId);
|
||||
method @MainThread public void onDestroyTextClassificationSession(@NonNull android.view.textclassifier.TextClassificationSessionId);
|
||||
method @MainThread public void onDetectLanguage(@Nullable android.view.textclassifier.TextClassificationSessionId, @NonNull android.view.textclassifier.TextLanguage.Request, @NonNull android.os.CancellationSignal, @NonNull android.service.textclassifier.TextClassifierService.Callback<android.view.textclassifier.TextLanguage>);
|
||||
method public void onDisconnected();
|
||||
method @MainThread public abstract void onGenerateLinks(@Nullable android.view.textclassifier.TextClassificationSessionId, @NonNull android.view.textclassifier.TextLinks.Request, @NonNull android.os.CancellationSignal, @NonNull android.service.textclassifier.TextClassifierService.Callback<android.view.textclassifier.TextLinks>);
|
||||
method @Deprecated @MainThread public void onSelectionEvent(@Nullable android.view.textclassifier.TextClassificationSessionId, @NonNull android.view.textclassifier.SelectionEvent);
|
||||
method @MainThread public void onSuggestConversationActions(@Nullable android.view.textclassifier.TextClassificationSessionId, @NonNull android.view.textclassifier.ConversationActions.Request, @NonNull android.os.CancellationSignal, @NonNull android.service.textclassifier.TextClassifierService.Callback<android.view.textclassifier.ConversationActions>);
|
||||
|
||||
@@ -74,4 +74,6 @@ oneway interface ITextClassifierService {
|
||||
in TextClassificationSessionId sessionId,
|
||||
in ConversationActions.Request request,
|
||||
in ITextClassifierCallback callback);
|
||||
|
||||
void onConnectedStateChanged(int connected);
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package android.service.textclassifier;
|
||||
|
||||
import android.Manifest;
|
||||
import android.annotation.IntDef;
|
||||
import android.annotation.MainThread;
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
@@ -51,6 +52,8 @@ import android.view.textclassifier.TextSelection;
|
||||
|
||||
import com.android.internal.util.Preconditions;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
|
||||
@@ -98,6 +101,18 @@ public abstract class TextClassifierService extends Service {
|
||||
public static final String SERVICE_INTERFACE =
|
||||
"android.service.textclassifier.TextClassifierService";
|
||||
|
||||
/** @hide **/
|
||||
public static final int CONNECTED = 0;
|
||||
/** @hide **/
|
||||
public static final int DISCONNECTED = 1;
|
||||
/** @hide */
|
||||
@IntDef(value = {
|
||||
CONNECTED,
|
||||
DISCONNECTED
|
||||
})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface ConnectionState{}
|
||||
|
||||
/** @hide **/
|
||||
private static final String KEY_RESULT = "key_result";
|
||||
|
||||
@@ -195,6 +210,12 @@ public abstract class TextClassifierService extends Service {
|
||||
mMainThreadHandler.post(
|
||||
() -> TextClassifierService.this.onDestroyTextClassificationSession(sessionId));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConnectedStateChanged(@ConnectionState int connected) {
|
||||
mMainThreadHandler.post(connected == CONNECTED ? TextClassifierService.this::onConnected
|
||||
: TextClassifierService.this::onDisconnected);
|
||||
}
|
||||
};
|
||||
|
||||
@Nullable
|
||||
@@ -206,6 +227,26 @@ public abstract class TextClassifierService extends Service {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onUnbind(@NonNull Intent intent) {
|
||||
onDisconnected();
|
||||
return super.onUnbind(intent);
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when the Android system connects to service.
|
||||
*/
|
||||
public void onConnected() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when the Android system disconnects from the service.
|
||||
*
|
||||
* <p> At this point this service may no longer be an active {@link TextClassifierService}.
|
||||
*/
|
||||
public void onDisconnected() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns suggested text selection start and end indices, recognized entity types, and their
|
||||
* associated confidence scores. The entity types are ordered from highest to lowest scoring.
|
||||
|
||||
@@ -30,6 +30,7 @@ import android.os.UserHandle;
|
||||
import android.service.textclassifier.ITextClassifierCallback;
|
||||
import android.service.textclassifier.ITextClassifierService;
|
||||
import android.service.textclassifier.TextClassifierService;
|
||||
import android.service.textclassifier.TextClassifierService.ConnectionState;
|
||||
import android.util.ArrayMap;
|
||||
import android.util.Slog;
|
||||
import android.util.SparseArray;
|
||||
@@ -129,6 +130,10 @@ public final class TextClassificationManagerService extends ITextClassifierServi
|
||||
mLock = new Object();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConnectedStateChanged(@ConnectionState int connected) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuggestSelection(
|
||||
@Nullable TextClassificationSessionId sessionId,
|
||||
@@ -579,6 +584,11 @@ public final class TextClassificationManagerService extends ITextClassifierServi
|
||||
@Override
|
||||
public void onServiceConnected(ComponentName name, IBinder service) {
|
||||
init(ITextClassifierService.Stub.asInterface(service));
|
||||
try {
|
||||
mService.onConnectedStateChanged(TextClassifierService.CONNECTED);
|
||||
} catch (RemoteException e) {
|
||||
Slog.e(LOG_TAG, "error in onConnectedStateChanged");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user