# HG changeset patch # User dbrady # Date 1390501156 28800 # Thu Jan 23 10:19:16 2014 -0800 # Node ID 0b4e6861ca0ca3f696b4ec573ba0c07a2c86fe09 # Parent 7e01e3908f41cd0864d8cb29171eedde24e02835 Sort joystick axis ranges by ID diff -r 7e01e3908f41 -r 0b4e6861ca0c android-project/src/org/libsdl/app/SDLActivity.java --- a/android-project/src/org/libsdl/app/SDLActivity.java Thu Jan 23 08:44:25 2014 -0300 +++ b/android-project/src/org/libsdl/app/SDLActivity.java Thu Jan 23 10:19:16 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,13 @@ 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(); + } + } private ArrayList mJoysticks; @@ -948,8 +957,10 @@ joystick.name = joystickDevice.getName(); joystick.axes = new ArrayList(); - for (InputDevice.MotionRange range : joystickDevice.getMotionRanges()) { - if ( (range.getSource() & InputDevice.SOURCE_CLASS_JOYSTICK) != 0) { + 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); } }