diff options
| -rw-r--r-- | core/java/android/view/translation/Translator.java | 5 | ||||
| -rw-r--r-- | core/java/android/view/translation/UiTranslationController.java | 16 |
2 files changed, 18 insertions, 3 deletions
diff --git a/core/java/android/view/translation/Translator.java b/core/java/android/view/translation/Translator.java index 6037302a9445..2d36987ed490 100644 --- a/core/java/android/view/translation/Translator.java +++ b/core/java/android/view/translation/Translator.java @@ -214,6 +214,11 @@ public class Translator { } /** @hide */ + public TranslationContext getTranslationContext() { + return mTranslationContext; + } + + /** @hide */ public int getTranslatorId() { return mId; } diff --git a/core/java/android/view/translation/UiTranslationController.java b/core/java/android/view/translation/UiTranslationController.java index 0425572a6f76..bdf217d644e2 100644 --- a/core/java/android/view/translation/UiTranslationController.java +++ b/core/java/android/view/translation/UiTranslationController.java @@ -451,13 +451,14 @@ public class UiTranslationController { int[] supportedFormats = getSupportedFormatsLocked(); ArrayList<ViewRootImpl> roots = WindowManagerGlobal.getInstance().getRootViews(mActivity.getActivityToken()); + TranslationCapability capability = + getTranslationCapability(translator.getTranslationContext()); mActivity.runOnUiThread(() -> { // traverse the hierarchy to collect ViewTranslationRequests for (int rootNum = 0; rootNum < roots.size(); rootNum++) { View rootView = roots.get(rootNum).getView(); - // TODO(b/183589662): call getTranslationCapabilities() for capability - rootView.dispatchRequestTranslation(viewIds, supportedFormats, /* capability */ - null, requests); + rootView.dispatchRequestTranslation(viewIds, supportedFormats, capability, + requests); } mWorkerHandler.sendMessage(PooledLambda.obtainMessage( UiTranslationController::sendTranslationRequest, @@ -487,6 +488,15 @@ public class UiTranslationController { return new int[] {TranslationSpec.DATA_FORMAT_TEXT}; } + private TranslationCapability getTranslationCapability(TranslationContext translationContext) { + // We only support text to text capability now, we will query real status from service when + // we support more translation capabilities. + return new TranslationCapability(TranslationCapability.STATE_ON_DEVICE, + translationContext.getSourceSpec(), + translationContext.getTargetSpec(), /* uiTranslationEnabled= */ true, + /* supportedTranslationFlags= */ 0); + } + private void findViewsTraversalByAutofillIds(IntArray sourceViewIds) { final ArrayList<ViewRootImpl> roots = WindowManagerGlobal.getInstance().getRootViews(mActivity.getActivityToken()); |