Loading core/api/system-current.txt +5 −4 Original line number Diff line number Diff line Loading @@ -10405,19 +10405,20 @@ package android.service.translation { method @Nullable public final android.os.IBinder onBind(@NonNull android.content.Intent); method public void onConnected(); method public void onCreateTranslationSession(@NonNull android.view.translation.TranslationContext, int, @NonNull java.util.function.Consumer<java.lang.Boolean>); method @Deprecated public abstract void onCreateTranslationSession(@NonNull android.view.translation.TranslationContext, int); method @Deprecated public void onCreateTranslationSession(@NonNull android.view.translation.TranslationContext, int); method public void onDisconnected(); method public abstract void onFinishTranslationSession(int); method public abstract void onTranslationCapabilitiesRequest(int, int, @NonNull java.util.function.Consumer<java.util.Set<android.view.translation.TranslationCapability>>); method public abstract void onTranslationRequest(@NonNull android.view.translation.TranslationRequest, int, @Nullable android.os.CancellationSignal, @NonNull android.service.translation.TranslationService.OnTranslationResultCallback); method @Deprecated public void onTranslationRequest(@NonNull android.view.translation.TranslationRequest, int, @Nullable android.os.CancellationSignal, @NonNull android.service.translation.TranslationService.OnTranslationResultCallback); method public void onTranslationRequest(@NonNull android.view.translation.TranslationRequest, int, @Nullable android.os.CancellationSignal, @NonNull java.util.function.Consumer<android.view.translation.TranslationResponse>); method public final void updateTranslationCapability(@NonNull android.view.translation.TranslationCapability); field public static final String SERVICE_INTERFACE = "android.service.translation.TranslationService"; field public static final String SERVICE_META_DATA = "android.translation_service"; } public static interface TranslationService.OnTranslationResultCallback { @Deprecated public static interface TranslationService.OnTranslationResultCallback { method @Deprecated public void onError(); method public void onTranslationSuccess(@NonNull android.view.translation.TranslationResponse); method @Deprecated public void onTranslationSuccess(@NonNull android.view.translation.TranslationResponse); } } core/java/android/service/translation/OnTranslationResultCallbackWrapper.java +4 −13 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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. Loading @@ -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 Loading @@ -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"); Loading @@ -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"); Loading core/java/android/service/translation/TranslationService.java +45 −6 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading Loading @@ -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. Loading @@ -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 Loading Loading
core/api/system-current.txt +5 −4 Original line number Diff line number Diff line Loading @@ -10405,19 +10405,20 @@ package android.service.translation { method @Nullable public final android.os.IBinder onBind(@NonNull android.content.Intent); method public void onConnected(); method public void onCreateTranslationSession(@NonNull android.view.translation.TranslationContext, int, @NonNull java.util.function.Consumer<java.lang.Boolean>); method @Deprecated public abstract void onCreateTranslationSession(@NonNull android.view.translation.TranslationContext, int); method @Deprecated public void onCreateTranslationSession(@NonNull android.view.translation.TranslationContext, int); method public void onDisconnected(); method public abstract void onFinishTranslationSession(int); method public abstract void onTranslationCapabilitiesRequest(int, int, @NonNull java.util.function.Consumer<java.util.Set<android.view.translation.TranslationCapability>>); method public abstract void onTranslationRequest(@NonNull android.view.translation.TranslationRequest, int, @Nullable android.os.CancellationSignal, @NonNull android.service.translation.TranslationService.OnTranslationResultCallback); method @Deprecated public void onTranslationRequest(@NonNull android.view.translation.TranslationRequest, int, @Nullable android.os.CancellationSignal, @NonNull android.service.translation.TranslationService.OnTranslationResultCallback); method public void onTranslationRequest(@NonNull android.view.translation.TranslationRequest, int, @Nullable android.os.CancellationSignal, @NonNull java.util.function.Consumer<android.view.translation.TranslationResponse>); method public final void updateTranslationCapability(@NonNull android.view.translation.TranslationCapability); field public static final String SERVICE_INTERFACE = "android.service.translation.TranslationService"; field public static final String SERVICE_META_DATA = "android.translation_service"; } public static interface TranslationService.OnTranslationResultCallback { @Deprecated public static interface TranslationService.OnTranslationResultCallback { method @Deprecated public void onError(); method public void onTranslationSuccess(@NonNull android.view.translation.TranslationResponse); method @Deprecated public void onTranslationSuccess(@NonNull android.view.translation.TranslationResponse); } }
core/java/android/service/translation/OnTranslationResultCallbackWrapper.java +4 −13 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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. Loading @@ -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 Loading @@ -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"); Loading @@ -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"); Loading
core/java/android/service/translation/TranslationService.java +45 −6 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading Loading @@ -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. Loading @@ -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 Loading