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