summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2021-05-13 18:51:17 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2021-05-13 18:51:17 +0000
commita3c4e2ecc13f9016ec78ae0f39070aa303166526 (patch)
tree84066398c2315d921f81ce7292b8895da9e63430 /core/java/android
parentb941e181a32530b2d61b0f3e960c28e3d3379904 (diff)
parentbddf9536c7495cd8641f9029eb131370324187ae (diff)
Merge "Remove onTranslationResultCallback and use a Consumer instead." into sc-dev
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/service/translation/OnTranslationResultCallbackWrapper.java17
-rw-r--r--core/java/android/service/translation/TranslationService.java51
2 files changed, 49 insertions, 19 deletions
diff --git a/core/java/android/service/translation/OnTranslationResultCallbackWrapper.java b/core/java/android/service/translation/OnTranslationResultCallbackWrapper.java
index f5851551d5c4..4f881b836cb3 100644
--- a/core/java/android/service/translation/OnTranslationResultCallbackWrapper.java
+++ b/core/java/android/service/translation/OnTranslationResultCallbackWrapper.java
@@ -17,7 +17,6 @@
package android.service.translation;
import android.annotation.NonNull;
-import android.annotation.Nullable;
import android.os.DeadObjectException;
import android.os.RemoteException;
import android.util.Log;
@@ -25,6 +24,7 @@ import android.view.translation.TranslationResponse;
import java.util.Objects;
import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.function.Consumer;
/**
* Callback to receive the {@link TranslationResponse} on successful translation.
@@ -32,13 +32,13 @@ import java.util.concurrent.atomic.AtomicBoolean;
* @hide
*/
final class OnTranslationResultCallbackWrapper implements
- TranslationService.OnTranslationResultCallback {
+ Consumer<TranslationResponse> {
private static final String TAG = "OnTranslationResultCallback";
private final @NonNull ITranslationCallback mCallback;
- private AtomicBoolean mCalled;
+ private final AtomicBoolean mCalled;
/**
* @hide
@@ -49,7 +49,7 @@ final class OnTranslationResultCallbackWrapper implements
}
@Override
- public void onTranslationSuccess(@Nullable TranslationResponse response) {
+ public void accept(TranslationResponse response) {
assertNotCalled();
if (mCalled.getAndSet(response.isFinalResponse())) {
throw new IllegalStateException("Already called with complete response");
@@ -66,15 +66,6 @@ final class OnTranslationResultCallbackWrapper implements
}
}
- /**
- * @deprecated use {@link #onTranslationSuccess} with error response instead.
- */
- @Override
- @Deprecated
- public void onError() {
- // no-op.
- }
-
private void assertNotCalled() {
if (mCalled.get()) {
throw new IllegalStateException("Already called");
diff --git a/core/java/android/service/translation/TranslationService.java b/core/java/android/service/translation/TranslationService.java
index e7234ccc5dd2..24ebe454f728 100644
--- a/core/java/android/service/translation/TranslationService.java
+++ b/core/java/android/service/translation/TranslationService.java
@@ -125,7 +125,9 @@ public abstract class TranslationService extends Service {
/**
* Interface definition for a callback to be invoked when the translation is compleled.
+ * @deprecated use a {@link Consumer} instead.
*/
+ @Deprecated
public interface OnTranslationResultCallback {
/**
* Notifies the Android System that a translation request
@@ -162,12 +164,12 @@ public abstract class TranslationService extends Service {
public void onTranslationRequest(TranslationRequest request, int sessionId,
ICancellationSignal transport, ITranslationCallback callback)
throws RemoteException {
- final OnTranslationResultCallback translationResultCallback =
+ final Consumer<TranslationResponse> consumer =
new OnTranslationResultCallbackWrapper(callback);
mHandler.sendMessage(obtainMessage(TranslationService::onTranslationRequest,
TranslationService.this, request, sessionId,
CancellationSignal.fromTransport(transport),
- translationResultCallback));
+ consumer));
}
@Override
@@ -242,8 +244,10 @@ public abstract class TranslationService extends Service {
* instead.
*/
@Deprecated
- public abstract void onCreateTranslationSession(@NonNull TranslationContext translationContext,
- int sessionId);
+ public void onCreateTranslationSession(@NonNull TranslationContext translationContext,
+ int sessionId) {
+ // no-op
+ }
/**
* TODO: fill in javadoc.
@@ -259,10 +263,45 @@ public abstract class TranslationService extends Service {
* @param sessionId
* @param callback
* @param cancellationSignal
+ * @deprecated use
+ * {@link #onTranslationRequest(TranslationRequest, int, CancellationSignal, Consumer)} instead.
+ */
+ @Deprecated
+ public void onTranslationRequest(@NonNull TranslationRequest request, int sessionId,
+ @Nullable CancellationSignal cancellationSignal,
+ @NonNull OnTranslationResultCallback callback) {
+ // no-op
+ }
+
+ /**
+ * Called to the service with a {@link TranslationRequest} to be translated.
+ *
+ * <p>The service must call {@code callback.accept()} with the {@link TranslationResponse}. If
+ * {@link TranslationRequest#FLAG_PARTIAL_RESPONSES} was set, the service may call
+ * {@code callback.accept()} multiple times with partial responses.</p>
+ *
+ * @param request
+ * @param sessionId
+ * @param callback
+ * @param cancellationSignal
*/
- public abstract void onTranslationRequest(@NonNull TranslationRequest request, int sessionId,
+ //TODO: make abstract once aiai transitions.
+ public void onTranslationRequest(@NonNull TranslationRequest request, int sessionId,
@Nullable CancellationSignal cancellationSignal,
- @NonNull OnTranslationResultCallback callback);
+ @NonNull Consumer<TranslationResponse> callback) {
+ onTranslationRequest(request, sessionId, cancellationSignal,
+ new OnTranslationResultCallback() {
+ @Override
+ public void onTranslationSuccess(@NonNull TranslationResponse response) {
+ callback.accept(response);
+ }
+
+ @Override
+ public void onError() {
+ // null-op
+ }
+ });
+ }
/**
* TODO: fill in javadoc