ANDROID: Fix Android pre3.1 compatibility.

This was broken by a50ede203b0424d800d2a1d4460121f9f1de8e7a.
This commit is contained in:
D G Turner 2014-02-26 15:26:12 +00:00
parent 885013febb
commit cbf085287c
4 changed files with 36 additions and 14 deletions

View File

@ -7,6 +7,7 @@ ANDROID_PLUGIN_VERSIONCODE = 6
JAVA_FILES = \ JAVA_FILES = \
ScummVM.java \ ScummVM.java \
ScummVMEvents.java \ ScummVMEvents.java \
ScummVMEventsHoneycomb.java \
ScummVMApplication.java \ ScummVMApplication.java \
ScummVMActivity.java \ ScummVMActivity.java \
EditableSurfaceView.java \ EditableSurfaceView.java \

View File

@ -4,6 +4,7 @@ import android.app.Activity;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.media.AudioManager; import android.media.AudioManager;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Environment; import android.os.Environment;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
@ -169,7 +170,14 @@ public class ScummVMActivity extends Activity {
_mouseHelper.attach(main_surface); _mouseHelper.attach(main_surface);
} }
_events = new ScummVMEvents(this, _scummvm, _mouseHelper); if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB_MR1)
{
_events = new ScummVMEvents(this, _scummvm, _mouseHelper);
}
else
{
_events = new ScummVMEventsHoneycomb(this, _scummvm, _mouseHelper);
}
main_surface.setOnKeyListener(_events); main_surface.setOnKeyListener(_events);
main_surface.setOnTouchListener(_events); main_surface.setOnTouchListener(_events);

View File

@ -1,6 +1,5 @@
package org.scummvm.scummvm; package org.scummvm.scummvm;
import android.os.Build;
import android.os.Handler; import android.os.Handler;
import android.os.Message; import android.os.Message;
import android.content.Context; import android.content.Context;
@ -69,18 +68,7 @@ public class ScummVMEvents implements
return true; return true;
} }
public boolean onGenericMotionEvent(final MotionEvent e) { public boolean onGenericMotionEvent(MotionEvent e) {
// Make sure we're running on Android 3.1 or higher to use getAxisValue()
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1) {
if((e.getSource() & InputDevice.SOURCE_CLASS_JOYSTICK) != 0) {
_scummvm.pushEvent(JE_JOYSTICK, e.getAction(),
(int)(e.getAxisValue(MotionEvent.AXIS_X)*100),
(int)(e.getAxisValue(MotionEvent.AXIS_Y)*100),
0, 0);
return true;
}
}
return false; return false;
} }

View File

@ -0,0 +1,25 @@
package org.scummvm.scummvm;
import android.content.Context;
import android.view.MotionEvent;
import android.view.InputDevice;
public class ScummVMEventsHoneycomb extends ScummVMEvents {
public ScummVMEventsHoneycomb(Context context, ScummVM scummvm, MouseHelper mouseHelper) {
super(context, scummvm, mouseHelper);
}
@Override
public boolean onGenericMotionEvent(MotionEvent e) {
if((e.getSource() & InputDevice.SOURCE_CLASS_JOYSTICK) != 0) {
_scummvm.pushEvent(JE_JOYSTICK, e.getAction(),
(int)(e.getAxisValue(MotionEvent.AXIS_X)*100),
(int)(e.getAxisValue(MotionEvent.AXIS_Y)*100),
0, 0);
return true;
}
return false;
}
}