# HG changeset patch # User dbrady # Date 1390357785 28800 # Tue Jan 21 18:29:45 2014 -0800 # Node ID 9cc2389290215cb97381e9d496b9a5e9cfef61a8 # Parent 7d6a8c39f8a76e6c05b1a43ec75d567e45ebe70b Sort joystick axes diff -r 7d6a8c39f8a7 -r 9cc238929021 android-project/src/org/libsdl/app/SDLActivity.java --- a/android-project/src/org/libsdl/app/SDLActivity.java Tue Jan 21 17:43:54 2014 -0800 +++ b/android-project/src/org/libsdl/app/SDLActivity.java Tue Jan 21 18:29:45 2014 -0800 @@ -2,6 +2,8 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; import android.app.*; import android.content.*; @@ -922,6 +924,15 @@ public String name; public ArrayList axes; } + class RangeComparator implements Comparator + { + @Override + public int compare(InputDevice.MotionRange arg0, InputDevice.MotionRange arg1) { + return arg0.getAxis() < arg1.getAxis()? -1 + : arg0.getAxis() > arg1.getAxis()? 1 + : 0; + } + } private ArrayList mJoysticks; @@ -948,9 +959,11 @@ joystick.name = joystickDevice.getName(); joystick.axes = new ArrayList(); - for (InputDevice.MotionRange range : joystickDevice.getMotionRanges()) { - if ( (range.getSource() & InputDevice.SOURCE_CLASS_JOYSTICK) != 0) { - joystick.axes.add(range); + List 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); } }