aboutsummaryrefslogtreecommitdiff
path: root/src/io/appium/droiddriver/UiDevice.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/io/appium/droiddriver/UiDevice.java')
-rw-r--r--src/io/appium/droiddriver/UiDevice.java75
1 files changed, 75 insertions, 0 deletions
diff --git a/src/io/appium/droiddriver/UiDevice.java b/src/io/appium/droiddriver/UiDevice.java
new file mode 100644
index 0000000..c2b9086
--- /dev/null
+++ b/src/io/appium/droiddriver/UiDevice.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2013 DroidDriver committers
+ *
+ * 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 io.appium.droiddriver;
+
+import android.graphics.Bitmap.CompressFormat;
+
+import io.appium.droiddriver.actions.Action;
+
+/**
+ * Interface for device-wide interaction.
+ */
+public interface UiDevice {
+ /**
+ * Returns whether the screen is on.
+ */
+ boolean isScreenOn();
+
+ /** Wakes up device if the screen is off */
+ void wakeUp();
+
+ /** Puts device to sleep if the screen is on */
+ void sleep();
+
+ /** Simulates pressing "back" button */
+ void pressBack();
+
+ /**
+ * Executes a global action without the context of a certain UiElement.
+ *
+ * @param action The action to execute
+ * @return true if the action is successful
+ */
+ boolean perform(Action action);
+
+ /**
+ * Takes a screenshot of current window and stores it in {@code path} as PNG.
+ * <p>
+ * If this is used in a test which extends
+ * {@link android.test.ActivityInstrumentationTestCase2}, call this before
+ * {@code tearDown()} because {@code tearDown()} finishes activities created
+ * by {@link android.test.ActivityInstrumentationTestCase2#getActivity()}.
+ *
+ * @param path the path of file to save screenshot
+ * @return true if screen shot is created successfully
+ */
+ boolean takeScreenshot(String path);
+
+ /**
+ * Takes a screenshot of current window and stores it in {@code path}. Note
+ * some implementations may not capture everything on the screen, for example
+ * InstrumentationDriver may not see the IME soft keyboard or system content.
+ *
+ * @param path the path of file to save screenshot
+ * @param format The format of the compressed image
+ * @param quality Hint to the compressor, 0-100. 0 meaning compress for small
+ * size, 100 meaning compress for max quality. Some formats, like PNG
+ * which is lossless, will ignore the quality setting
+ * @return true if screen shot is created successfully
+ */
+ boolean takeScreenshot(String path, CompressFormat format, int quality);
+}