diff options
Diffstat (limited to 'tests/autofillservice/src/android/autofillservice/cts/VirtualContainerView.java')
-rw-r--r-- | tests/autofillservice/src/android/autofillservice/cts/VirtualContainerView.java | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/autofillservice/src/android/autofillservice/cts/VirtualContainerView.java b/tests/autofillservice/src/android/autofillservice/cts/VirtualContainerView.java index 205fcaef4a3..8eecc294796 100644 --- a/tests/autofillservice/src/android/autofillservice/cts/VirtualContainerView.java +++ b/tests/autofillservice/src/android/autofillservice/cts/VirtualContainerView.java @@ -20,7 +20,9 @@ import static android.autofillservice.cts.Helper.FILL_TIMEOUT_MS; import static com.google.common.truth.Truth.assertWithMessage; +import android.app.assist.AssistStructure; import android.app.assist.AssistStructure.ViewNode; +import android.content.ComponentName; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; @@ -72,6 +74,7 @@ class VirtualContainerView extends View { private int mUnfocusedColor; private boolean mSync = true; private boolean mOverrideDispatchProvideAutofillStructure = false; + private ComponentName mFakedComponentName; public VirtualContainerView(Context context, AttributeSet attrs) { super(context, attrs); @@ -192,6 +195,18 @@ class VirtualContainerView extends View { Log.d(TAG, "onProvideAutofillVirtualStructure(): flags = " + flags); super.onProvideAutofillVirtualStructure(structure, flags); + if (mFakedComponentName != null) { + Log.d(TAG, "Faking package name to " + mFakedComponentName); + try { + final AssistStructure assistStructure = Helper.getField(structure, "mAssist"); + if (assistStructure != null) { + Helper.setField(assistStructure, "mActivityComponent", mFakedComponentName); + } + } catch (Exception e) { + Log.e(TAG, "Could not fake package name to " + mFakedComponentName, e); + } + } + final String packageName = getContext().getPackageName(); structure.setClassName(getClass().getName()); final int childrenSize = mItems.size(); @@ -254,6 +269,10 @@ class VirtualContainerView extends View { mSync = sync; } + void fakePackageName(ComponentName name) { + mFakedComponentName = name; + } + void setOverrideDispatchProvideAutofillStructure(boolean flag) { mOverrideDispatchProvideAutofillStructure = flag; } |