diff options
| author | TreeHugger Robot <treehugger-gerrit@google.com> | 2021-05-13 18:51:17 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2021-05-13 18:51:17 +0000 |
| commit | a3c4e2ecc13f9016ec78ae0f39070aa303166526 (patch) | |
| tree | 84066398c2315d921f81ce7292b8895da9e63430 /core/java/android | |
| parent | b941e181a32530b2d61b0f3e960c28e3d3379904 (diff) | |
| parent | bddf9536c7495cd8641f9029eb131370324187ae (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.java | 17 | ||||
| -rw-r--r-- | core/java/android/service/translation/TranslationService.java | 51 |
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 |
