MotionEventCompat.java revision 17d15d92db2288bd27b8710c68e5bc1b9b5945f0
1eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn/*
2eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * Copyright (C) 2011 The Android Open Source Project
3eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn *
4eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * Licensed under the Apache License, Version 2.0 (the "License");
5eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * you may not use this file except in compliance with the License.
6eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * You may obtain a copy of the License at
7eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn *
8eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn *      http://www.apache.org/licenses/LICENSE-2.0
9eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn *
10eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * Unless required by applicable law or agreed to in writing, software
11eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * distributed under the License is distributed on an "AS IS" BASIS,
12eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * See the License for the specific language governing permissions and
14eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * limitations under the License.
15eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn */
16eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn
17eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackbornpackage android.support.v4.view;
18eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn
194dbd11ef441f637f32edd585248da0c914622a38Yigit Boyarimport android.os.Build;
20eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackbornimport android.view.MotionEvent;
21eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn
22eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn/**
230574ca37da4619afe4e26753f5a1b4de314b6565Svetoslav Ganov * Helper for accessing features in {@link MotionEvent} introduced
240574ca37da4619afe4e26753f5a1b4de314b6565Svetoslav Ganov * after API level 4 in a backwards compatible fashion.
25eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn */
26c5847d13e40f5d52459f5c0dab32dc08f1a9a683Chris Banespublic final class MotionEventCompat {
27eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    /**
28eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     * Interface for the full API.
29eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     */
30eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    interface MotionEventVersionImpl {
314dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar        float getAxisValue(MotionEvent event, int axis);
324dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar        float getAxisValue(MotionEvent event, int axis, int pointerIndex);
332196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev        int getButtonState(MotionEvent event);
34eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    }
35eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn
36eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    /**
37eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     * Interface implementation that doesn't use anything about v4 APIs.
38eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     */
39eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    static class BaseMotionEventVersionImpl implements MotionEventVersionImpl {
40eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn        @Override
414dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar        public float getAxisValue(MotionEvent event, int axis) {
424dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar            return 0;
434dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar        }
444dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
454dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar        @Override
464dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar        public float getAxisValue(MotionEvent event, int axis, int pointerIndex) {
474dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar            return 0;
484dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar        }
492196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev
502196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev        @Override
512196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev        public int getButtonState(MotionEvent event) {
522196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev            return 0;
532196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev        }
54eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    }
55eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn
56eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    /**
574dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Interface implementation for devices with at least v12 APIs.
584dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
59f185f104c4786740765e549d535f9ba1052f96ccKirill Grouchnikov    static class HoneycombMr1MotionEventVersionImpl extends BaseMotionEventVersionImpl {
604dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
614dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar        @Override
624dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar        public float getAxisValue(MotionEvent event, int axis) {
634dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar            return MotionEventCompatHoneycombMr1.getAxisValue(event, axis);
644dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar        }
654dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
664dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar        @Override
674dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar        public float getAxisValue(MotionEvent event, int axis, int pointerIndex) {
684dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar            return MotionEventCompatHoneycombMr1.getAxisValue(event, axis, pointerIndex);
694dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar        }
704dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    }
714dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
722196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev
732196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev    /**
742196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev     * Interface implementation for devices with at least v14 APIs.
752196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev     */
762d93b42e3b4be926745a363e07b3724b7d650e6dYigit Boyar    private static class ICSMotionEventVersionImpl extends HoneycombMr1MotionEventVersionImpl {
772196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev        @Override
782196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev        public int getButtonState(MotionEvent event) {
792196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev            return MotionEventCompatICS.getButtonState(event);
802196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev        }
812196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev    }
822196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev
834dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
84eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     * Select the correct implementation to use for the current platform.
85eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     */
86eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    static final MotionEventVersionImpl IMPL;
87eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    static {
882196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev        if (Build.VERSION.SDK_INT >= 14) {
892196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev            IMPL = new ICSMotionEventVersionImpl();
902196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev        } else if (Build.VERSION.SDK_INT >= 12) {
914dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar            IMPL = new HoneycombMr1MotionEventVersionImpl();
92eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn        } else {
93eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn            IMPL = new BaseMotionEventVersionImpl();
94eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn        }
95eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    }
96eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn
97eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    // -------------------------------------------------------------------
98eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn
99eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    /**
100eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     * Synonym for {@link MotionEvent#ACTION_MASK}.
101eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     */
102eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    public static final int ACTION_MASK = 0xff;
103eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn
104eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    /**
105eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     * Synonym for {@link MotionEvent#ACTION_POINTER_DOWN}.
106eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     */
107eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    public static final int ACTION_POINTER_DOWN = 5;
108eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn
109eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    /**
110eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     * Synonym for {@link MotionEvent#ACTION_POINTER_UP}.
111eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     */
112eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    public static final int ACTION_POINTER_UP = 6;
113eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn
114eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    /**
115eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     * Synonym for {@link MotionEvent#ACTION_HOVER_MOVE}.
116eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     */
117eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    public static final int ACTION_HOVER_MOVE = 7;
118eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn
119eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    /**
120eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     * Synonym for {@link MotionEvent#ACTION_SCROLL}.
121eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     */
122eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    public static final int ACTION_SCROLL = 8;
123eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn
124eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    /**
125eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     * Synonym for {@link MotionEvent#ACTION_POINTER_INDEX_MASK}.
126eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     */
127eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    public static final int ACTION_POINTER_INDEX_MASK  = 0xff00;
128eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn
129eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    /**
130eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     * Synonym for {@link MotionEvent#ACTION_POINTER_INDEX_SHIFT}.
131eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     */
132eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    public static final int ACTION_POINTER_INDEX_SHIFT = 8;
133eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn
134eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    /**
1354dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#ACTION_HOVER_ENTER}.
136dc5487a46b75572fa9120b22e89487c0178ff0a0Svetoslav Ganov     */
137dc5487a46b75572fa9120b22e89487c0178ff0a0Svetoslav Ganov    public static final int ACTION_HOVER_ENTER = 9;
138dc5487a46b75572fa9120b22e89487c0178ff0a0Svetoslav Ganov
139dc5487a46b75572fa9120b22e89487c0178ff0a0Svetoslav Ganov    /**
1404dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#ACTION_HOVER_EXIT}.
141dc5487a46b75572fa9120b22e89487c0178ff0a0Svetoslav Ganov     */
142dc5487a46b75572fa9120b22e89487c0178ff0a0Svetoslav Ganov    public static final int ACTION_HOVER_EXIT = 10;
143dc5487a46b75572fa9120b22e89487c0178ff0a0Svetoslav Ganov
144dc5487a46b75572fa9120b22e89487c0178ff0a0Svetoslav Ganov    /**
1454dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_X}.
1464dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
1474dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_X = 0;
1484dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
1494dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
1504dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_Y}.
1514dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
1524dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_Y = 1;
1534dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
1544dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
1554dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_PRESSURE}.
1564dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
1574dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_PRESSURE = 2;
1584dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
1594dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
1604dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_SIZE}.
1614dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
1624dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_SIZE = 3;
1634dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
1644dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
1654dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_TOUCH_MAJOR}.
1664dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
1674dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_TOUCH_MAJOR = 4;
1684dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
1694dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
1704dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_TOUCH_MINOR}.
1714dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
1724dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_TOUCH_MINOR = 5;
1734dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
1744dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
1754dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_TOOL_MAJOR}.
1764dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
1774dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_TOOL_MAJOR = 6;
1784dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
1794dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
1804dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_TOOL_MINOR}.
1814dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
1824dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_TOOL_MINOR = 7;
1834dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
1844dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
1854dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_ORIENTATION}.
1864dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
1874dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_ORIENTATION = 8;
1884dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
1894dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
1904dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_VSCROLL}.
1914dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
1924dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_VSCROLL = 9;
1934dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
1944dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
1954dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_HSCROLL}.
1964dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
1974dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_HSCROLL = 10;
1984dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
1994dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
2004dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_Z}.
2014dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
2024dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_Z = 11;
2034dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
2044dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
2054dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_RX}.
2064dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
2074dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_RX = 12;
2084dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
2094dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
2104dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_RY}.
2114dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
2124dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_RY = 13;
2134dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
2144dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
2154dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_RZ}.
2164dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
2174dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_RZ = 14;
2184dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
2194dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
2204dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_HAT_X}.
2214dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
2224dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_HAT_X = 15;
2234dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
2244dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
2254dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_HAT_Y}.
2264dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
2274dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_HAT_Y = 16;
2284dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
2294dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
2304dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_LTRIGGER}.
2314dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
2324dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_LTRIGGER = 17;
2334dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
2344dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
2354dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_RTRIGGER}.
2364dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
2374dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_RTRIGGER = 18;
2384dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
2394dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
2404dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_THROTTLE}.
2414dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
2424dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_THROTTLE = 19;
2434dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
2444dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
2454dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_RUDDER}.
2464dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
2474dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_RUDDER = 20;
2484dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
2494dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
2504dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_WHEEL}.
2514dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
2524dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_WHEEL = 21;
2534dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
2544dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
2554dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_GAS}.
2564dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
2574dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_GAS = 22;
2584dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
2594dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
2604dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_BRAKE}.
2614dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
2624dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_BRAKE = 23;
2634dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
2644dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
2654dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_DISTANCE}.
2664dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
2674dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_DISTANCE = 24;
2684dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
2694dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
2704dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_TILT}.
2714dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
2724dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_TILT = 25;
2734dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
2744dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
2756a867e166320b3727bb6d7e34bd3c55aa474d098Vladislav Kaznacheev     * Synonym for {@link MotionEvent#AXIS_RELATIVE_X}.
2766a867e166320b3727bb6d7e34bd3c55aa474d098Vladislav Kaznacheev     */
2776a867e166320b3727bb6d7e34bd3c55aa474d098Vladislav Kaznacheev    public static final int AXIS_RELATIVE_X = 27;
2786a867e166320b3727bb6d7e34bd3c55aa474d098Vladislav Kaznacheev
2796a867e166320b3727bb6d7e34bd3c55aa474d098Vladislav Kaznacheev    /**
2806a867e166320b3727bb6d7e34bd3c55aa474d098Vladislav Kaznacheev     * Synonym for {@link MotionEvent#AXIS_RELATIVE_Y}.
2816a867e166320b3727bb6d7e34bd3c55aa474d098Vladislav Kaznacheev     */
2826a867e166320b3727bb6d7e34bd3c55aa474d098Vladislav Kaznacheev    public static final int AXIS_RELATIVE_Y = 28;
2836a867e166320b3727bb6d7e34bd3c55aa474d098Vladislav Kaznacheev
2846a867e166320b3727bb6d7e34bd3c55aa474d098Vladislav Kaznacheev    /**
2854dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_GENERIC_1}.
2864dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
2874dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_GENERIC_1 = 32;
2884dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
2894dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
2904dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_GENERIC_2}.
2914dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
2924dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_GENERIC_2 = 33;
2934dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
2944dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
2954dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_GENERIC_3}.
2964dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
2974dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_GENERIC_3 = 34;
2984dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
2994dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
3004dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_GENERIC_4}.
3014dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
3024dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_GENERIC_4 = 35;
3034dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
3044dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
3054dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_GENERIC_5}.
3064dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
3074dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_GENERIC_5 = 36;
3084dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
3094dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
3104dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_GENERIC_6}.
3114dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
3124dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_GENERIC_6 = 37;
3134dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
3144dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
3154dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_GENERIC_7}.
3164dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
3174dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_GENERIC_7 = 38;
3184dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
3194dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
3204dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_GENERIC_8}.
3214dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
3224dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_GENERIC_8 = 39;
3234dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
3244dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
3254dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_GENERIC_9}.
3264dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
3274dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_GENERIC_9 = 40;
3284dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
3294dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
3304dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_GENERIC_10}.
3314dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
3324dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_GENERIC_10 = 41;
3334dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
3344dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
3354dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_GENERIC_11}.
3364dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
3374dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_GENERIC_11 = 42;
3384dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
3394dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
3404dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_GENERIC_12}.
3414dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
3424dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_GENERIC_12 = 43;
3434dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
3444dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
3454dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_GENERIC_13}.
3464dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
3474dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_GENERIC_13 = 44;
3484dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
3494dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
3504dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_GENERIC_14}.
3514dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
3524dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_GENERIC_14 = 45;
3534dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
3544dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
3554dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_GENERIC_15}.
3564dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
3574dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_GENERIC_15 = 46;
3584dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
3594dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
3604dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Synonym for {@link MotionEvent#AXIS_GENERIC_16}.
3614dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
3624dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static final int AXIS_GENERIC_16 = 47;
3634dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
3644dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
3652196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev     * Synonym for {@link MotionEvent#BUTTON_PRIMARY}.
3662196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev     */
3672196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev    public static final int BUTTON_PRIMARY = 1;
3682196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev
3692196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev    /**
370eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     * Call {@link MotionEvent#getAction}, returning only the {@link #ACTION_MASK}
371eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     * portion.
372eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     */
373eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    public static int getActionMasked(MotionEvent event) {
374eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn        return event.getAction() & ACTION_MASK;
375eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    }
376eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn
377eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    /**
378eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     * Call {@link MotionEvent#getAction}, returning only the pointer index
379eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     * portion
380eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     */
381eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    public static int getActionIndex(MotionEvent event) {
382eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn        return (event.getAction() & ACTION_POINTER_INDEX_MASK)
383eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn                >> ACTION_POINTER_INDEX_SHIFT;
384eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    }
385eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn
386eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    /**
387eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     * Call {@link MotionEvent#findPointerIndex(int)}.
388f185f104c4786740765e549d535f9ba1052f96ccKirill Grouchnikov     *
38917d15d92db2288bd27b8710c68e5bc1b9b5945f0Kirill Grouchnikov     * @deprecated Call {@link MotionEvent#findPointerIndex(int)} directly. This method will be
39017d15d92db2288bd27b8710c68e5bc1b9b5945f0Kirill Grouchnikov     * removed in a future release.
391eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     */
392f185f104c4786740765e549d535f9ba1052f96ccKirill Grouchnikov    @Deprecated
393eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    public static int findPointerIndex(MotionEvent event, int pointerId) {
394f185f104c4786740765e549d535f9ba1052f96ccKirill Grouchnikov        return event.findPointerIndex(pointerId);
395eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    }
396eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn
397eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    /**
398eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     * Call {@link MotionEvent#getPointerId(int)}.
399f185f104c4786740765e549d535f9ba1052f96ccKirill Grouchnikov     *
40017d15d92db2288bd27b8710c68e5bc1b9b5945f0Kirill Grouchnikov     * @deprecated Call {@link MotionEvent#getPointerId(int)} directly. This method will be
40117d15d92db2288bd27b8710c68e5bc1b9b5945f0Kirill Grouchnikov     * removed in a future release.
402eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     */
403f185f104c4786740765e549d535f9ba1052f96ccKirill Grouchnikov    @Deprecated
404eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    public static int getPointerId(MotionEvent event, int pointerIndex) {
405f185f104c4786740765e549d535f9ba1052f96ccKirill Grouchnikov        return event.getPointerId(pointerIndex);
406eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    }
407eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn
408eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    /**
409eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     * Call {@link MotionEvent#getX(int)}.
410f185f104c4786740765e549d535f9ba1052f96ccKirill Grouchnikov     *
41117d15d92db2288bd27b8710c68e5bc1b9b5945f0Kirill Grouchnikov     * @deprecated Call {@link MotionEvent#getX()} directly. This method will be
41217d15d92db2288bd27b8710c68e5bc1b9b5945f0Kirill Grouchnikov     * removed in a future release.
413eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     */
414f185f104c4786740765e549d535f9ba1052f96ccKirill Grouchnikov    @Deprecated
415eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    public static float getX(MotionEvent event, int pointerIndex) {
416f185f104c4786740765e549d535f9ba1052f96ccKirill Grouchnikov        return event.getX(pointerIndex);
417eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    }
418eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn
419eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    /**
420eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     * Call {@link MotionEvent#getY(int)}.
421f185f104c4786740765e549d535f9ba1052f96ccKirill Grouchnikov     *
42217d15d92db2288bd27b8710c68e5bc1b9b5945f0Kirill Grouchnikov     * @deprecated Call {@link MotionEvent#getY()} directly. This method will be
42317d15d92db2288bd27b8710c68e5bc1b9b5945f0Kirill Grouchnikov     * removed in a future release.
424eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn     */
425f185f104c4786740765e549d535f9ba1052f96ccKirill Grouchnikov    @Deprecated
426eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    public static float getY(MotionEvent event, int pointerIndex) {
427f185f104c4786740765e549d535f9ba1052f96ccKirill Grouchnikov        return event.getY(pointerIndex);
428eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn    }
4291ce805e30800bf2852fa5421b7277a18e089ee31Adam Powell
4301ce805e30800bf2852fa5421b7277a18e089ee31Adam Powell    /**
4311ce805e30800bf2852fa5421b7277a18e089ee31Adam Powell     * The number of pointers of data contained in this event.  Always
432f185f104c4786740765e549d535f9ba1052f96ccKirill Grouchnikov     *
43317d15d92db2288bd27b8710c68e5bc1b9b5945f0Kirill Grouchnikov     * @deprecated Call {@link MotionEvent#getPointerCount()} directly. This method will be
43417d15d92db2288bd27b8710c68e5bc1b9b5945f0Kirill Grouchnikov     * removed in a future release.
4351ce805e30800bf2852fa5421b7277a18e089ee31Adam Powell     */
436f185f104c4786740765e549d535f9ba1052f96ccKirill Grouchnikov    @Deprecated
4371ce805e30800bf2852fa5421b7277a18e089ee31Adam Powell    public static int getPointerCount(MotionEvent event) {
438f185f104c4786740765e549d535f9ba1052f96ccKirill Grouchnikov        return event.getPointerCount();
4391ce805e30800bf2852fa5421b7277a18e089ee31Adam Powell    }
4404dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
4414dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
4424dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Gets the source of the event.
4434dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     *
4444dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * @return The event source or {@link InputDeviceCompat#SOURCE_UNKNOWN} if unknown.
44517d15d92db2288bd27b8710c68e5bc1b9b5945f0Kirill Grouchnikov     * @deprecated Call {@link MotionEvent#getSource()} directly. This method will be
44617d15d92db2288bd27b8710c68e5bc1b9b5945f0Kirill Grouchnikov     * removed in a future release.
4474dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
448f185f104c4786740765e549d535f9ba1052f96ccKirill Grouchnikov    @Deprecated
4494dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static int getSource(MotionEvent event) {
450f185f104c4786740765e549d535f9ba1052f96ccKirill Grouchnikov        return event.getSource();
4514dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    }
4524dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
4534dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
4542196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev     * Determines whether the event is from the given source.
4552196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev     * @param source The input source to check against.
4562196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev     * @return Whether the event is from the given source.
4572196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev     */
4582196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev    public static boolean isFromSource(MotionEvent event, int source) {
4591b3e9466b4c4d72f28bb4448672ef8bab19b6f3eKirill Grouchnikov        return (event.getSource() & source) == source;
4602196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev    }
4612196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev
4622196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev    /**
4634dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Get axis value for the first pointer index (may be an
4644dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * arbitrary pointer identifier).
4654dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     *
4664dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * @param axis The axis identifier for the axis value to retrieve.
4674dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     *
4684dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * @see #AXIS_X
4694dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * @see #AXIS_Y
4704dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
4714dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static float getAxisValue(MotionEvent event, int axis) {
4724dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar        return IMPL.getAxisValue(event, axis);
4734dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    }
4744dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar
4754dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    /**
4764dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * Returns the value of the requested axis for the given pointer <em>index</em>
4774dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * (use {@link #getPointerId(MotionEvent, int)} to find the pointer identifier for this index).
4784dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     *
4794dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * @param axis The axis identifier for the axis value to retrieve.
4804dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * @param pointerIndex Raw index of pointer to retrieve.  Value may be from 0
4814dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * (the first pointer that is down) to {@link #getPointerCount(MotionEvent)}-1.
4824dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * @return The value of the axis, or 0 if the axis is not available.
4834dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     *
4844dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * @see #AXIS_X
4854dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     * @see #AXIS_Y
4864dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar     */
4874dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    public static float getAxisValue(MotionEvent event, int axis, int pointerIndex) {
4884dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar        return IMPL.getAxisValue(event, axis, pointerIndex);
4894dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar    }
490c5847d13e40f5d52459f5c0dab32dc08f1a9a683Chris Banes
4912196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev    /**
4922196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev     *
4932196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev     * @param event
4942196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev     * @return
4952196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev     */
4962196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev    public static int getButtonState(MotionEvent event) {
4972196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev        return IMPL.getButtonState(event);
4982196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev    }
4992196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev
500c5847d13e40f5d52459f5c0dab32dc08f1a9a683Chris Banes    private MotionEventCompat() {}
501eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn}
502