18aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski/* 28aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski * Copyright (C) 2010 The Android Open Source Project 38aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski * 48aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski * Licensed under the Apache License, Version 2.0 (the "License"); 58aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski * you may not use this file except in compliance with the License. 68aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski * You may obtain a copy of the License at 78aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski * 88aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski * http://www.apache.org/licenses/LICENSE-2.0 98aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski * 108aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski * Unless required by applicable law or agreed to in writing, software 118aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski * distributed under the License is distributed on an "AS IS" BASIS, 128aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 138aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski * See the License for the specific language governing permissions and 148aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski * limitations under the License. 158aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski */ 168aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski 178aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowskipackage com.android.dumprendertree2; 188aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski 198aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowskiimport android.webkit.WebView; 208aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski 218aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski/** 228aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski * A class that acts as a JS interface for webview to mock various touch events, 238aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski * mouse actions and key presses. 248aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski * 258aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski * The methods here just call corresponding methods on EventSenderImpl 268aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski * that contains the logic of how to execute the methods. 278aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski */ 288aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowskipublic class EventSender { 298aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski EventSenderImpl mEventSenderImpl = new EventSenderImpl(); 308aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski 318aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski public void reset(WebView webView) { 328aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski mEventSenderImpl.reset(webView); 338aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski } 348aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski 358aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski public void enableDOMUIEventLogging(int domNode) { 368aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski mEventSenderImpl.enableDOMUIEventLogging(domNode); 378aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski } 388aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski 398aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski public void fireKeyboardEventsToElement(int domNode) { 408aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski mEventSenderImpl.fireKeyboardEventsToElement(domNode); 418aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski } 428aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski 438aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski public void keyDown(String character, String[] withModifiers) { 448aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski mEventSenderImpl.keyDown(character, withModifiers); 458aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski } 468aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski 478aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski public void keyDown(String character) { 488aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski keyDown(character, null); 498aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski } 508aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski 518aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski public void leapForward(int milliseconds) { 528aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski mEventSenderImpl.leapForward(milliseconds); 538aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski } 548aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski 558aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski public void mouseClick() { 568aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski mEventSenderImpl.mouseClick(); 578aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski } 588aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski 598aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski public void mouseDown() { 608aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski mEventSenderImpl.mouseDown(); 618aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski } 628aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski 638aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski public void mouseMoveTo(int x, int y) { 648aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski mEventSenderImpl.mouseMoveTo(x, y); 658aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski } 668aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski 678aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski public void mouseUp() { 688aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski mEventSenderImpl.mouseUp(); 698aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski } 708aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski 718aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski public void touchStart() { 728aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski mEventSenderImpl.touchStart(); 738aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski } 748aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski 758aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski public void addTouchPoint(int x, int y) { 768aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski mEventSenderImpl.addTouchPoint(x, y); 778aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski } 788aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski 798aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski public void updateTouchPoint(int id, int x, int y) { 808aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski mEventSenderImpl.updateTouchPoint(id, x, y); 818aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski } 828aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski 838aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski public void setTouchModifier(String modifier, boolean enabled) { 848aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski mEventSenderImpl.setTouchModifier(modifier, enabled); 858aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski } 868aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski 878aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski public void touchMove() { 888aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski mEventSenderImpl.touchMove(); 898aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski } 908aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski 918aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski public void releaseTouchPoint(int id) { 928aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski mEventSenderImpl.releaseTouchPoint(id); 938aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski } 948aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski 958aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski public void touchEnd() { 968aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski mEventSenderImpl.touchEnd(); 978aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski } 988aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski 998aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski public void touchCancel() { 1008aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski mEventSenderImpl.touchCancel(); 1018aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski } 1028aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski 1038aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski public void clearTouchPoints() { 1048aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski mEventSenderImpl.clearTouchPoints(); 1058aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski } 1068aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski 1078aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski public void cancelTouchPoint(int id) { 1088aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski mEventSenderImpl.cancelTouchPoint(id); 1098aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski } 1108aff3c0571f078b0b212bd283278791ebc478da5Maksymilian Osowski}