From 8960d6667b18a42f63000025d380492c5520874f Mon Sep 17 00:00:00 2001 From: Joanne Chung Date: Mon, 12 Apr 2021 17:57:39 +0800 Subject: [PATCH] Add debug log to help to debug translation problem. There are some issues the resume/finish seems not work well. The debug flag should be enabled manually, but in the most time the user may forget to enable it before testing. Try to enable it in the debug rom to help debugging, we use b/182433547 to trace the disable this check before rom release. Bug: 182433547 Test: manual Change-Id: I2f85a0e17f8a2b8a4b93252044cf48d739b4eca2 --- .../translation/UiTranslationController.java | 20 +++++++++++++++++++ .../widget/TextViewTranslationCallback.java | 6 +++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/core/java/android/view/translation/UiTranslationController.java b/core/java/android/view/translation/UiTranslationController.java index 53e354f8200e4..f7e4abb7e1f6a 100644 --- a/core/java/android/view/translation/UiTranslationController.java +++ b/core/java/android/view/translation/UiTranslationController.java @@ -302,6 +302,11 @@ public class UiTranslationController { } final LongSparseArray virtualChildResponse = translatedResult.valueAt(i); + if (DEBUG) { + // TODO(b/182433547): remove before S release + Log.v(TAG, "onVirtualViewTranslationCompleted: receive " + + virtualChildResponse + " for AutofillId " + autofillId); + } mActivity.runOnUiThread(() -> { if (view.getViewTranslationCallback() == null) { if (DEBUG) { @@ -341,8 +346,13 @@ public class UiTranslationController { } for (int i = 0; i < resultCount; i++) { final ViewTranslationResponse response = translatedResult.valueAt(i); + if (DEBUG) { + // TODO(b/182433547): remove before S release + Log.v(TAG, "onTranslationCompleted: response= " + response); + } final AutofillId autofillId = response.getAutofillId(); if (autofillId == null) { + Log.w(TAG, "No AutofillId is set in ViewTranslationResponse:" + response); continue; } final View view = mViews.get(autofillId).get(); @@ -394,6 +404,9 @@ public class UiTranslationController { final TranslationRequest request = new TranslationRequest.Builder() .setViewTranslationRequests(requests) .build(); + if (DEBUG) { + Log.d(TAG, "sendTranslationRequest: request= " + request); + } translator.requestUiTranslate(request, (r) -> r.run(), this::onTranslationCompleted); } @@ -508,10 +521,17 @@ public class UiTranslationController { private void runForEachView(BiConsumer action) { synchronized (mLock) { final ArrayMap> views = new ArrayMap<>(mViews); + if (views.size() == 0) { + Log.w(TAG, "No views can be excuted for runForEachView."); + } mActivity.runOnUiThread(() -> { final int viewCounts = views.size(); for (int i = 0; i < viewCounts; i++) { final View view = views.valueAt(i).get(); + if (DEBUG) { + // TODO(b/182433547): remove before S release + Log.d(TAG, "runForEachView: view= " + view); + } if (view == null || view.getViewTranslationCallback() == null) { if (DEBUG) { Log.d(TAG, "View was gone or ViewTranslationCallback for autofillid " diff --git a/core/java/android/widget/TextViewTranslationCallback.java b/core/java/android/widget/TextViewTranslationCallback.java index 296d93c885547..a479b8ac4760f 100644 --- a/core/java/android/widget/TextViewTranslationCallback.java +++ b/core/java/android/widget/TextViewTranslationCallback.java @@ -17,6 +17,7 @@ package android.widget; import android.annotation.NonNull; +import android.os.Build; import android.text.method.TranslationTransformationMethod; import android.util.Log; import android.view.View; @@ -34,7 +35,10 @@ public class TextViewTranslationCallback implements ViewTranslationCallback { private static final String TAG = "TextViewTranslationCallback"; - private static final boolean DEBUG = Log.isLoggable(UiTranslationManager.LOG_TAG, Log.DEBUG); + // TODO(b/182433547): remove Build.IS_DEBUGGABLE before ship. Enable the logging in debug build + // to help the debug during the development phase + private static final boolean DEBUG = Log.isLoggable(UiTranslationManager.LOG_TAG, Log.DEBUG) + || Build.IS_DEBUGGABLE; private TranslationTransformationMethod mTranslationTransformation;