Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b5c4caa0 authored by Guang Zhu's avatar Guang Zhu
Browse files

add mouse up/down/click support in DumpRenderTree

use touchStart/End when mouseDown/Up is called in current
EventSender implmentation.

Change-Id: Iff3e7f45b6a7170d9be1c7ec9b12a74a74737732
parent 50395e80
Loading
Loading
Loading
Loading
+16 −42
Original line number Diff line number Diff line
@@ -16,14 +16,12 @@

package com.android.dumprendertree;

import android.os.Handler;
import android.os.SystemClock;
import android.util.*;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.webkit.WebView;

import java.lang.InterruptedException;
import java.util.Arrays;
import java.util.Vector;

@@ -33,7 +31,7 @@ public class WebViewEventSender implements EventSender {
	
    WebViewEventSender(WebView webView) {
        mWebView = webView;
        mTouchPoints = new Vector();
        mTouchPoints = new Vector<TouchPoint>();
    }
	
	public void resetMouse() {
@@ -83,44 +81,20 @@ public class WebViewEventSender implements EventSender {
	}

    public void mouseDown() {
          /*  KeyEvent event = new KeyEvent(
                KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_CENTER);
            mWebView.onKeyDown(event.getKeyCode(), event); */
        long ts = SystemClock.uptimeMillis();
        MotionEvent event = MotionEvent.obtain(ts, ts, MotionEvent.ACTION_DOWN, mouseX, mouseY, 0);
        mWebView.onTouchEvent(event);
    }

    public void mouseMoveTo(int X, int Y) {
		if (X > mouseX) {
                    KeyEvent event = new KeyEvent(
                        KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_RIGHT);
                    mWebView.onKeyDown(event.getKeyCode(), event);
                    mWebView.onKeyUp(event.getKeyCode(), event);
		} else if ( X < mouseX ) {
                    KeyEvent event = new KeyEvent(
                        KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_LEFT);
                    mWebView.onKeyDown(event.getKeyCode(), event);
                    mWebView.onKeyUp(event.getKeyCode(), event);
		}
		if (Y > mouseY) {
                    KeyEvent event = new KeyEvent(
                        KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_DOWN);
                    mWebView.onKeyDown(event.getKeyCode(), event);
                    mWebView.onKeyUp(event.getKeyCode(), event);
		} else if (Y < mouseY ) {
                    KeyEvent event = new KeyEvent(
                        KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_UP);
                    mWebView.onKeyDown(event.getKeyCode(), event);
                    mWebView.onKeyUp(event.getKeyCode(), event);
		}
        mouseX= X;
        mouseY= Y;
	
    }

     public void mouseUp() {
        /*    KeyEvent event = new KeyEvent(
                KeyEvent.ACTION_UP, KeyEvent.KEYCODE_DPAD_CENTER);
            mWebView.onKeyDown(event.getKeyCode(), event);*/

        long ts = SystemClock.uptimeMillis();
        MotionEvent event = MotionEvent.obtain(ts, ts, MotionEvent.ACTION_UP, mouseX, mouseY, 0);
        mWebView.onTouchEvent(event);
    }

	// Assumes lowercase chars, case needs to be
@@ -365,7 +339,7 @@ public class WebViewEventSender implements EventSender {
            mX = x;
            mY = y;
        }
    };
    }

    private Vector<TouchPoint> mTouchPoints;
    private int mTouchMetaState;