From 5cd660d5e9c56b6a9fdc2be6da7189a94e4d9396 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 (cherry picked from commit ce40498dc2783720ebbb2d41f8b7e01c4e0cadec) --- 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 f765620a2eb92..0fb85d25cf1a1 100644 --- a/core/java/android/app/Activity.java +++ b/core/java/android/app/Activity.java @@ -1342,6 +1342,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(); @@ -7108,7 +7109,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 d21cb3e64b8c6..8b3ce42b076b7 100644 --- a/core/java/android/view/autofill/AutofillManager.java +++ b/core/java/android/view/autofill/AutofillManager.java @@ -44,6 +44,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; @@ -548,6 +549,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(); } }