Loading core/api/current.txt +36 −2 Original line number Original line Diff line number Diff line Loading @@ -52523,9 +52523,43 @@ package android.view.textservice { package android.view.translation { package android.view.translation { public final class TranslationCapability implements android.os.Parcelable { method public int describeContents(); method @NonNull public android.view.translation.TranslationSpec getSourceSpec(); method public int getState(); method public int getSupportedTranslationFlags(); method @NonNull public android.view.translation.TranslationSpec getTargetSpec(); method public boolean isUiTranslationEnabled(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.view.translation.TranslationCapability> CREATOR; field public static final int STATE_AVAILABLE_TO_DOWNLOAD = 1; // 0x1 field public static final int STATE_DOWNLOADING = 2; // 0x2 field public static final int STATE_ON_DEVICE = 3; // 0x3 } public final class TranslationContext implements android.os.Parcelable { method public int describeContents(); method @NonNull public android.view.translation.TranslationSpec getSourceSpec(); method @NonNull public android.view.translation.TranslationSpec getTargetSpec(); method public int getTranslationFlags(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.view.translation.TranslationContext> CREATOR; field public static final int FLAG_DICTIONARY_DESCRIPTION = 4; // 0x4 field public static final int FLAG_LOW_LATENCY = 1; // 0x1 field public static final int FLAG_TRANSLITERATION = 2; // 0x2 } public static final class TranslationContext.Builder { ctor public TranslationContext.Builder(@NonNull android.view.translation.TranslationSpec, @NonNull android.view.translation.TranslationSpec); method @NonNull public android.view.translation.TranslationContext build(); method @NonNull public android.view.translation.TranslationContext.Builder setTranslationFlags(int); } public final class TranslationManager { public final class TranslationManager { method @Nullable @WorkerThread public android.view.translation.Translator createTranslator(@NonNull android.view.translation.TranslationSpec, @NonNull android.view.translation.TranslationSpec); method public void addTranslationCapabilityUpdateListener(int, int, @NonNull android.app.PendingIntent); method @NonNull @WorkerThread public java.util.List<java.lang.String> getSupportedLocales(); method @Nullable @WorkerThread public android.view.translation.Translator createTranslator(@NonNull android.view.translation.TranslationContext); method @NonNull @WorkerThread public java.util.Set<android.view.translation.TranslationCapability> getTranslationCapabilities(int, int); method public void removeTranslationCapabilityUpdateListener(int, int, @NonNull android.app.PendingIntent); } } public final class TranslationRequest implements android.os.Parcelable { public final class TranslationRequest implements android.os.Parcelable { core/api/system-current.txt +6 −1 Original line number Original line Diff line number Diff line Loading @@ -10260,9 +10260,10 @@ package android.service.translation { ctor public TranslationService(); ctor public TranslationService(); method @Nullable public final android.os.IBinder onBind(@NonNull android.content.Intent); method @Nullable public final android.os.IBinder onBind(@NonNull android.content.Intent); method public void onConnected(); method public void onConnected(); method public abstract void onCreateTranslationSession(@NonNull android.view.translation.TranslationSpec, @NonNull android.view.translation.TranslationSpec, int); method public abstract void onCreateTranslationSession(@NonNull android.view.translation.TranslationContext, int); method public void onDisconnected(); method public void onDisconnected(); method public abstract void onFinishTranslationSession(int); 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, @NonNull 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_INTERFACE = "android.service.translation.TranslationService"; field public static final String SERVICE_META_DATA = "android.translation_service"; field public static final String SERVICE_META_DATA = "android.translation_service"; Loading Loading @@ -14267,6 +14268,10 @@ package android.view.displayhash { package android.view.translation { package android.view.translation { public final class TranslationCapability implements android.os.Parcelable { ctor public TranslationCapability(int, @NonNull android.view.translation.TranslationSpec, @NonNull android.view.translation.TranslationSpec, boolean, int); } public final class UiTranslationManager { public final class UiTranslationManager { method @RequiresPermission(android.Manifest.permission.MANAGE_UI_TRANSLATION) public void finishTranslation(int); method @RequiresPermission(android.Manifest.permission.MANAGE_UI_TRANSLATION) public void finishTranslation(int); method @RequiresPermission(android.Manifest.permission.MANAGE_UI_TRANSLATION) public void finishTranslation(@NonNull android.app.assist.ActivityId); method @RequiresPermission(android.Manifest.permission.MANAGE_UI_TRANSLATION) public void finishTranslation(@NonNull android.app.assist.ActivityId); core/java/android/service/translation/ITranslationService.aidl +7 −3 Original line number Original line Diff line number Diff line Loading @@ -16,7 +16,8 @@ package android.service.translation; package android.service.translation; import android.view.translation.TranslationSpec; import android.os.ResultReceiver; import android.view.translation.TranslationContext; import com.android.internal.os.IResultReceiver; import com.android.internal.os.IResultReceiver; /** /** Loading @@ -31,6 +32,9 @@ import com.android.internal.os.IResultReceiver; oneway interface ITranslationService { oneway interface ITranslationService { void onConnected(); void onConnected(); void onDisconnected(); void onDisconnected(); void onCreateTranslationSession(in TranslationSpec sourceSpec, in TranslationSpec destSpec, void onCreateTranslationSession(in TranslationContext translationContext, int sessionId, int sessionId, in IResultReceiver receiver); in IResultReceiver receiver); void onTranslationCapabilitiesRequest(int sourceFormat, int targetFormat, in ResultReceiver receiver); } } core/java/android/service/translation/TranslationService.java +59 −10 Original line number Original line Diff line number Diff line Loading @@ -34,8 +34,12 @@ import android.os.Handler; import android.os.IBinder; import android.os.IBinder; import android.os.Looper; import android.os.Looper; import android.os.RemoteException; import android.os.RemoteException; import android.os.ResultReceiver; import android.util.ArraySet; import android.util.Log; import android.util.Log; import android.view.translation.ITranslationDirectManager; import android.view.translation.ITranslationDirectManager; import android.view.translation.TranslationCapability; import android.view.translation.TranslationContext; import android.view.translation.TranslationManager; import android.view.translation.TranslationManager; import android.view.translation.TranslationRequest; import android.view.translation.TranslationRequest; import android.view.translation.TranslationResponse; import android.view.translation.TranslationResponse; Loading @@ -43,6 +47,9 @@ import android.view.translation.TranslationSpec; import com.android.internal.os.IResultReceiver; import com.android.internal.os.IResultReceiver; import java.util.Set; import java.util.function.Consumer; /** /** * Service for translating text. * Service for translating text. * @hide * @hide Loading Loading @@ -92,10 +99,20 @@ public abstract class TranslationService extends Service { } } @Override @Override public void onCreateTranslationSession(TranslationSpec sourceSpec, TranslationSpec destSpec, public void onCreateTranslationSession(TranslationContext translationContext, int sessionId, IResultReceiver receiver) throws RemoteException { int sessionId, IResultReceiver receiver) throws RemoteException { mHandler.sendMessage(obtainMessage(TranslationService::handleOnCreateTranslationSession, mHandler.sendMessage(obtainMessage(TranslationService::handleOnCreateTranslationSession, TranslationService.this, sourceSpec, destSpec, sessionId, receiver)); TranslationService.this, translationContext, sessionId, receiver)); } @Override public void onTranslationCapabilitiesRequest(@TranslationSpec.DataFormat int sourceFormat, @TranslationSpec.DataFormat int targetFormat, @NonNull ResultReceiver resultReceiver) throws RemoteException { mHandler.sendMessage( obtainMessage(TranslationService::handleOnTranslationCapabilitiesRequest, TranslationService.this, sourceFormat, targetFormat, resultReceiver)); } } }; }; Loading Loading @@ -194,14 +211,13 @@ public abstract class TranslationService extends Service { /** /** * TODO: fill in javadoc. * TODO: fill in javadoc. * * * @param sourceSpec * @param translationContext * @param destSpec * @param sessionId * @param sessionId */ */ // TODO(b/176464808): the session id won't be unique cross client/server process. Need to find // TODO(b/176464808): the session id won't be unique cross client/server process. Need to find // solution to make it's safe. // solution to make it's safe. public abstract void onCreateTranslationSession(@NonNull TranslationSpec sourceSpec, public abstract void onCreateTranslationSession(@NonNull TranslationContext translationContext, @NonNull TranslationSpec destSpec, int sessionId); int sessionId); /** /** * TODO: fill in javadoc. * TODO: fill in javadoc. Loading @@ -222,12 +238,27 @@ public abstract class TranslationService extends Service { @NonNull CancellationSignal cancellationSignal, @NonNull CancellationSignal cancellationSignal, @NonNull OnTranslationResultCallback callback); @NonNull OnTranslationResultCallback callback); /** * TODO: fill in javadoc * TODO: make this abstract again once aiai is ready. * * <p>Must call {@code callback.accept} to pass back the set of translation capabilities.</p> * * @param sourceFormat * @param targetFormat * @param callback */ public abstract void onTranslationCapabilitiesRequest( @TranslationSpec.DataFormat int sourceFormat, @TranslationSpec.DataFormat int targetFormat, @NonNull Consumer<Set<TranslationCapability>> callback); // TODO(b/176464808): Need to handle client dying case // TODO(b/176464808): Need to handle client dying case // TODO(b/176464808): Need to handle the failure case. e.g. if the specs does not support // TODO(b/176464808): Need to handle the failure case. e.g. if the context is not supported. private void handleOnCreateTranslationSession(@NonNull TranslationSpec sourceSpec, private void handleOnCreateTranslationSession(@NonNull TranslationContext translationContext, @NonNull TranslationSpec destSpec, int sessionId, IResultReceiver resultReceiver) { int sessionId, IResultReceiver resultReceiver) { try { try { final Bundle extras = new Bundle(); final Bundle extras = new Bundle(); extras.putBinder(EXTRA_SERVICE_BINDER, mClientInterface.asBinder()); extras.putBinder(EXTRA_SERVICE_BINDER, mClientInterface.asBinder()); Loading @@ -236,6 +267,24 @@ public abstract class TranslationService extends Service { } catch (RemoteException e) { } catch (RemoteException e) { Log.w(TAG, "RemoteException sending client interface: " + e); Log.w(TAG, "RemoteException sending client interface: " + e); } } onCreateTranslationSession(sourceSpec, destSpec, sessionId); onCreateTranslationSession(translationContext, sessionId); } private void handleOnTranslationCapabilitiesRequest( @TranslationSpec.DataFormat int sourceFormat, @TranslationSpec.DataFormat int targetFormat, @NonNull ResultReceiver resultReceiver) { onTranslationCapabilitiesRequest(sourceFormat, targetFormat, new Consumer<Set<TranslationCapability>>() { @Override public void accept(Set<TranslationCapability> values) { final ArraySet<TranslationCapability> capabilities = new ArraySet<>(values); final Bundle bundle = new Bundle(); bundle.putParcelableArray(TranslationManager.EXTRA_CAPABILITIES, capabilities.toArray(new TranslationCapability[0])); resultReceiver.send(TranslationManager.STATUS_SYNC_CALL_SUCCESS, bundle); } }); } } } } core/java/android/view/translation/ITranslationManager.aidl +7 −5 Original line number Original line Diff line number Diff line Loading @@ -18,7 +18,9 @@ package android.view.translation; import android.os.IBinder; import android.os.IBinder; import android.os.IRemoteCallback; import android.os.IRemoteCallback; import android.os.ResultReceiver; import android.view.autofill.AutofillId; import android.view.autofill.AutofillId; import android.view.translation.TranslationContext; import android.view.translation.TranslationSpec; import android.view.translation.TranslationSpec; import com.android.internal.os.IResultReceiver; import com.android.internal.os.IResultReceiver; Loading @@ -30,17 +32,17 @@ import java.util.List; * {@hide} * {@hide} */ */ oneway interface ITranslationManager { oneway interface ITranslationManager { void getSupportedLocales(in IResultReceiver receiver, int userId); void onTranslationCapabilitiesRequest(int sourceFormat, int destFormat, void onSessionCreated(in TranslationSpec sourceSpec, in TranslationSpec destSpec, in ResultReceiver receiver, int userId); void onSessionCreated(in TranslationContext translationContext, int sessionId, in IResultReceiver receiver, int userId); int sessionId, in IResultReceiver receiver, int userId); void updateUiTranslationState(int state, in TranslationSpec sourceSpec, void updateUiTranslationState(int state, in TranslationSpec sourceSpec, in TranslationSpec destSpec, in List<AutofillId> viewIds, IBinder token, int taskId, in TranslationSpec targetSpec, in List<AutofillId> viewIds, IBinder token, int taskId, int userId); int userId); // deprecated // deprecated void updateUiTranslationStateByTaskId(int state, in TranslationSpec sourceSpec, void updateUiTranslationStateByTaskId(int state, in TranslationSpec sourceSpec, in TranslationSpec destSpec, in List<AutofillId> viewIds, int taskId, in TranslationSpec targetSpec, in List<AutofillId> viewIds, int taskId, int userId); int userId); void registerUiTranslationStateCallback(in IRemoteCallback callback, int userId); void registerUiTranslationStateCallback(in IRemoteCallback callback, int userId); void unregisterUiTranslationStateCallback(in IRemoteCallback callback, int userId); void unregisterUiTranslationStateCallback(in IRemoteCallback callback, int userId); Loading Loading
core/api/current.txt +36 −2 Original line number Original line Diff line number Diff line Loading @@ -52523,9 +52523,43 @@ package android.view.textservice { package android.view.translation { package android.view.translation { public final class TranslationCapability implements android.os.Parcelable { method public int describeContents(); method @NonNull public android.view.translation.TranslationSpec getSourceSpec(); method public int getState(); method public int getSupportedTranslationFlags(); method @NonNull public android.view.translation.TranslationSpec getTargetSpec(); method public boolean isUiTranslationEnabled(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.view.translation.TranslationCapability> CREATOR; field public static final int STATE_AVAILABLE_TO_DOWNLOAD = 1; // 0x1 field public static final int STATE_DOWNLOADING = 2; // 0x2 field public static final int STATE_ON_DEVICE = 3; // 0x3 } public final class TranslationContext implements android.os.Parcelable { method public int describeContents(); method @NonNull public android.view.translation.TranslationSpec getSourceSpec(); method @NonNull public android.view.translation.TranslationSpec getTargetSpec(); method public int getTranslationFlags(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.view.translation.TranslationContext> CREATOR; field public static final int FLAG_DICTIONARY_DESCRIPTION = 4; // 0x4 field public static final int FLAG_LOW_LATENCY = 1; // 0x1 field public static final int FLAG_TRANSLITERATION = 2; // 0x2 } public static final class TranslationContext.Builder { ctor public TranslationContext.Builder(@NonNull android.view.translation.TranslationSpec, @NonNull android.view.translation.TranslationSpec); method @NonNull public android.view.translation.TranslationContext build(); method @NonNull public android.view.translation.TranslationContext.Builder setTranslationFlags(int); } public final class TranslationManager { public final class TranslationManager { method @Nullable @WorkerThread public android.view.translation.Translator createTranslator(@NonNull android.view.translation.TranslationSpec, @NonNull android.view.translation.TranslationSpec); method public void addTranslationCapabilityUpdateListener(int, int, @NonNull android.app.PendingIntent); method @NonNull @WorkerThread public java.util.List<java.lang.String> getSupportedLocales(); method @Nullable @WorkerThread public android.view.translation.Translator createTranslator(@NonNull android.view.translation.TranslationContext); method @NonNull @WorkerThread public java.util.Set<android.view.translation.TranslationCapability> getTranslationCapabilities(int, int); method public void removeTranslationCapabilityUpdateListener(int, int, @NonNull android.app.PendingIntent); } } public final class TranslationRequest implements android.os.Parcelable { public final class TranslationRequest implements android.os.Parcelable {
core/api/system-current.txt +6 −1 Original line number Original line Diff line number Diff line Loading @@ -10260,9 +10260,10 @@ package android.service.translation { ctor public TranslationService(); ctor public TranslationService(); method @Nullable public final android.os.IBinder onBind(@NonNull android.content.Intent); method @Nullable public final android.os.IBinder onBind(@NonNull android.content.Intent); method public void onConnected(); method public void onConnected(); method public abstract void onCreateTranslationSession(@NonNull android.view.translation.TranslationSpec, @NonNull android.view.translation.TranslationSpec, int); method public abstract void onCreateTranslationSession(@NonNull android.view.translation.TranslationContext, int); method public void onDisconnected(); method public void onDisconnected(); method public abstract void onFinishTranslationSession(int); 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, @NonNull 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_INTERFACE = "android.service.translation.TranslationService"; field public static final String SERVICE_META_DATA = "android.translation_service"; field public static final String SERVICE_META_DATA = "android.translation_service"; Loading Loading @@ -14267,6 +14268,10 @@ package android.view.displayhash { package android.view.translation { package android.view.translation { public final class TranslationCapability implements android.os.Parcelable { ctor public TranslationCapability(int, @NonNull android.view.translation.TranslationSpec, @NonNull android.view.translation.TranslationSpec, boolean, int); } public final class UiTranslationManager { public final class UiTranslationManager { method @RequiresPermission(android.Manifest.permission.MANAGE_UI_TRANSLATION) public void finishTranslation(int); method @RequiresPermission(android.Manifest.permission.MANAGE_UI_TRANSLATION) public void finishTranslation(int); method @RequiresPermission(android.Manifest.permission.MANAGE_UI_TRANSLATION) public void finishTranslation(@NonNull android.app.assist.ActivityId); method @RequiresPermission(android.Manifest.permission.MANAGE_UI_TRANSLATION) public void finishTranslation(@NonNull android.app.assist.ActivityId);
core/java/android/service/translation/ITranslationService.aidl +7 −3 Original line number Original line Diff line number Diff line Loading @@ -16,7 +16,8 @@ package android.service.translation; package android.service.translation; import android.view.translation.TranslationSpec; import android.os.ResultReceiver; import android.view.translation.TranslationContext; import com.android.internal.os.IResultReceiver; import com.android.internal.os.IResultReceiver; /** /** Loading @@ -31,6 +32,9 @@ import com.android.internal.os.IResultReceiver; oneway interface ITranslationService { oneway interface ITranslationService { void onConnected(); void onConnected(); void onDisconnected(); void onDisconnected(); void onCreateTranslationSession(in TranslationSpec sourceSpec, in TranslationSpec destSpec, void onCreateTranslationSession(in TranslationContext translationContext, int sessionId, int sessionId, in IResultReceiver receiver); in IResultReceiver receiver); void onTranslationCapabilitiesRequest(int sourceFormat, int targetFormat, in ResultReceiver receiver); } }
core/java/android/service/translation/TranslationService.java +59 −10 Original line number Original line Diff line number Diff line Loading @@ -34,8 +34,12 @@ import android.os.Handler; import android.os.IBinder; import android.os.IBinder; import android.os.Looper; import android.os.Looper; import android.os.RemoteException; import android.os.RemoteException; import android.os.ResultReceiver; import android.util.ArraySet; import android.util.Log; import android.util.Log; import android.view.translation.ITranslationDirectManager; import android.view.translation.ITranslationDirectManager; import android.view.translation.TranslationCapability; import android.view.translation.TranslationContext; import android.view.translation.TranslationManager; import android.view.translation.TranslationManager; import android.view.translation.TranslationRequest; import android.view.translation.TranslationRequest; import android.view.translation.TranslationResponse; import android.view.translation.TranslationResponse; Loading @@ -43,6 +47,9 @@ import android.view.translation.TranslationSpec; import com.android.internal.os.IResultReceiver; import com.android.internal.os.IResultReceiver; import java.util.Set; import java.util.function.Consumer; /** /** * Service for translating text. * Service for translating text. * @hide * @hide Loading Loading @@ -92,10 +99,20 @@ public abstract class TranslationService extends Service { } } @Override @Override public void onCreateTranslationSession(TranslationSpec sourceSpec, TranslationSpec destSpec, public void onCreateTranslationSession(TranslationContext translationContext, int sessionId, IResultReceiver receiver) throws RemoteException { int sessionId, IResultReceiver receiver) throws RemoteException { mHandler.sendMessage(obtainMessage(TranslationService::handleOnCreateTranslationSession, mHandler.sendMessage(obtainMessage(TranslationService::handleOnCreateTranslationSession, TranslationService.this, sourceSpec, destSpec, sessionId, receiver)); TranslationService.this, translationContext, sessionId, receiver)); } @Override public void onTranslationCapabilitiesRequest(@TranslationSpec.DataFormat int sourceFormat, @TranslationSpec.DataFormat int targetFormat, @NonNull ResultReceiver resultReceiver) throws RemoteException { mHandler.sendMessage( obtainMessage(TranslationService::handleOnTranslationCapabilitiesRequest, TranslationService.this, sourceFormat, targetFormat, resultReceiver)); } } }; }; Loading Loading @@ -194,14 +211,13 @@ public abstract class TranslationService extends Service { /** /** * TODO: fill in javadoc. * TODO: fill in javadoc. * * * @param sourceSpec * @param translationContext * @param destSpec * @param sessionId * @param sessionId */ */ // TODO(b/176464808): the session id won't be unique cross client/server process. Need to find // TODO(b/176464808): the session id won't be unique cross client/server process. Need to find // solution to make it's safe. // solution to make it's safe. public abstract void onCreateTranslationSession(@NonNull TranslationSpec sourceSpec, public abstract void onCreateTranslationSession(@NonNull TranslationContext translationContext, @NonNull TranslationSpec destSpec, int sessionId); int sessionId); /** /** * TODO: fill in javadoc. * TODO: fill in javadoc. Loading @@ -222,12 +238,27 @@ public abstract class TranslationService extends Service { @NonNull CancellationSignal cancellationSignal, @NonNull CancellationSignal cancellationSignal, @NonNull OnTranslationResultCallback callback); @NonNull OnTranslationResultCallback callback); /** * TODO: fill in javadoc * TODO: make this abstract again once aiai is ready. * * <p>Must call {@code callback.accept} to pass back the set of translation capabilities.</p> * * @param sourceFormat * @param targetFormat * @param callback */ public abstract void onTranslationCapabilitiesRequest( @TranslationSpec.DataFormat int sourceFormat, @TranslationSpec.DataFormat int targetFormat, @NonNull Consumer<Set<TranslationCapability>> callback); // TODO(b/176464808): Need to handle client dying case // TODO(b/176464808): Need to handle client dying case // TODO(b/176464808): Need to handle the failure case. e.g. if the specs does not support // TODO(b/176464808): Need to handle the failure case. e.g. if the context is not supported. private void handleOnCreateTranslationSession(@NonNull TranslationSpec sourceSpec, private void handleOnCreateTranslationSession(@NonNull TranslationContext translationContext, @NonNull TranslationSpec destSpec, int sessionId, IResultReceiver resultReceiver) { int sessionId, IResultReceiver resultReceiver) { try { try { final Bundle extras = new Bundle(); final Bundle extras = new Bundle(); extras.putBinder(EXTRA_SERVICE_BINDER, mClientInterface.asBinder()); extras.putBinder(EXTRA_SERVICE_BINDER, mClientInterface.asBinder()); Loading @@ -236,6 +267,24 @@ public abstract class TranslationService extends Service { } catch (RemoteException e) { } catch (RemoteException e) { Log.w(TAG, "RemoteException sending client interface: " + e); Log.w(TAG, "RemoteException sending client interface: " + e); } } onCreateTranslationSession(sourceSpec, destSpec, sessionId); onCreateTranslationSession(translationContext, sessionId); } private void handleOnTranslationCapabilitiesRequest( @TranslationSpec.DataFormat int sourceFormat, @TranslationSpec.DataFormat int targetFormat, @NonNull ResultReceiver resultReceiver) { onTranslationCapabilitiesRequest(sourceFormat, targetFormat, new Consumer<Set<TranslationCapability>>() { @Override public void accept(Set<TranslationCapability> values) { final ArraySet<TranslationCapability> capabilities = new ArraySet<>(values); final Bundle bundle = new Bundle(); bundle.putParcelableArray(TranslationManager.EXTRA_CAPABILITIES, capabilities.toArray(new TranslationCapability[0])); resultReceiver.send(TranslationManager.STATUS_SYNC_CALL_SUCCESS, bundle); } }); } } } }
core/java/android/view/translation/ITranslationManager.aidl +7 −5 Original line number Original line Diff line number Diff line Loading @@ -18,7 +18,9 @@ package android.view.translation; import android.os.IBinder; import android.os.IBinder; import android.os.IRemoteCallback; import android.os.IRemoteCallback; import android.os.ResultReceiver; import android.view.autofill.AutofillId; import android.view.autofill.AutofillId; import android.view.translation.TranslationContext; import android.view.translation.TranslationSpec; import android.view.translation.TranslationSpec; import com.android.internal.os.IResultReceiver; import com.android.internal.os.IResultReceiver; Loading @@ -30,17 +32,17 @@ import java.util.List; * {@hide} * {@hide} */ */ oneway interface ITranslationManager { oneway interface ITranslationManager { void getSupportedLocales(in IResultReceiver receiver, int userId); void onTranslationCapabilitiesRequest(int sourceFormat, int destFormat, void onSessionCreated(in TranslationSpec sourceSpec, in TranslationSpec destSpec, in ResultReceiver receiver, int userId); void onSessionCreated(in TranslationContext translationContext, int sessionId, in IResultReceiver receiver, int userId); int sessionId, in IResultReceiver receiver, int userId); void updateUiTranslationState(int state, in TranslationSpec sourceSpec, void updateUiTranslationState(int state, in TranslationSpec sourceSpec, in TranslationSpec destSpec, in List<AutofillId> viewIds, IBinder token, int taskId, in TranslationSpec targetSpec, in List<AutofillId> viewIds, IBinder token, int taskId, int userId); int userId); // deprecated // deprecated void updateUiTranslationStateByTaskId(int state, in TranslationSpec sourceSpec, void updateUiTranslationStateByTaskId(int state, in TranslationSpec sourceSpec, in TranslationSpec destSpec, in List<AutofillId> viewIds, int taskId, in TranslationSpec targetSpec, in List<AutofillId> viewIds, int taskId, int userId); int userId); void registerUiTranslationStateCallback(in IRemoteCallback callback, int userId); void registerUiTranslationStateCallback(in IRemoteCallback callback, int userId); void unregisterUiTranslationStateCallback(in IRemoteCallback callback, int userId); void unregisterUiTranslationStateCallback(in IRemoteCallback callback, int userId); Loading