added sending of historic events and added exit dialog to AndroidHarness
git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@7642 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
This commit is contained in:
parent
5135400a9f
commit
026b7f2211
@ -11,7 +11,12 @@ import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import com.jme3.app.Application;
|
||||
import com.jme3.app.android.AndroidApplication;
|
||||
import com.jme3.input.TouchInput;
|
||||
import com.jme3.input.android.AndroidInput;
|
||||
import com.jme3.input.controls.TouchListener;
|
||||
import com.jme3.input.controls.TouchTrigger;
|
||||
import com.jme3.input.event.TouchEvent;
|
||||
import com.jme3.system.AppSettings;
|
||||
import com.jme3.system.JmeSystem;
|
||||
import com.jme3.system.android.OGLESContext;
|
||||
@ -22,7 +27,7 @@ import com.jme3.system.android.OGLESContext;
|
||||
* @author Kirill
|
||||
* @author larynx
|
||||
*/
|
||||
public class AndroidHarness extends Activity implements DialogInterface.OnClickListener
|
||||
public class AndroidHarness extends Activity implements TouchListener, DialogInterface.OnClickListener
|
||||
{
|
||||
protected final static Logger logger = Logger.getLogger(AndroidHarness.class.getName());
|
||||
|
||||
@ -33,6 +38,8 @@ public class AndroidHarness extends Activity implements DialogInterface.OnClickL
|
||||
protected Application app = null;
|
||||
|
||||
protected boolean debug = false;
|
||||
|
||||
final private String ESCAPE_EVENT = "TouchEscape";
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState)
|
||||
@ -70,7 +77,10 @@ public class AndroidHarness extends Activity implements DialogInterface.OnClickL
|
||||
{
|
||||
view = ctx.createView(input);
|
||||
}
|
||||
setContentView(view);
|
||||
setContentView(view);
|
||||
|
||||
app.inputManager.addMapping(ESCAPE_EVENT, new TouchTrigger(TouchInput.KEYCODE_BACK));
|
||||
app.inputManager.addListener(this, new String[]{ESCAPE_EVENT});
|
||||
}
|
||||
|
||||
|
||||
@ -154,7 +164,6 @@ public class AndroidHarness extends Activity implements DialogInterface.OnClickL
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Called by the android alert dialog, terminate the activity and OpenGL rendering
|
||||
@ -162,8 +171,49 @@ public class AndroidHarness extends Activity implements DialogInterface.OnClickL
|
||||
* @param whichButton
|
||||
*/
|
||||
public void onClick(DialogInterface dialog, int whichButton)
|
||||
{
|
||||
app.stop();
|
||||
this.finish();
|
||||
{
|
||||
if (whichButton != -2)
|
||||
{
|
||||
app.stop();
|
||||
this.finish();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets called by the InputManager on all touch/drag/scale events
|
||||
*/
|
||||
@Override
|
||||
public void onTouch(String name, TouchEvent evt, float tpf)
|
||||
{
|
||||
if (name.equals(ESCAPE_EVENT))
|
||||
{
|
||||
switch(evt.getType())
|
||||
{
|
||||
case KEY_UP:
|
||||
this.runOnUiThread(new Runnable()
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
AlertDialog dialog = new AlertDialog.Builder(AndroidHarness.this)
|
||||
// .setIcon(R.drawable.alert_dialog_icon)
|
||||
.setTitle("Do you want to exit?")
|
||||
.setPositiveButton("Yes", AndroidHarness.this)
|
||||
.setNegativeButton("No", AndroidHarness.this)
|
||||
.setMessage("Use your home key to bring this app into the background or exit to terminate it.")
|
||||
.create();
|
||||
dialog.show();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -41,7 +41,11 @@ import android.content.DialogInterface;
|
||||
import com.jme3.app.Application;
|
||||
import com.jme3.font.BitmapFont;
|
||||
import com.jme3.font.BitmapText;
|
||||
import com.jme3.input.TouchInput;
|
||||
import com.jme3.input.android.AndroidInput;
|
||||
import com.jme3.input.controls.TouchListener;
|
||||
import com.jme3.input.controls.TouchTrigger;
|
||||
import com.jme3.input.event.TouchEvent;
|
||||
import com.jme3.renderer.RenderManager;
|
||||
import com.jme3.renderer.queue.RenderQueue.Bucket;
|
||||
import com.jme3.scene.Node;
|
||||
@ -60,8 +64,8 @@ import com.jme3.app.AndroidHarness;
|
||||
*
|
||||
* @deprecated Please use {@link AndroidHarness} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public abstract class AndroidApplication extends Application implements DialogInterface.OnClickListener
|
||||
@Deprecated
|
||||
public abstract class AndroidApplication extends Application implements DialogInterface.OnClickListener, TouchListener
|
||||
{
|
||||
protected final static Logger logger = Logger.getLogger(AndroidApplication.class.getName());
|
||||
|
||||
@ -156,6 +160,9 @@ public abstract class AndroidApplication extends Application implements DialogIn
|
||||
loadFPSText();
|
||||
viewPort.attachScene(rootNode);
|
||||
guiViewPort.attachScene(guiNode);
|
||||
|
||||
inputManager.addMapping("TouchEscape", new TouchTrigger(TouchInput.KEYCODE_BACK));
|
||||
inputManager.addListener(this, new String[]{"TouchEscape"});
|
||||
|
||||
// call user code
|
||||
init();
|
||||
@ -286,9 +293,47 @@ public abstract class AndroidApplication extends Application implements DialogIn
|
||||
* @param whichButton
|
||||
*/
|
||||
public void onClick(DialogInterface dialog, int whichButton)
|
||||
{
|
||||
this.stop();
|
||||
activity.finish();
|
||||
{
|
||||
if (whichButton != -2)
|
||||
{
|
||||
this.stop();
|
||||
activity.finish();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets called by the InputManager on all touch/drag/scale events
|
||||
*/
|
||||
@Override
|
||||
public void onTouch(String name, TouchEvent evt, float tpf)
|
||||
{
|
||||
switch(evt.getType())
|
||||
{
|
||||
|
||||
case KEY_UP:
|
||||
activity.runOnUiThread(new Runnable()
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
AlertDialog dialog = new AlertDialog.Builder(activity)
|
||||
// .setIcon(R.drawable.alert_dialog_icon)
|
||||
.setTitle("Do you want to exit?")
|
||||
.setPositiveButton("Yes", AndroidApplication.this)
|
||||
.setNegativeButton("No", AndroidApplication.this)
|
||||
.setMessage("Use your home key to bring this app into the background or Exit to terminate it.")
|
||||
.create();
|
||||
dialog.show();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -35,11 +35,13 @@ public class AndroidInput extends GLSurfaceView implements TouchInput,
|
||||
final private static int MAX_EVENTS = 1024;
|
||||
|
||||
final private RingBuffer<TouchEvent> eventQueue = new RingBuffer<TouchEvent>(MAX_EVENTS);
|
||||
final private RingBuffer<TouchEvent> eventPoolUnConsumed = new RingBuffer<TouchEvent>(MAX_EVENTS);
|
||||
final private RingBuffer<TouchEvent> eventPool = new RingBuffer<TouchEvent>(MAX_EVENTS);
|
||||
final private HashMap<Integer, Vector2f> lastPositions = new HashMap<Integer, Vector2f>();
|
||||
|
||||
public boolean fireMouseEvents = true;
|
||||
public boolean fireKeyboardEvents = false;
|
||||
public boolean dontSendHistory = false;
|
||||
|
||||
private ScaleGestureDetector scaledetector;
|
||||
private GestureDetector detector;
|
||||
@ -169,33 +171,67 @@ public class AndroidInput extends GLSurfaceView implements TouchInput,
|
||||
return getNextFreeTouchEvent(false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches a touch event from the reuse pool
|
||||
* @param wait
|
||||
* @return
|
||||
*/
|
||||
private TouchEvent getNextFreeTouchEvent(boolean wait)
|
||||
{
|
||||
TouchEvent evt;
|
||||
if (eventPool.isEmpty() && wait)
|
||||
TouchEvent evt = null;
|
||||
synchronized(eventPoolUnConsumed)
|
||||
{
|
||||
logger.warning("eventPool buffer underrun");
|
||||
boolean isEmpty;
|
||||
do
|
||||
int size = eventPoolUnConsumed.size();
|
||||
while (size > 0)
|
||||
{
|
||||
evt = eventPoolUnConsumed.pop();
|
||||
if (!evt.isConsumed())
|
||||
{
|
||||
eventPoolUnConsumed.push(evt);
|
||||
evt = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
size--;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (evt == null)
|
||||
{
|
||||
if (eventPool.isEmpty() && wait)
|
||||
{
|
||||
logger.warning("eventPool buffer underrun");
|
||||
boolean isEmpty;
|
||||
do
|
||||
{
|
||||
synchronized(eventPool)
|
||||
{
|
||||
isEmpty = eventPool.isEmpty();
|
||||
}
|
||||
try { Thread.sleep(50); } catch (InterruptedException e) { }
|
||||
}
|
||||
while (isEmpty);
|
||||
synchronized(eventPool)
|
||||
{
|
||||
evt = eventPool.pop();
|
||||
}
|
||||
}
|
||||
else if (eventPool.isEmpty())
|
||||
{
|
||||
evt = new TouchEvent();
|
||||
logger.warning("eventPool buffer underrun");
|
||||
}
|
||||
else
|
||||
{
|
||||
synchronized(eventPool)
|
||||
{
|
||||
isEmpty = eventPool.isEmpty();
|
||||
evt = eventPool.pop();
|
||||
}
|
||||
try { Thread.sleep(50); } catch (InterruptedException e) { }
|
||||
}
|
||||
while (isEmpty);
|
||||
evt = eventPool.pop();
|
||||
}
|
||||
else if (eventPool.isEmpty())
|
||||
{
|
||||
evt = new TouchEvent();
|
||||
logger.warning("eventPool buffer underrun");
|
||||
}
|
||||
else
|
||||
{
|
||||
evt = eventPool.pop();
|
||||
}
|
||||
return evt;
|
||||
}
|
||||
/**
|
||||
@ -210,17 +246,37 @@ public class AndroidInput extends GLSurfaceView implements TouchInput,
|
||||
// Try to detect gestures
|
||||
this.detector.onTouchEvent(event);
|
||||
this.scaledetector.onTouchEvent(event);
|
||||
|
||||
|
||||
final int historySize = event.getHistorySize();
|
||||
final int pointerCount = event.getPointerCount();
|
||||
|
||||
switch (event.getAction())
|
||||
{
|
||||
case MotionEvent.ACTION_DOWN:
|
||||
|
||||
case MotionEvent.ACTION_DOWN:
|
||||
|
||||
if (!dontSendHistory)
|
||||
{
|
||||
// Process history
|
||||
for (int h = 0; h < historySize; h++)
|
||||
{
|
||||
// Convert all pointers into events
|
||||
for (int p = 0; p < pointerCount; p++)
|
||||
{
|
||||
touch = getNextFreeTouchEvent();
|
||||
touch.set(Type.DOWN, event.getHistoricalX(p, h), this.getHeight() - event.getHistoricalY(p, h), 0, 0);
|
||||
touch.setPointerId(event.getPointerId(p));
|
||||
touch.setTime(event.getHistoricalEventTime(h));
|
||||
touch.setPressure(event.getHistoricalPressure(p, h));
|
||||
processEvent(touch);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
// Convert all pointers into events
|
||||
for (int p = 0; p < event.getPointerCount(); p++)
|
||||
for (int p = 0; p < pointerCount; p++)
|
||||
{
|
||||
touch = getNextFreeTouchEvent();
|
||||
touch.set(Type.DOWN, event.getX(p), event.getY(p), 0, 0);
|
||||
touch.set(Type.DOWN, event.getX(p), this.getHeight() - event.getY(p), 0, 0);
|
||||
touch.setPointerId(event.getPointerId(p));
|
||||
touch.setTime(event.getEventTime());
|
||||
touch.setPressure(event.getPressure(p));
|
||||
@ -232,11 +288,30 @@ public class AndroidInput extends GLSurfaceView implements TouchInput,
|
||||
|
||||
case MotionEvent.ACTION_UP:
|
||||
|
||||
if (!dontSendHistory)
|
||||
{
|
||||
// Process history
|
||||
for (int h = 0; h < historySize; h++)
|
||||
{
|
||||
// Convert all pointers into events
|
||||
for (int p = 0; p < pointerCount; p++)
|
||||
{
|
||||
touch = getNextFreeTouchEvent();
|
||||
touch.set(Type.UP, event.getHistoricalX(p, h), this.getHeight() - event.getHistoricalY(p, h), 0, 0);
|
||||
touch.setPointerId(event.getPointerId(p));
|
||||
touch.setTime(event.getHistoricalEventTime(h));
|
||||
touch.setPressure(event.getHistoricalPressure(p, h));
|
||||
processEvent(touch);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Convert all pointers into events
|
||||
for (int p = 0; p < event.getPointerCount(); p++)
|
||||
for (int p = 0; p < pointerCount; p++)
|
||||
{
|
||||
touch = getNextFreeTouchEvent();
|
||||
touch.set(Type.UP, event.getX(p), event.getY(p), 0, 0);
|
||||
touch.set(Type.UP, event.getX(p), this.getHeight() - event.getY(p), 0, 0);
|
||||
touch.setPointerId(event.getPointerId(p));
|
||||
touch.setTime(event.getEventTime());
|
||||
touch.setPressure(event.getPressure(p));
|
||||
@ -247,22 +322,50 @@ public class AndroidInput extends GLSurfaceView implements TouchInput,
|
||||
break;
|
||||
case MotionEvent.ACTION_MOVE:
|
||||
|
||||
if (!dontSendHistory)
|
||||
{
|
||||
// Process history
|
||||
for (int h = 0; h < historySize; h++)
|
||||
{
|
||||
// Convert all pointers into events
|
||||
for (int p = 0; p < pointerCount; p++)
|
||||
{
|
||||
Vector2f lastPos = lastPositions.get(event.getPointerId(p));
|
||||
if (lastPos == null)
|
||||
{
|
||||
lastPos = new Vector2f(event.getHistoricalX(p,h ), this.getHeight() - event.getHistoricalY(p, h));
|
||||
lastPositions.put(event.getPointerId(p), lastPos);
|
||||
}
|
||||
|
||||
touch = getNextFreeTouchEvent();
|
||||
touch.set(Type.MOVE, event.getHistoricalX(p, h), this.getHeight() - event.getHistoricalY(p, h),
|
||||
event.getHistoricalX(p, h) - lastPos.x, this.getHeight() - event.getHistoricalY(p, h) - lastPos.y);
|
||||
touch.setPointerId(event.getPointerId(p));
|
||||
touch.setTime(event.getHistoricalEventTime(h));
|
||||
touch.setPressure(event.getHistoricalPressure(p, h));
|
||||
processEvent(touch);
|
||||
lastPos.set(event.getHistoricalX(p, h), this.getHeight() - event.getHistoricalY(p, h));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Convert all pointers into events
|
||||
for (int p = 0; p < event.getPointerCount(); p++)
|
||||
{
|
||||
Vector2f lastPos = lastPositions.get(event.getPointerId(p));
|
||||
if (lastPos == null)
|
||||
{
|
||||
lastPos = new Vector2f(event.getX(p), event.getY(p));
|
||||
lastPos = new Vector2f(event.getX(p), this.getHeight() - event.getY(p));
|
||||
lastPositions.put(event.getPointerId(p), lastPos);
|
||||
}
|
||||
touch = getNextFreeTouchEvent();
|
||||
touch.set(Type.MOVE, event.getX(p), event.getY(p), event.getX(p) - lastPos.x, event.getY(p) - lastPos.y);
|
||||
touch.set(Type.MOVE, event.getX(p), this.getHeight() - event.getY(p), event.getX(p) - lastPos.x, this.getHeight() - event.getY(p) - lastPos.y);
|
||||
touch.setPointerId(event.getPointerId(p));
|
||||
touch.setTime(event.getEventTime());
|
||||
touch.setPressure(event.getPressure(p));
|
||||
processEvent(touch);
|
||||
lastPos.set(event.getX(p), event.getY(p));
|
||||
lastPos.set(event.getX(p), this.getHeight() - event.getY(p));
|
||||
}
|
||||
bWasHandled = true;
|
||||
break;
|
||||
@ -296,11 +399,8 @@ public class AndroidInput extends GLSurfaceView implements TouchInput,
|
||||
// Send the event
|
||||
processEvent(evt);
|
||||
|
||||
// Handle all keys ourself, except the back button (4)
|
||||
if (keyCode == 4)
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
// Handle all keys ourself
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -316,11 +416,8 @@ public class AndroidInput extends GLSurfaceView implements TouchInput,
|
||||
// Send the event
|
||||
processEvent(evt);
|
||||
|
||||
// Handle all keys ourself, except the back button (4)
|
||||
if (keyCode == 4)
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
// Handle all keys ourself
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -408,8 +505,8 @@ public class AndroidInput extends GLSurfaceView implements TouchInput,
|
||||
|
||||
if (fireMouseEvents)
|
||||
{
|
||||
newX = getWidth() - (int) event.getX();
|
||||
newY = (int) event.getY();
|
||||
newX = this.getWidth() - (int) event.getX();
|
||||
newY = this.getHeight() - (int) event.getY();
|
||||
switch (event.getType())
|
||||
{
|
||||
case DOWN:
|
||||
@ -451,10 +548,22 @@ public class AndroidInput extends GLSurfaceView implements TouchInput,
|
||||
}
|
||||
}
|
||||
}
|
||||
synchronized (eventPool)
|
||||
|
||||
if (event.isConsumed() == false)
|
||||
{
|
||||
eventPool.push(event);
|
||||
}
|
||||
synchronized (eventPoolUnConsumed)
|
||||
{
|
||||
eventPoolUnConsumed.push(event);
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
synchronized (eventPool)
|
||||
{
|
||||
eventPool.push(event);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -470,7 +579,7 @@ public class AndroidInput extends GLSurfaceView implements TouchInput,
|
||||
public void onLongPress(MotionEvent event)
|
||||
{
|
||||
TouchEvent touch = getNextFreeTouchEvent();
|
||||
touch.set(Type.LONGPRESSED, event.getX(), event.getY(), 0f, 0f);
|
||||
touch.set(Type.LONGPRESSED, event.getX(), this.getHeight() - event.getY(), 0f, 0f);
|
||||
touch.setPointerId(0);
|
||||
touch.setTime(event.getEventTime());
|
||||
processEvent(touch);
|
||||
@ -479,7 +588,7 @@ public class AndroidInput extends GLSurfaceView implements TouchInput,
|
||||
public boolean onFling(MotionEvent event, MotionEvent event2, float vx, float vy)
|
||||
{
|
||||
TouchEvent touch = getNextFreeTouchEvent();
|
||||
touch.set(Type.FLING, event.getX(), event.getY(), vx, vy);
|
||||
touch.set(Type.FLING, event.getX(), this.getHeight() - event.getY(), vx, vy);
|
||||
touch.setPointerId(0);
|
||||
touch.setTime(event.getEventTime());
|
||||
processEvent(touch);
|
||||
@ -490,7 +599,7 @@ public class AndroidInput extends GLSurfaceView implements TouchInput,
|
||||
public boolean onSingleTapConfirmed(MotionEvent event)
|
||||
{
|
||||
TouchEvent touch = getNextFreeTouchEvent();
|
||||
touch.set(Type.TAP, event.getX(), event.getY(), 0f, 0f);
|
||||
touch.set(Type.TAP, event.getX(), this.getHeight() - event.getY(), 0f, 0f);
|
||||
touch.setPointerId(0);
|
||||
touch.setTime(event.getEventTime());
|
||||
processEvent(touch);
|
||||
@ -501,7 +610,7 @@ public class AndroidInput extends GLSurfaceView implements TouchInput,
|
||||
public boolean onDoubleTap(MotionEvent event)
|
||||
{
|
||||
TouchEvent touch = getNextFreeTouchEvent();
|
||||
touch.set(Type.DOUBLETAP, event.getX(), event.getY(), 0f, 0f);
|
||||
touch.set(Type.DOUBLETAP, event.getX(), this.getHeight() - event.getY(), 0f, 0f);
|
||||
touch.setPointerId(0);
|
||||
touch.setTime(event.getEventTime());
|
||||
processEvent(touch);
|
||||
@ -524,7 +633,7 @@ public class AndroidInput extends GLSurfaceView implements TouchInput,
|
||||
public boolean onScale(ScaleGestureDetector scaleGestureDetector)
|
||||
{
|
||||
TouchEvent touch = getNextFreeTouchEvent();
|
||||
touch.set(Type.SCALE_MOVE, scaleGestureDetector.getFocusX(), scaleGestureDetector.getFocusY(), 0f, 0f);
|
||||
touch.set(Type.SCALE_MOVE, scaleGestureDetector.getFocusX(), this.getHeight() - scaleGestureDetector.getFocusY(), 0f, 0f);
|
||||
touch.setPointerId(0);
|
||||
touch.setTime(scaleGestureDetector.getEventTime());
|
||||
touch.setScaleSpan(scaleGestureDetector.getCurrentSpan());
|
||||
@ -537,7 +646,7 @@ public class AndroidInput extends GLSurfaceView implements TouchInput,
|
||||
public void onScaleEnd(ScaleGestureDetector scaleGestureDetector)
|
||||
{
|
||||
TouchEvent touch = getNextFreeTouchEvent();
|
||||
touch.set(Type.SCALE_END, scaleGestureDetector.getFocusX(), scaleGestureDetector.getFocusY(), 0f, 0f);
|
||||
touch.set(Type.SCALE_END, scaleGestureDetector.getFocusX(), this.getHeight() - scaleGestureDetector.getFocusY(), 0f, 0f);
|
||||
touch.setPointerId(0);
|
||||
touch.setTime(scaleGestureDetector.getEventTime());
|
||||
touch.setScaleSpan(scaleGestureDetector.getCurrentSpan());
|
||||
@ -548,7 +657,7 @@ public class AndroidInput extends GLSurfaceView implements TouchInput,
|
||||
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
|
||||
{
|
||||
TouchEvent touch = getNextFreeTouchEvent();
|
||||
touch.set(Type.SCROLL, e1.getX(), e1.getY(), distanceX, distanceY);
|
||||
touch.set(Type.SCROLL, e1.getX(), this.getHeight() - e1.getY(), distanceX, distanceY*(-1));
|
||||
touch.setPointerId(0);
|
||||
touch.setTime(e1.getEventTime());
|
||||
processEvent(touch);
|
||||
@ -558,7 +667,7 @@ public class AndroidInput extends GLSurfaceView implements TouchInput,
|
||||
public void onShowPress(MotionEvent event)
|
||||
{
|
||||
TouchEvent touch = getNextFreeTouchEvent();
|
||||
touch.set(Type.SHOWPRESS, event.getX(), event.getY(), 0f, 0f);
|
||||
touch.set(Type.SHOWPRESS, event.getX(), this.getHeight() - event.getY(), 0f, 0f);
|
||||
touch.setPointerId(0);
|
||||
touch.setTime(event.getEventTime());
|
||||
processEvent(touch);
|
||||
@ -567,7 +676,7 @@ public class AndroidInput extends GLSurfaceView implements TouchInput,
|
||||
public boolean onSingleTapUp(MotionEvent event)
|
||||
{
|
||||
TouchEvent touch = getNextFreeTouchEvent();
|
||||
touch.set(Type.TAP, event.getX(), event.getY(), 0f, 0f);
|
||||
touch.set(Type.TAP, event.getX(), this.getHeight() - event.getY(), 0f, 0f);
|
||||
touch.setPointerId(0);
|
||||
touch.setTime(event.getEventTime());
|
||||
processEvent(touch);
|
||||
@ -585,5 +694,10 @@ public class AndroidInput extends GLSurfaceView implements TouchInput,
|
||||
{
|
||||
fireKeyboardEvents = simulate;
|
||||
}
|
||||
@Override
|
||||
public void setOmitHistoricEvents(boolean dontSendHistory)
|
||||
{
|
||||
this.dontSendHistory = dontSendHistory;
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user