From ce40498dc2783720ebbb2d41f8b7e01c4e0cadec Mon Sep 17 00:00:00 2001 From: Felipe Leme Date: Mon, 17 Sep 2018 09:46:13 -0700 Subject: [PATCH] Fixed when the CompatibilityBridge is attached to an activity. The AccessibilityManager is a singleton, so we need to update it everytime an activity is resumed. Test: manual verification with Chrome (CTS test is an overkill here) Test: atest CtsAutoFillServiceTestCases # to make sure it didn't break anything Fixes: 112690889 Change-Id: If011db203dee96ec511da80f4e49395c0340f482 --- core/java/android/app/Activity.java | 2 +- core/java/android/view/autofill/AutofillManager.java | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java index bf2d86096773c..8561ac57b7666 100644 --- a/core/java/android/app/Activity.java +++ b/core/java/android/app/Activity.java @@ -1383,6 +1383,7 @@ public class Activity extends ContextThemeWrapper if (DEBUG_LIFECYCLE) Slog.v(TAG, "onResume " + this); getApplication().dispatchActivityResumed(this); mActivityTransitionState.onResume(this, isTopOfTask()); + enableAutofillCompatibilityIfNeeded(); if (mAutoFillResetNeeded) { if (!mAutoFillIgnoreFirstResumePause) { View focus = getCurrentFocus(); @@ -7159,7 +7160,6 @@ public class Activity extends ContextThemeWrapper mWindow.setColorMode(info.colorMode); setAutofillCompatibilityEnabled(application.isAutofillCompatibilityEnabled()); - enableAutofillCompatibilityIfNeeded(); } private void enableAutofillCompatibilityIfNeeded() { diff --git a/core/java/android/view/autofill/AutofillManager.java b/core/java/android/view/autofill/AutofillManager.java index 9419e93d00662..e87048e1a5cb2 100644 --- a/core/java/android/view/autofill/AutofillManager.java +++ b/core/java/android/view/autofill/AutofillManager.java @@ -45,6 +45,7 @@ import android.service.autofill.UserData; import android.util.ArrayMap; import android.util.ArraySet; import android.util.Log; +import android.util.Slog; import android.util.SparseArray; import android.view.Choreographer; import android.view.KeyEvent; @@ -559,6 +560,9 @@ public final class AutofillManager { // different bridge based on which activity is currently focused // in the current process. Since compat would be rarely used, just // create and register a new instance every time. + if (sDebug) { + Slog.d(TAG, "creating CompatibilityBridge for " + mContext); + } mCompatibilityBridge = new CompatibilityBridge(); } }