public class

RemoteInteractionRegistry

extends java.lang.Object

 java.lang.Object

↳androidx.test.espresso.remote.RemoteInteractionRegistry

Gradle dependencies

compile group: 'androidx.test.espresso', name: 'espresso-core', version: '3.6.1'

  • groupId: androidx.test.espresso
  • artifactId: espresso-core
  • version: 3.6.1

Artifact androidx.test.espresso:espresso-core:3.6.1 it located at Google repository (https://maven.google.com/)

Androidx artifact mapping:

androidx.test.espresso:espresso-core com.android.support.test.espresso:espresso-core

Androidx class mapping:

androidx.test.espresso.remote.RemoteInteractionRegistry android.support.test.espresso.remote.RemoteInteractionRegistry

Overview

An exposed registry instance to make it easy for callers to get a hold of Remote Interaction

Summary

Methods
public static RemoteInteractiongetInstance()

Returns the RemoteInteraction

public static voidregisterInstance(RemoteInteraction remoteInteraction)

Stores the remote interaction in the registry.

from java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Methods

public static RemoteInteraction getInstance()

Returns the RemoteInteraction

This remote interaction is not guaranteed to be present under all instrumentations.

Returns:

RemoteInteraction the remote interaction for this application. If no remote interaction has been registered a NoopRemoteInteraction will be returned.

public static void registerInstance(RemoteInteraction remoteInteraction)

Stores the remote interaction in the registry.

This is a global registry - so be aware of the impact of calling this method!

Parameters:

remoteInteraction: the remote interaction for this application. <@code>Null de-registers any existing monitor.

Source

/*
 * Copyright (C) 2016 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */

package androidx.test.espresso.remote;

import java.util.concurrent.atomic.AtomicReference;

/** An exposed registry instance to make it easy for callers to get a hold of Remote Interaction */
public class RemoteInteractionRegistry {

  private static final AtomicReference<RemoteInteraction> sInstance =
      new AtomicReference<RemoteInteraction>(new NoopRemoteInteraction());

  private RemoteInteractionRegistry() {
    // singleton - disallow creation
  }

  /**
   * Returns the {@link RemoteInteraction}
   *
   * <p>This remote interaction is not guaranteed to be present under all instrumentations.
   *
   * @return RemoteInteraction the remote interaction for this application. If no remote interaction
   *     has been registered a {@link NoopRemoteInteraction} will be returned.
   */
  public static RemoteInteraction getInstance() {
    return sInstance.get();
  }

  /**
   * Stores the remote interaction in the registry.
   *
   * <p>This is a global registry - so be aware of the impact of calling this method!
   *
   * @param remoteInteraction the remote interaction for this application. <@code>Null</@code>
   *     de-registers any existing monitor.
   */
  public static void registerInstance(RemoteInteraction remoteInteraction) {
    if (null == remoteInteraction) {
      sInstance.set(new NoopRemoteInteraction());
    } else {
      sInstance.set(remoteInteraction);
    }
  }
}