Loading core/api/current.txt +1 −1 Original line number Diff line number Diff line Loading @@ -52896,7 +52896,7 @@ package android.view.translation { public class Translator { method public void destroy(); method public boolean isDestroyed(); method @Nullable public void translate(@NonNull android.view.translation.TranslationRequest, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.view.translation.TranslationResponse>); method @Nullable public void translate(@NonNull android.view.translation.TranslationRequest, @Nullable android.os.CancellationSignal, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.view.translation.TranslationResponse>); } public final class UiTranslationManager { core/api/system-current.txt +1 −1 Original line number Diff line number Diff line Loading @@ -10322,7 +10322,7 @@ package android.service.translation { 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, @NonNull android.os.CancellationSignal, @NonNull android.service.translation.TranslationService.OnTranslationResultCallback); method public abstract void onTranslationRequest(@NonNull android.view.translation.TranslationRequest, int, @Nullable android.os.CancellationSignal, @NonNull android.service.translation.TranslationService.OnTranslationResultCallback); field public static final String SERVICE_INTERFACE = "android.service.translation.TranslationService"; field public static final String SERVICE_META_DATA = "android.translation_service"; } core/java/android/service/translation/TranslationService.java +5 −7 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.os.Bundle; import android.os.CancellationSignal; import android.os.Handler; import android.os.IBinder; import android.os.ICancellationSignal; import android.os.Looper; import android.os.RemoteException; import android.os.ResultReceiver; Loading Loading @@ -149,18 +150,15 @@ public abstract class TranslationService extends Service { */ private final ITranslationDirectManager mClientInterface = new ITranslationDirectManager.Stub() { // TODO: Implement cancellation signal @NonNull private final CancellationSignal mCancellationSignal = new CancellationSignal(); @Override public void onTranslationRequest(TranslationRequest request, int sessionId, ITranslationCallback callback) ICancellationSignal transport, ITranslationCallback callback) throws RemoteException { final OnTranslationResultCallback translationResultCallback = new OnTranslationResultCallbackWrapper(callback); mHandler.sendMessage(obtainMessage(TranslationService::onTranslationRequest, TranslationService.this, request, sessionId, mCancellationSignal, TranslationService.this, request, sessionId, CancellationSignal.fromTransport(transport), translationResultCallback)); } Loading Loading @@ -235,7 +233,7 @@ public abstract class TranslationService extends Service { * @param cancellationSignal */ public abstract void onTranslationRequest(@NonNull TranslationRequest request, int sessionId, @NonNull CancellationSignal cancellationSignal, @Nullable CancellationSignal cancellationSignal, @NonNull OnTranslationResultCallback callback); /** Loading core/java/android/view/translation/ITranslationDirectManager.aidl +2 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.view.translation; import android.os.ICancellationSignal; import android.view.translation.TranslationRequest; import android.service.translation.ITranslationCallback; Loading @@ -27,6 +28,6 @@ import android.service.translation.ITranslationCallback; */ oneway interface ITranslationDirectManager { void onTranslationRequest(in TranslationRequest request, int sessionId, in ITranslationCallback callback); in ICancellationSignal transport, in ITranslationCallback callback); void onFinishTranslationSession(int sessionId); } core/java/android/view/translation/Translator.java +56 −6 Original line number Diff line number Diff line Loading @@ -26,8 +26,10 @@ import android.annotation.SuppressLint; import android.content.Context; import android.os.Binder; import android.os.Bundle; import android.os.CancellationSignal; import android.os.Handler; import android.os.IBinder; import android.os.ICancellationSignal; import android.os.RemoteException; import android.service.translation.ITranslationCallback; import android.util.Log; Loading Loading @@ -227,13 +229,53 @@ public class Translator { * * @param request {@link TranslationRequest} request to be translate. * * @return {@link TranslationRequest} containing translated request, * or null if translation could not be done. * @throws IllegalStateException if this TextClassification session was destroyed when calls * @throws IllegalStateException if this Translator session was destroyed when called. * * @deprecated use {@link #translate(TranslationRequest, CancellationSignal, * Executor, Consumer)} instead. * @hide */ @Deprecated @Nullable public void translate(@NonNull TranslationRequest request, @NonNull @CallbackExecutor Executor executor, @NonNull Consumer<TranslationResponse> callback) { Objects.requireNonNull(request, "Translation request cannot be null"); Objects.requireNonNull(executor, "Executor cannot be null"); Objects.requireNonNull(callback, "Callback cannot be null"); if (isDestroyed()) { // TODO(b/176464808): Disallow multiple Translator now, it will throw // IllegalStateException. Need to discuss if we can allow multiple Translators. throw new IllegalStateException( "This translator has been destroyed"); } final ITranslationCallback responseCallback = new TranslationResponseCallbackImpl(callback, executor); try { mDirectServiceBinder.onTranslationRequest(request, mId, CancellationSignal.createTransport(), responseCallback); } catch (RemoteException e) { Log.w(TAG, "RemoteException calling requestTranslate(): " + e); } } /** * Requests a translation for the provided {@link TranslationRequest} using the Translator's * source spec and destination spec. * * @param request {@link TranslationRequest} request to be translate. * @param cancellationSignal signal to cancel the operation in progress. * @param executor Executor to run callback operations * @param callback {@link Consumer} to receive the translation response. Multiple responses may * be received if {@link TranslationRequest#FLAG_PARTIAL_RESPONSES} is set. * * @throws IllegalStateException if this Translator session was destroyed when called. */ //TODO: Add cancellation signal @Nullable public void translate(@NonNull TranslationRequest request, @Nullable CancellationSignal cancellationSignal, @NonNull @CallbackExecutor Executor executor, @NonNull Consumer<TranslationResponse> callback) { Objects.requireNonNull(request, "Translation request cannot be null"); Loading @@ -247,10 +289,17 @@ public class Translator { "This translator has been destroyed"); } ICancellationSignal transport = null; if (cancellationSignal != null) { transport = CancellationSignal.createTransport(); cancellationSignal.setRemote(transport); } final ITranslationCallback responseCallback = new TranslationResponseCallbackImpl(callback, executor); try { mDirectServiceBinder.onTranslationRequest(request, mId, responseCallback); mDirectServiceBinder.onTranslationRequest(request, mId, transport, responseCallback); } catch (RemoteException e) { Log.w(TAG, "RemoteException calling requestTranslate(): " + e); } Loading Loading @@ -298,7 +347,8 @@ public class Translator { final ITranslationCallback translationCallback = new TranslationResponseCallbackImpl(callback, executor); try { mDirectServiceBinder.onTranslationRequest(request, mId, translationCallback); mDirectServiceBinder.onTranslationRequest(request, mId, CancellationSignal.createTransport(), translationCallback); } catch (RemoteException e) { Log.w(TAG, "RemoteException calling flushRequest"); } Loading Loading
core/api/current.txt +1 −1 Original line number Diff line number Diff line Loading @@ -52896,7 +52896,7 @@ package android.view.translation { public class Translator { method public void destroy(); method public boolean isDestroyed(); method @Nullable public void translate(@NonNull android.view.translation.TranslationRequest, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.view.translation.TranslationResponse>); method @Nullable public void translate(@NonNull android.view.translation.TranslationRequest, @Nullable android.os.CancellationSignal, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.view.translation.TranslationResponse>); } public final class UiTranslationManager {
core/api/system-current.txt +1 −1 Original line number Diff line number Diff line Loading @@ -10322,7 +10322,7 @@ package android.service.translation { 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, @NonNull android.os.CancellationSignal, @NonNull android.service.translation.TranslationService.OnTranslationResultCallback); method public abstract void onTranslationRequest(@NonNull android.view.translation.TranslationRequest, int, @Nullable android.os.CancellationSignal, @NonNull android.service.translation.TranslationService.OnTranslationResultCallback); field public static final String SERVICE_INTERFACE = "android.service.translation.TranslationService"; field public static final String SERVICE_META_DATA = "android.translation_service"; }
core/java/android/service/translation/TranslationService.java +5 −7 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.os.Bundle; import android.os.CancellationSignal; import android.os.Handler; import android.os.IBinder; import android.os.ICancellationSignal; import android.os.Looper; import android.os.RemoteException; import android.os.ResultReceiver; Loading Loading @@ -149,18 +150,15 @@ public abstract class TranslationService extends Service { */ private final ITranslationDirectManager mClientInterface = new ITranslationDirectManager.Stub() { // TODO: Implement cancellation signal @NonNull private final CancellationSignal mCancellationSignal = new CancellationSignal(); @Override public void onTranslationRequest(TranslationRequest request, int sessionId, ITranslationCallback callback) ICancellationSignal transport, ITranslationCallback callback) throws RemoteException { final OnTranslationResultCallback translationResultCallback = new OnTranslationResultCallbackWrapper(callback); mHandler.sendMessage(obtainMessage(TranslationService::onTranslationRequest, TranslationService.this, request, sessionId, mCancellationSignal, TranslationService.this, request, sessionId, CancellationSignal.fromTransport(transport), translationResultCallback)); } Loading Loading @@ -235,7 +233,7 @@ public abstract class TranslationService extends Service { * @param cancellationSignal */ public abstract void onTranslationRequest(@NonNull TranslationRequest request, int sessionId, @NonNull CancellationSignal cancellationSignal, @Nullable CancellationSignal cancellationSignal, @NonNull OnTranslationResultCallback callback); /** Loading
core/java/android/view/translation/ITranslationDirectManager.aidl +2 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.view.translation; import android.os.ICancellationSignal; import android.view.translation.TranslationRequest; import android.service.translation.ITranslationCallback; Loading @@ -27,6 +28,6 @@ import android.service.translation.ITranslationCallback; */ oneway interface ITranslationDirectManager { void onTranslationRequest(in TranslationRequest request, int sessionId, in ITranslationCallback callback); in ICancellationSignal transport, in ITranslationCallback callback); void onFinishTranslationSession(int sessionId); }
core/java/android/view/translation/Translator.java +56 −6 Original line number Diff line number Diff line Loading @@ -26,8 +26,10 @@ import android.annotation.SuppressLint; import android.content.Context; import android.os.Binder; import android.os.Bundle; import android.os.CancellationSignal; import android.os.Handler; import android.os.IBinder; import android.os.ICancellationSignal; import android.os.RemoteException; import android.service.translation.ITranslationCallback; import android.util.Log; Loading Loading @@ -227,13 +229,53 @@ public class Translator { * * @param request {@link TranslationRequest} request to be translate. * * @return {@link TranslationRequest} containing translated request, * or null if translation could not be done. * @throws IllegalStateException if this TextClassification session was destroyed when calls * @throws IllegalStateException if this Translator session was destroyed when called. * * @deprecated use {@link #translate(TranslationRequest, CancellationSignal, * Executor, Consumer)} instead. * @hide */ @Deprecated @Nullable public void translate(@NonNull TranslationRequest request, @NonNull @CallbackExecutor Executor executor, @NonNull Consumer<TranslationResponse> callback) { Objects.requireNonNull(request, "Translation request cannot be null"); Objects.requireNonNull(executor, "Executor cannot be null"); Objects.requireNonNull(callback, "Callback cannot be null"); if (isDestroyed()) { // TODO(b/176464808): Disallow multiple Translator now, it will throw // IllegalStateException. Need to discuss if we can allow multiple Translators. throw new IllegalStateException( "This translator has been destroyed"); } final ITranslationCallback responseCallback = new TranslationResponseCallbackImpl(callback, executor); try { mDirectServiceBinder.onTranslationRequest(request, mId, CancellationSignal.createTransport(), responseCallback); } catch (RemoteException e) { Log.w(TAG, "RemoteException calling requestTranslate(): " + e); } } /** * Requests a translation for the provided {@link TranslationRequest} using the Translator's * source spec and destination spec. * * @param request {@link TranslationRequest} request to be translate. * @param cancellationSignal signal to cancel the operation in progress. * @param executor Executor to run callback operations * @param callback {@link Consumer} to receive the translation response. Multiple responses may * be received if {@link TranslationRequest#FLAG_PARTIAL_RESPONSES} is set. * * @throws IllegalStateException if this Translator session was destroyed when called. */ //TODO: Add cancellation signal @Nullable public void translate(@NonNull TranslationRequest request, @Nullable CancellationSignal cancellationSignal, @NonNull @CallbackExecutor Executor executor, @NonNull Consumer<TranslationResponse> callback) { Objects.requireNonNull(request, "Translation request cannot be null"); Loading @@ -247,10 +289,17 @@ public class Translator { "This translator has been destroyed"); } ICancellationSignal transport = null; if (cancellationSignal != null) { transport = CancellationSignal.createTransport(); cancellationSignal.setRemote(transport); } final ITranslationCallback responseCallback = new TranslationResponseCallbackImpl(callback, executor); try { mDirectServiceBinder.onTranslationRequest(request, mId, responseCallback); mDirectServiceBinder.onTranslationRequest(request, mId, transport, responseCallback); } catch (RemoteException e) { Log.w(TAG, "RemoteException calling requestTranslate(): " + e); } Loading Loading @@ -298,7 +347,8 @@ public class Translator { final ITranslationCallback translationCallback = new TranslationResponseCallbackImpl(callback, executor); try { mDirectServiceBinder.onTranslationRequest(request, mId, translationCallback); mDirectServiceBinder.onTranslationRequest(request, mId, CancellationSignal.createTransport(), translationCallback); } catch (RemoteException e) { Log.w(TAG, "RemoteException calling flushRequest"); } Loading