From 364a5225be2baad9c7660424a5eeb320d87ae55c Mon Sep 17 00:00:00 2001 From: Adam He Date: Mon, 26 Jul 2021 14:20:36 -0700 Subject: [PATCH] Disable inline suggestions for afservice when talkback is enabled. Bug: 194520863 Test: manual verification Change-Id: Ifb37ac2a164a4564b74c6ab80a0c31fbba3495df Merged-In: Ifb37ac2a164a4564b74c6ab80a0c31fbba3495df --- .../java/com/android/server/autofill/Session.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/services/autofill/java/com/android/server/autofill/Session.java b/services/autofill/java/com/android/server/autofill/Session.java index 078d908684bc0..c07e5a3c5f75e 100644 --- a/services/autofill/java/com/android/server/autofill/Session.java +++ b/services/autofill/java/com/android/server/autofill/Session.java @@ -96,6 +96,7 @@ import android.util.Slog; import android.util.SparseArray; import android.util.TimeUtils; import android.view.KeyEvent; +import android.view.accessibility.AccessibilityManager; import android.view.autofill.AutofillId; import android.view.autofill.AutofillManager; import android.view.autofill.AutofillManager.SmartSuggestionMode; @@ -346,6 +347,8 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState */ private final AssistDataReceiverImpl mAssistReceiver = new AssistDataReceiverImpl(); + private final AccessibilityManager mAccessibilityManager; + void onSwitchInputMethodLocked() { // One caveat is that for the case where the focus is on a field for which regular autofill // returns null, and augmented autofill is triggered, and then the user switches the input @@ -457,9 +460,14 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState return; } - mPendingFillRequest = new FillRequest(mPendingFillRequest.getId(), - mPendingFillRequest.getFillContexts(), mPendingFillRequest.getClientState(), - mPendingFillRequest.getFlags(), mPendingInlineSuggestionsRequest); + // If a11y touch exploration is enabled, then we do not send an inline fill request + // to the regular af service, because dropdown UI is easier to use. + if (!mAccessibilityManager.isTouchExplorationEnabled()) { + mPendingFillRequest = new FillRequest(mPendingFillRequest.getId(), + mPendingFillRequest.getFillContexts(), + mPendingFillRequest.getClientState(), + mPendingFillRequest.getFlags(), mPendingInlineSuggestionsRequest); + } } mRemoteFillService.onFillRequest(mPendingFillRequest); @@ -888,6 +896,7 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState mRemoteFillService = serviceComponentName == null ? null : new RemoteFillService(context, serviceComponentName, userId, this, bindInstantServiceAllowed); + mAccessibilityManager = AccessibilityManager.getInstance(context); mActivityToken = activityToken; mHasCallback = hasCallback; mUiLatencyHistory = uiLatencyHistory;