Update HelperAccessor's prefix to be set only once.

Bug: 126372895
Test: manual
Change-Id: I580d4461bd0d1423d20454522e1dbfeec7838a5a
(cherry picked from commit 74f9e52655b46cfe0a484577686089783da09d6c)
diff --git a/libraries/app-helpers/core/src/android/platform/helpers/HelperAccessor.java b/libraries/app-helpers/core/src/android/platform/helpers/HelperAccessor.java
index b95baa9..c1f0c88 100644
--- a/libraries/app-helpers/core/src/android/platform/helpers/HelperAccessor.java
+++ b/libraries/app-helpers/core/src/android/platform/helpers/HelperAccessor.java
@@ -20,38 +20,47 @@
 /**
  * A {@code HelperAccessor} can be included in any test to access an App Helper implementation.
  *
- * <p>For example:
- * <code>
+ * <p>For example: <code>
  *     HelperAccessor<IXHelper> accessor = new HelperAccessor(IXHelper.class);
  *     accessor.get().performSomeAction();
- * </code>
+ * </code> To target a specific helper implementation by prefix, build this object and call, <code>
+ * withPrefix</code> on it.
  */
 public class HelperAccessor<T extends IAppHelper> {
     private final Class<T> mInterfaceClass;
+
     private T mHelper;
+    private String mPrefix;
 
     public HelperAccessor(Class<T> klass) {
         mInterfaceClass = klass;
     }
 
+    /** Selects only helpers that begin with the prefix, {@code prefix}. */
+    public HelperAccessor<T> withPrefix(String prefix) {
+        mPrefix = prefix;
+        // Unset the helper, in case this was changed after first use.
+        mHelper = null;
+        // Return self to follow a pseudo-builder initialization pattern.
+        return this;
+    }
+
     public T get() {
         if (mHelper == null) {
-            mHelper = HelperManager.getInstance(
-                    InstrumentationRegistry.getContext(),
-                    InstrumentationRegistry.getInstrumentation())
-                        .get(mInterfaceClass);
+            if (mPrefix == null || mPrefix.isEmpty()) {
+                mHelper =
+                        HelperManager.getInstance(
+                                        InstrumentationRegistry.getContext(),
+                                        InstrumentationRegistry.getInstrumentation())
+                                .get(mInterfaceClass);
+            } else {
+                mHelper =
+                        HelperManager.getInstance(
+                                        InstrumentationRegistry.getContext(),
+                                        InstrumentationRegistry.getInstrumentation())
+                                .get(mInterfaceClass, mPrefix);
+            }
         }
         return mHelper;
     }
-
-    public T get(String prefix) {
-        if (mHelper == null) {
-            mHelper = HelperManager.getInstance(
-                InstrumentationRegistry.getContext(),
-                InstrumentationRegistry.getInstrumentation())
-                .get(mInterfaceClass, prefix);
-        }
-        return mHelper;
-    }
-
 }