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