package io.selendroid.client.adb;
/**
* Allow the user to interact with the device based on the adb connection.
*/
public interface AdbConnection {
/**
* Sends text to the Android device/emulator. This is equivalent to running
* {@code adb shell input text (TEXT)} on the command line.
*
* @param text to send to the device/emulator
*/
public void sendText(String text);
/**
* Sends key events to the Android device/emulator. This is equivalent to running
* {@code adb shell input keyevent (KEYCODE)} on the command line.
*
* @param keyCode to send to device/emulator.
* @see <a href="http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_0">KEYCODE_ constants</a>
*/
public void sendKeyEvent(int keyCode);
/**
* Sends key event tap to the Android device/emulator. This is equivalent to running
* {@code adb shell input tap (x) (y)} on the command line.
*
* @param x X coordinate to tap on.
* @param y Y coordinate to tap on.
*/
public void tap(int x, int y);
/**
* Sends the @command to the emulator.
*
* @param command The command to execute on the device under test.
* @return command execution output
*/
public String executeShellCommand(String command);
}