summaryrefslogtreecommitdiff
path: root/tests/autofillservice/src/android/autofillservice/cts/VirtualContainerView.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/autofillservice/src/android/autofillservice/cts/VirtualContainerView.java')
-rw-r--r--tests/autofillservice/src/android/autofillservice/cts/VirtualContainerView.java19
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;
}