mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-10-10 03:46:27 +00:00
Bug 2358 - [Android] Sort joystick axes - Fix by David Brady
This commit is contained in:
@@ -2,6 +2,9 @@ package org.libsdl.app;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
import android.app.*;
|
||||
import android.content.*;
|
||||
@@ -922,6 +925,13 @@ class SDLJoystickHandler_API12 extends SDLJoystickHandler {
|
||||
public String name;
|
||||
public ArrayList<InputDevice.MotionRange> axes;
|
||||
}
|
||||
class RangeComparator implements Comparator<InputDevice.MotionRange>
|
||||
{
|
||||
@Override
|
||||
public int compare(InputDevice.MotionRange arg0, InputDevice.MotionRange arg1) {
|
||||
return arg0.getAxis() - arg1.getAxis();
|
||||
}
|
||||
}
|
||||
|
||||
private ArrayList<SDLJoystick> mJoysticks;
|
||||
|
||||
@@ -948,8 +958,10 @@ class SDLJoystickHandler_API12 extends SDLJoystickHandler {
|
||||
joystick.name = joystickDevice.getName();
|
||||
joystick.axes = new ArrayList<InputDevice.MotionRange>();
|
||||
|
||||
for (InputDevice.MotionRange range : joystickDevice.getMotionRanges()) {
|
||||
if ( (range.getSource() & InputDevice.SOURCE_CLASS_JOYSTICK) != 0) {
|
||||
List<InputDevice.MotionRange> ranges = joystickDevice.getMotionRanges();
|
||||
Collections.sort(ranges, new RangeComparator());
|
||||
for (InputDevice.MotionRange range : ranges ) {
|
||||
if ( (range.getSource() & InputDevice.SOURCE_CLASS_JOYSTICK) != 0 ) {
|
||||
joystick.axes.add(range);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user