OSDN Git Service

Update samples to use new getMotionRanges() API.
authorJeff Brown <jeffbrown@google.com>
Wed, 9 Mar 2011 01:34:45 +0000 (17:34 -0800)
committerJeff Brown <jeffbrown@google.com>
Wed, 9 Mar 2011 01:35:22 +0000 (17:35 -0800)
Change-Id: I6b67b7cd1f739b5b52ac32745f52bf0a092480a0

samples/ApiDemos/src/com/example/android/apis/view/GameControllerInput.java
samples/ApiDemos/src/com/example/android/apis/view/GameView.java

index 8c0db32..8aea949 100644 (file)
@@ -33,6 +33,7 @@ import android.view.LayoutInflater;
 import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewGroup;
+import android.view.InputDevice.MotionRange;
 import android.widget.AdapterView;
 import android.widget.BaseAdapter;
 import android.widget.ListView;
@@ -152,8 +153,24 @@ public class GameControllerInput extends Activity {
 
         public InputDeviceState(InputDevice device) {
             mDevice = device;
-            mAxes = device.getMotionAxes();
-            mAxisValues = new float[mAxes.length];
+
+            int numAxes = 0;
+            for (MotionRange range : device.getMotionRanges()) {
+                if ((range.getSource() & InputDevice.SOURCE_CLASS_JOYSTICK) != 0) {
+                    numAxes += 1;
+                }
+            }
+
+            mAxes = new int[numAxes];
+            mAxisValues = new float[numAxes];
+            int i = 0;
+            for (MotionRange range : device.getMotionRanges()) {
+                if ((range.getSource() & InputDevice.SOURCE_CLASS_JOYSTICK) != 0) {
+                    numAxes += 1;
+                }
+                mAxes[i++] = range.getAxis();
+            }
+
             mKeys = new SparseIntArray();
         }
 
index 1791029..9fe236c 100644 (file)
@@ -264,7 +264,7 @@ public class GameView extends View {
 
     private static float getCenteredAxis(MotionEvent event, InputDevice device,
             int axis, int historyPos) {
-        final InputDevice.MotionRange range = device.getMotionRange(axis);
+        final InputDevice.MotionRange range = device.getMotionRange(axis, event.getSource());
         if (range != null) {
             final float flat = range.getFlat();
             final float value = historyPos < 0 ? event.getAxisValue(axis)