From 3d83dccf1d8c110b6dab57f8cb92dac0e27e6a20 Mon Sep 17 00:00:00 2001 From: pelya Date: Mon, 1 Nov 2010 15:12:28 +0200 Subject: [PATCH] Check actual methods from MotionEvent for multitouch input instead of SDK version --- project/java/Video.java | 20 +++++++++++++++++--- project/jni/application/src | 2 +- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/project/java/Video.java b/project/java/Video.java index c7daee6df..bed3c5982 100644 --- a/project/java/Video.java +++ b/project/java/Video.java @@ -22,15 +22,29 @@ import android.widget.TextView; import java.lang.Thread; import java.util.concurrent.locks.ReentrantLock; import android.os.Build; +import java.lang.reflect.Method; + abstract class DifferentTouchInput { public static DifferentTouchInput getInstance() { - if (Integer.parseInt(Build.VERSION.SDK) <= 4) - return SingleTouchInput.Holder.sInstance; - else + boolean multiTouchAvailable1 = false; + boolean multiTouchAvailable2 = false; + // Not checking for getX(int), getY(int) etc 'cause I'm lazy + Method methods [] = MotionEvent.class.getDeclaredMethods(); + for(Method m: methods) + { + if( m.getName().equals("getPointerCount") ) + multiTouchAvailable1 = true; + if( m.getName().equals("getPointerId") ) + multiTouchAvailable2 = true; + } + + if (multiTouchAvailable1 && multiTouchAvailable2) return MultiTouchInput.Holder.sInstance; + else + return SingleTouchInput.Holder.sInstance; } public abstract void process(final MotionEvent event); private static class SingleTouchInput extends DifferentTouchInput diff --git a/project/jni/application/src b/project/jni/application/src index 57d37d935..f36c75d23 120000 --- a/project/jni/application/src +++ b/project/jni/application/src @@ -1 +1 @@ -pachi \ No newline at end of file +scummvm \ No newline at end of file