1a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin/*
2a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin * Copyright (C) 2013 DroidDriver committers
3a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin *
4a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin * Licensed under the Apache License, Version 2.0 (the "License");
5a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin * you may not use this file except in compliance with the License.
6a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin * You may obtain a copy of the License at
7a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin *
8a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin *      http://www.apache.org/licenses/LICENSE-2.0
9a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin *
10a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin * Unless required by applicable law or agreed to in writing, software
11a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin * distributed under the License is distributed on an "AS IS" BASIS,
12a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin * See the License for the specific language governing permissions and
14a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin * limitations under the License.
15a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin */
16a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin
174b31201b5a2dbf8036da5a8d089a68a39cc1dc44Kevin Jinpackage io.appium.droiddriver.actions;
18a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin
194b31201b5a2dbf8036da5a8d089a68a39cc1dc44Kevin Jinimport io.appium.droiddriver.UiElement;
204b31201b5a2dbf8036da5a8d089a68a39cc1dc44Kevin Jinimport io.appium.droiddriver.scroll.Direction.PhysicalDirection;
21a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin
22a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin/**
23a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin * Interface for performing actions on a {@link UiElement}.
24a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin */
25a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jinpublic interface UiElementActor {
26a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin  /**
27a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin   * Clicks this element. The click will be at the center of the visible
28a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin   * element.
29a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin   */
30a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin  void click(UiElement uiElement);
31a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin
32a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin  /**
33a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin   * Long-clicks this element. The click will be at the center of the visible
34a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin   * element.
35a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin   */
36a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin  void longClick(UiElement uiElement);
37a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin
38a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin  /**
39a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin   * Double-clicks this element. The click will be at the center of the visible
40a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin   * element.
41a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin   */
42a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin  void doubleClick(UiElement uiElement);
43a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin
44a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin  /**
45a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin   * Scrolls in the given direction.
46a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin   *
47a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin   * @param direction specifies where the view port will move, instead of the
48a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin   *        finger.
49a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin   */
50a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin  void scroll(UiElement uiElement, PhysicalDirection direction);
51a738fe74f57f48dde2dd7a28479bab3f5441dadbKevin Jin}
52