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}