From edc4cd9c9cb1831fb2d9940197eaca4ca5cc8224 Mon Sep 17 00:00:00 2001 From: Haoran Zhang Date: Fri, 3 Feb 2023 21:39:51 +0000 Subject: [PATCH] Define new fill request flag to indicate reqeust is for pcc. Have assist structure set the AUTOFILL_INCLUDE_NOT_IMPORTANT_VIEW flag when pcc request flag is set. In this way, assist structure generated for PCC would have unimportant views included Bug: b/254877316 Test: Verified locally unimportant views are included in assist structure by manually setting the fill request flag in Session#requestAssistStructureLocked() Change-Id: I75f8af9fbad6d3d19b5fe912a83b4685f1bb1ae5 --- .../android/app/assist/AssistStructure.java | 1 + .../android/service/autofill/FillRequest.java | 25 +++++++++++++------ 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/core/java/android/app/assist/AssistStructure.java b/core/java/android/app/assist/AssistStructure.java index 6e49e956fe7e2..b7ec7b55d7dbc 100644 --- a/core/java/android/app/assist/AssistStructure.java +++ b/core/java/android/app/assist/AssistStructure.java @@ -545,6 +545,7 @@ public class AssistStructure implements Parcelable { int resolveViewAutofillFlags(Context context, int fillRequestFlags) { return (fillRequestFlags & FillRequest.FLAG_MANUAL_REQUEST) != 0 || context.isAutofillCompatibilityEnabled() + || (fillRequestFlags & FillRequest.FLAG_PCC_DETECTION) != 0 ? View.AUTOFILL_FLAG_INCLUDE_NOT_IMPORTANT_VIEWS : 0; } diff --git a/core/java/android/service/autofill/FillRequest.java b/core/java/android/service/autofill/FillRequest.java index 0f7c9b63dac01..eb5e893416c7f 100644 --- a/core/java/android/service/autofill/FillRequest.java +++ b/core/java/android/service/autofill/FillRequest.java @@ -117,6 +117,12 @@ public final class FillRequest implements Parcelable { */ public static final @RequestFlags int FLAG_RESET_FILL_DIALOG_STATE = 0x100; + /** + * Indicate the fill request is made for PCC detection + * @hide + */ + public static final @RequestFlags int FLAG_PCC_DETECTION = 0x200; + /** @hide */ public static final int INVALID_REQUEST_ID = Integer.MIN_VALUE; @@ -200,7 +206,7 @@ public final class FillRequest implements Parcelable { // CHECKSTYLE:OFF Generated code // // To regenerate run: - // $ codegen $ANDROID_BUILD_TOP/./frameworks/base/core/java/android/service/autofill/FillRequest.java + // $ codegen $ANDROID_BUILD_TOP/frameworks/base/core/java/android/service/autofill/FillRequest.java // // To exclude the generated code from IntelliJ auto-formatting enable (one-time): // Settings > Editor > Code Style > Formatter Control @@ -215,7 +221,8 @@ public final class FillRequest implements Parcelable { FLAG_VIEW_NOT_FOCUSED, FLAG_SUPPORTS_FILL_DIALOG, FLAG_IME_SHOWING, - FLAG_RESET_FILL_DIALOG_STATE + FLAG_RESET_FILL_DIALOG_STATE, + FLAG_PCC_DETECTION }) @Retention(RetentionPolicy.SOURCE) @DataClass.Generated.Member @@ -245,6 +252,8 @@ public final class FillRequest implements Parcelable { return "FLAG_IME_SHOWING"; case FLAG_RESET_FILL_DIALOG_STATE: return "FLAG_RESET_FILL_DIALOG_STATE"; + case FLAG_PCC_DETECTION: + return "FLAG_PCC_DETECTION"; default: return Integer.toHexString(value); } } @@ -322,7 +331,8 @@ public final class FillRequest implements Parcelable { | FLAG_VIEW_NOT_FOCUSED | FLAG_SUPPORTS_FILL_DIALOG | FLAG_IME_SHOWING - | FLAG_RESET_FILL_DIALOG_STATE); + | FLAG_RESET_FILL_DIALOG_STATE + | FLAG_PCC_DETECTION); this.mInlineSuggestionsRequest = inlineSuggestionsRequest; this.mDelayedFillIntentSender = delayedFillIntentSender; @@ -463,7 +473,7 @@ public final class FillRequest implements Parcelable { byte flg = in.readByte(); int id = in.readInt(); List fillContexts = new ArrayList<>(); - in.readParcelableList(fillContexts, FillContext.class.getClassLoader(), android.service.autofill.FillContext.class); + in.readParcelableList(fillContexts, FillContext.class.getClassLoader()); Bundle clientState = (flg & 0x4) == 0 ? null : in.readBundle(); int flags = in.readInt(); InlineSuggestionsRequest inlineSuggestionsRequest = (flg & 0x10) == 0 ? null : (InlineSuggestionsRequest) in.readTypedObject(InlineSuggestionsRequest.CREATOR); @@ -484,7 +494,8 @@ public final class FillRequest implements Parcelable { | FLAG_VIEW_NOT_FOCUSED | FLAG_SUPPORTS_FILL_DIALOG | FLAG_IME_SHOWING - | FLAG_RESET_FILL_DIALOG_STATE); + | FLAG_RESET_FILL_DIALOG_STATE + | FLAG_PCC_DETECTION); this.mInlineSuggestionsRequest = inlineSuggestionsRequest; this.mDelayedFillIntentSender = delayedFillIntentSender; @@ -506,10 +517,10 @@ public final class FillRequest implements Parcelable { }; @DataClass.Generated( - time = 1663290803064L, + time = 1675460688829L, codegenVersion = "1.0.23", sourceFile = "frameworks/base/core/java/android/service/autofill/FillRequest.java", - inputSignatures = "public static final @android.service.autofill.FillRequest.RequestFlags int FLAG_MANUAL_REQUEST\npublic static final @android.service.autofill.FillRequest.RequestFlags int FLAG_COMPATIBILITY_MODE_REQUEST\npublic static final @android.service.autofill.FillRequest.RequestFlags int FLAG_PASSWORD_INPUT_TYPE\npublic static final @android.service.autofill.FillRequest.RequestFlags int FLAG_VIEW_NOT_FOCUSED\npublic static final @android.service.autofill.FillRequest.RequestFlags int FLAG_SUPPORTS_FILL_DIALOG\npublic static final @android.service.autofill.FillRequest.RequestFlags int FLAG_IME_SHOWING\npublic static final @android.service.autofill.FillRequest.RequestFlags int FLAG_RESET_FILL_DIALOG_STATE\npublic static final int INVALID_REQUEST_ID\nprivate final int mId\nprivate final @android.annotation.NonNull java.util.List mFillContexts\nprivate final @android.annotation.Nullable android.os.Bundle mClientState\nprivate final @android.service.autofill.FillRequest.RequestFlags int mFlags\nprivate final @android.annotation.Nullable android.view.inputmethod.InlineSuggestionsRequest mInlineSuggestionsRequest\nprivate final @android.annotation.Nullable android.content.IntentSender mDelayedFillIntentSender\nprivate void onConstructed()\nclass FillRequest extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genToString=true, genHiddenConstructor=true, genHiddenConstDefs=true)") + inputSignatures = "public static final @android.service.autofill.FillRequest.RequestFlags int FLAG_MANUAL_REQUEST\npublic static final @android.service.autofill.FillRequest.RequestFlags int FLAG_COMPATIBILITY_MODE_REQUEST\npublic static final @android.service.autofill.FillRequest.RequestFlags int FLAG_PASSWORD_INPUT_TYPE\npublic static final @android.service.autofill.FillRequest.RequestFlags int FLAG_VIEW_NOT_FOCUSED\npublic static final @android.service.autofill.FillRequest.RequestFlags int FLAG_SUPPORTS_FILL_DIALOG\npublic static final @android.service.autofill.FillRequest.RequestFlags int FLAG_IME_SHOWING\npublic static final @android.service.autofill.FillRequest.RequestFlags int FLAG_RESET_FILL_DIALOG_STATE\npublic static final @android.service.autofill.FillRequest.RequestFlags int FLAG_PCC_DETECTION\npublic static final int INVALID_REQUEST_ID\nprivate final int mId\nprivate final @android.annotation.NonNull java.util.List mFillContexts\nprivate final @android.annotation.Nullable android.os.Bundle mClientState\nprivate final @android.service.autofill.FillRequest.RequestFlags int mFlags\nprivate final @android.annotation.Nullable android.view.inputmethod.InlineSuggestionsRequest mInlineSuggestionsRequest\nprivate final @android.annotation.Nullable android.content.IntentSender mDelayedFillIntentSender\nprivate void onConstructed()\nclass FillRequest extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genToString=true, genHiddenConstructor=true, genHiddenConstDefs=true)") @Deprecated private void __metadata() {}