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 { 31eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn public int findPointerIndex(MotionEvent event, int pointerId); 32eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn public int getPointerId(MotionEvent event, int pointerIndex); 33eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn public float getX(MotionEvent event, int pointerIndex); 34eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn public float getY(MotionEvent event, int pointerIndex); 351ce805e30800bf2852fa5421b7277a18e089ee31Adam Powell public int getPointerCount(MotionEvent event); 364dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public int getSource(MotionEvent event); 374dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar float getAxisValue(MotionEvent event, int axis); 384dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar float getAxisValue(MotionEvent event, int axis, int pointerIndex); 392196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev int getButtonState(MotionEvent event); 40eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn } 41eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn 42eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn /** 43eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * Interface implementation that doesn't use anything about v4 APIs. 44eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn */ 45eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn static class BaseMotionEventVersionImpl implements MotionEventVersionImpl { 46eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn @Override 47eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn public int findPointerIndex(MotionEvent event, int pointerId) { 484fb2aa8fb492e12ed48daa4f025e0bfac00a2514Adam Powell if (pointerId == 0) { 494fb2aa8fb492e12ed48daa4f025e0bfac00a2514Adam Powell // id 0 == index 0 and vice versa. 504fb2aa8fb492e12ed48daa4f025e0bfac00a2514Adam Powell return 0; 514fb2aa8fb492e12ed48daa4f025e0bfac00a2514Adam Powell } 52eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn return -1; 53eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn } 54eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn @Override 55eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn public int getPointerId(MotionEvent event, int pointerIndex) { 564fb2aa8fb492e12ed48daa4f025e0bfac00a2514Adam Powell if (pointerIndex == 0) { 574fb2aa8fb492e12ed48daa4f025e0bfac00a2514Adam Powell // index 0 == id 0 and vice versa. 584fb2aa8fb492e12ed48daa4f025e0bfac00a2514Adam Powell return 0; 594fb2aa8fb492e12ed48daa4f025e0bfac00a2514Adam Powell } 604fb2aa8fb492e12ed48daa4f025e0bfac00a2514Adam Powell throw new IndexOutOfBoundsException("Pre-Eclair does not support multiple pointers"); 61eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn } 62eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn @Override 63eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn public float getX(MotionEvent event, int pointerIndex) { 644fb2aa8fb492e12ed48daa4f025e0bfac00a2514Adam Powell if (pointerIndex == 0) { 654fb2aa8fb492e12ed48daa4f025e0bfac00a2514Adam Powell return event.getX(); 664fb2aa8fb492e12ed48daa4f025e0bfac00a2514Adam Powell } 674fb2aa8fb492e12ed48daa4f025e0bfac00a2514Adam Powell throw new IndexOutOfBoundsException("Pre-Eclair does not support multiple pointers"); 68eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn } 69eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn @Override 70eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn public float getY(MotionEvent event, int pointerIndex) { 714fb2aa8fb492e12ed48daa4f025e0bfac00a2514Adam Powell if (pointerIndex == 0) { 724fb2aa8fb492e12ed48daa4f025e0bfac00a2514Adam Powell return event.getY(); 734fb2aa8fb492e12ed48daa4f025e0bfac00a2514Adam Powell } 744fb2aa8fb492e12ed48daa4f025e0bfac00a2514Adam Powell throw new IndexOutOfBoundsException("Pre-Eclair does not support multiple pointers"); 75eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn } 761ce805e30800bf2852fa5421b7277a18e089ee31Adam Powell @Override 771ce805e30800bf2852fa5421b7277a18e089ee31Adam Powell public int getPointerCount(MotionEvent event) { 781ce805e30800bf2852fa5421b7277a18e089ee31Adam Powell return 1; 791ce805e30800bf2852fa5421b7277a18e089ee31Adam Powell } 804dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 814dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar @Override 824dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public int getSource(MotionEvent event) { 834dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar return InputDeviceCompat.SOURCE_UNKNOWN; 844dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar } 854dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 864dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar @Override 874dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public float getAxisValue(MotionEvent event, int axis) { 884dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar return 0; 894dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar } 904dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 914dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar @Override 924dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public float getAxisValue(MotionEvent event, int axis, int pointerIndex) { 934dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar return 0; 944dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar } 952196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev 962196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev @Override 972196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev public int getButtonState(MotionEvent event) { 982196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev return 0; 992196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev } 100eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn } 101eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn 102eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn /** 1034dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Interface implementation for devices with at least v5 APIs. 104eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn */ 1054dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar static class EclairMotionEventVersionImpl extends BaseMotionEventVersionImpl { 106eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn @Override 107eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn public int findPointerIndex(MotionEvent event, int pointerId) { 108eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn return MotionEventCompatEclair.findPointerIndex(event, pointerId); 109eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn } 110eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn @Override 111eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn public int getPointerId(MotionEvent event, int pointerIndex) { 112eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn return MotionEventCompatEclair.getPointerId(event, pointerIndex); 113eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn } 114eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn @Override 115eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn public float getX(MotionEvent event, int pointerIndex) { 116eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn return MotionEventCompatEclair.getX(event, pointerIndex); 117eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn } 118eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn @Override 119eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn public float getY(MotionEvent event, int pointerIndex) { 120eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn return MotionEventCompatEclair.getY(event, pointerIndex); 121eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn } 1221ce805e30800bf2852fa5421b7277a18e089ee31Adam Powell @Override 1231ce805e30800bf2852fa5421b7277a18e089ee31Adam Powell public int getPointerCount(MotionEvent event) { 1241ce805e30800bf2852fa5421b7277a18e089ee31Adam Powell return MotionEventCompatEclair.getPointerCount(event); 1251ce805e30800bf2852fa5421b7277a18e089ee31Adam Powell } 126eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn } 127eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn 128eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn /** 1294dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Interface implementation for devices with at least v8 APIs. 1304dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 1314dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar static class GingerbreadMotionEventVersionImpl extends EclairMotionEventVersionImpl { 1324dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar @Override 1334dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public int getSource(MotionEvent event) { 1344dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar return MotionEventCompatGingerbread.getSource(event); 1354dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar } 1364dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar } 1374dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 1384dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 1394dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Interface implementation for devices with at least v12 APIs. 1404dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 1414dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar static class HoneycombMr1MotionEventVersionImpl extends GingerbreadMotionEventVersionImpl { 1424dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 1434dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar @Override 1444dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public float getAxisValue(MotionEvent event, int axis) { 1454dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar return MotionEventCompatHoneycombMr1.getAxisValue(event, axis); 1464dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar } 1474dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 1484dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar @Override 1494dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public float getAxisValue(MotionEvent event, int axis, int pointerIndex) { 1504dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar return MotionEventCompatHoneycombMr1.getAxisValue(event, axis, pointerIndex); 1514dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar } 1524dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar } 1534dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 1542196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev 1552196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev /** 1562196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev * Interface implementation for devices with at least v14 APIs. 1572196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev */ 1582d93b42e3b4be926745a363e07b3724b7d650e6dYigit Boyar private static class ICSMotionEventVersionImpl extends HoneycombMr1MotionEventVersionImpl { 1592196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev @Override 1602196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev public int getButtonState(MotionEvent event) { 1612196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev return MotionEventCompatICS.getButtonState(event); 1622196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev } 1632196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev } 1642196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev 1654dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 166eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * Select the correct implementation to use for the current platform. 167eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn */ 168eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn static final MotionEventVersionImpl IMPL; 169eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn static { 1702196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev if (Build.VERSION.SDK_INT >= 14) { 1712196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev IMPL = new ICSMotionEventVersionImpl(); 1722196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev } else if (Build.VERSION.SDK_INT >= 12) { 1734dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar IMPL = new HoneycombMr1MotionEventVersionImpl(); 1744dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar } else if (Build.VERSION.SDK_INT >= 9) { 1754dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar IMPL = new GingerbreadMotionEventVersionImpl(); 1764dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar } else if (Build.VERSION.SDK_INT >= 5) { 177eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn IMPL = new EclairMotionEventVersionImpl(); 178eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn } else { 179eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn IMPL = new BaseMotionEventVersionImpl(); 180eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn } 181eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn } 182eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn 183eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn // ------------------------------------------------------------------- 184eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn 185eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn /** 186eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * Synonym for {@link MotionEvent#ACTION_MASK}. 187eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn */ 188eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn public static final int ACTION_MASK = 0xff; 189eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn 190eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn /** 191eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * Synonym for {@link MotionEvent#ACTION_POINTER_DOWN}. 192eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn */ 193eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn public static final int ACTION_POINTER_DOWN = 5; 194eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn 195eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn /** 196eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * Synonym for {@link MotionEvent#ACTION_POINTER_UP}. 197eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn */ 198eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn public static final int ACTION_POINTER_UP = 6; 199eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn 200eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn /** 201eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * Synonym for {@link MotionEvent#ACTION_HOVER_MOVE}. 202eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn */ 203eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn public static final int ACTION_HOVER_MOVE = 7; 204eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn 205eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn /** 206eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * Synonym for {@link MotionEvent#ACTION_SCROLL}. 207eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn */ 208eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn public static final int ACTION_SCROLL = 8; 209eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn 210eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn /** 211eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * Synonym for {@link MotionEvent#ACTION_POINTER_INDEX_MASK}. 212eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn */ 213eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn public static final int ACTION_POINTER_INDEX_MASK = 0xff00; 214eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn 215eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn /** 216eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * Synonym for {@link MotionEvent#ACTION_POINTER_INDEX_SHIFT}. 217eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn */ 218eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn public static final int ACTION_POINTER_INDEX_SHIFT = 8; 219eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn 220eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn /** 2214dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#ACTION_HOVER_ENTER}. 222dc5487a46b75572fa9120b22e89487c0178ff0a0Svetoslav Ganov */ 223dc5487a46b75572fa9120b22e89487c0178ff0a0Svetoslav Ganov public static final int ACTION_HOVER_ENTER = 9; 224dc5487a46b75572fa9120b22e89487c0178ff0a0Svetoslav Ganov 225dc5487a46b75572fa9120b22e89487c0178ff0a0Svetoslav Ganov /** 2264dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#ACTION_HOVER_EXIT}. 227dc5487a46b75572fa9120b22e89487c0178ff0a0Svetoslav Ganov */ 228dc5487a46b75572fa9120b22e89487c0178ff0a0Svetoslav Ganov public static final int ACTION_HOVER_EXIT = 10; 229dc5487a46b75572fa9120b22e89487c0178ff0a0Svetoslav Ganov 230dc5487a46b75572fa9120b22e89487c0178ff0a0Svetoslav Ganov /** 2314dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_X}. 2324dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 2334dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_X = 0; 2344dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 2354dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 2364dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_Y}. 2374dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 2384dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_Y = 1; 2394dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 2404dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 2414dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_PRESSURE}. 2424dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 2434dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_PRESSURE = 2; 2444dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 2454dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 2464dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_SIZE}. 2474dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 2484dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_SIZE = 3; 2494dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 2504dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 2514dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_TOUCH_MAJOR}. 2524dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 2534dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_TOUCH_MAJOR = 4; 2544dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 2554dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 2564dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_TOUCH_MINOR}. 2574dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 2584dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_TOUCH_MINOR = 5; 2594dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 2604dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 2614dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_TOOL_MAJOR}. 2624dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 2634dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_TOOL_MAJOR = 6; 2644dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 2654dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 2664dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_TOOL_MINOR}. 2674dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 2684dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_TOOL_MINOR = 7; 2694dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 2704dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 2714dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_ORIENTATION}. 2724dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 2734dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_ORIENTATION = 8; 2744dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 2754dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 2764dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_VSCROLL}. 2774dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 2784dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_VSCROLL = 9; 2794dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 2804dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 2814dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_HSCROLL}. 2824dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 2834dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_HSCROLL = 10; 2844dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 2854dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 2864dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_Z}. 2874dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 2884dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_Z = 11; 2894dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 2904dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 2914dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_RX}. 2924dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 2934dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_RX = 12; 2944dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 2954dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 2964dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_RY}. 2974dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 2984dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_RY = 13; 2994dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 3004dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 3014dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_RZ}. 3024dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 3034dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_RZ = 14; 3044dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 3054dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 3064dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_HAT_X}. 3074dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 3084dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_HAT_X = 15; 3094dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 3104dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 3114dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_HAT_Y}. 3124dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 3134dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_HAT_Y = 16; 3144dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 3154dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 3164dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_LTRIGGER}. 3174dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 3184dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_LTRIGGER = 17; 3194dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 3204dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 3214dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_RTRIGGER}. 3224dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 3234dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_RTRIGGER = 18; 3244dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 3254dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 3264dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_THROTTLE}. 3274dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 3284dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_THROTTLE = 19; 3294dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 3304dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 3314dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_RUDDER}. 3324dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 3334dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_RUDDER = 20; 3344dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 3354dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 3364dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_WHEEL}. 3374dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 3384dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_WHEEL = 21; 3394dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 3404dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 3414dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_GAS}. 3424dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 3434dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_GAS = 22; 3444dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 3454dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 3464dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_BRAKE}. 3474dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 3484dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_BRAKE = 23; 3494dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 3504dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 3514dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_DISTANCE}. 3524dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 3534dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_DISTANCE = 24; 3544dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 3554dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 3564dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_TILT}. 3574dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 3584dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_TILT = 25; 3594dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 3604dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 3616a867e166320b3727bb6d7e34bd3c55aa474d098Vladislav Kaznacheev * Synonym for {@link MotionEvent#AXIS_RELATIVE_X}. 3626a867e166320b3727bb6d7e34bd3c55aa474d098Vladislav Kaznacheev */ 3636a867e166320b3727bb6d7e34bd3c55aa474d098Vladislav Kaznacheev public static final int AXIS_RELATIVE_X = 27; 3646a867e166320b3727bb6d7e34bd3c55aa474d098Vladislav Kaznacheev 3656a867e166320b3727bb6d7e34bd3c55aa474d098Vladislav Kaznacheev /** 3666a867e166320b3727bb6d7e34bd3c55aa474d098Vladislav Kaznacheev * Synonym for {@link MotionEvent#AXIS_RELATIVE_Y}. 3676a867e166320b3727bb6d7e34bd3c55aa474d098Vladislav Kaznacheev */ 3686a867e166320b3727bb6d7e34bd3c55aa474d098Vladislav Kaznacheev public static final int AXIS_RELATIVE_Y = 28; 3696a867e166320b3727bb6d7e34bd3c55aa474d098Vladislav Kaznacheev 3706a867e166320b3727bb6d7e34bd3c55aa474d098Vladislav Kaznacheev /** 3714dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_GENERIC_1}. 3724dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 3734dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_GENERIC_1 = 32; 3744dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 3754dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 3764dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_GENERIC_2}. 3774dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 3784dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_GENERIC_2 = 33; 3794dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 3804dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 3814dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_GENERIC_3}. 3824dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 3834dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_GENERIC_3 = 34; 3844dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 3854dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 3864dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_GENERIC_4}. 3874dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 3884dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_GENERIC_4 = 35; 3894dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 3904dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 3914dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_GENERIC_5}. 3924dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 3934dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_GENERIC_5 = 36; 3944dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 3954dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 3964dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_GENERIC_6}. 3974dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 3984dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_GENERIC_6 = 37; 3994dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 4004dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 4014dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_GENERIC_7}. 4024dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 4034dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_GENERIC_7 = 38; 4044dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 4054dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 4064dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_GENERIC_8}. 4074dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 4084dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_GENERIC_8 = 39; 4094dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 4104dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 4114dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_GENERIC_9}. 4124dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 4134dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_GENERIC_9 = 40; 4144dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 4154dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 4164dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_GENERIC_10}. 4174dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 4184dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_GENERIC_10 = 41; 4194dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 4204dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 4214dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_GENERIC_11}. 4224dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 4234dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_GENERIC_11 = 42; 4244dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 4254dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 4264dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_GENERIC_12}. 4274dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 4284dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_GENERIC_12 = 43; 4294dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 4304dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 4314dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_GENERIC_13}. 4324dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 4334dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_GENERIC_13 = 44; 4344dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 4354dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 4364dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_GENERIC_14}. 4374dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 4384dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_GENERIC_14 = 45; 4394dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 4404dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 4414dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_GENERIC_15}. 4424dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 4434dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_GENERIC_15 = 46; 4444dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 4454dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 4464dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Synonym for {@link MotionEvent#AXIS_GENERIC_16}. 4474dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 4484dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static final int AXIS_GENERIC_16 = 47; 4494dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 4504dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 4512196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev * Synonym for {@link MotionEvent#BUTTON_PRIMARY}. 4522196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev */ 4532196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev public static final int BUTTON_PRIMARY = 1; 4542196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev 4552196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev /** 456eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * Call {@link MotionEvent#getAction}, returning only the {@link #ACTION_MASK} 457eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * portion. 458eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn */ 459eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn public static int getActionMasked(MotionEvent event) { 460eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn return event.getAction() & ACTION_MASK; 461eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn } 462eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn 463eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn /** 464eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * Call {@link MotionEvent#getAction}, returning only the pointer index 465eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * portion 466eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn */ 467eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn public static int getActionIndex(MotionEvent event) { 468eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn return (event.getAction() & ACTION_POINTER_INDEX_MASK) 469eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn >> ACTION_POINTER_INDEX_SHIFT; 470eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn } 471eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn 472eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn /** 473eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * Call {@link MotionEvent#findPointerIndex(int)}. 4740574ca37da4619afe4e26753f5a1b4de314b6565Svetoslav Ganov * If running on a pre-{@link android.os.Build.VERSION_CODES#ECLAIR} device, 475eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * does nothing and returns -1. 476eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn */ 477eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn public static int findPointerIndex(MotionEvent event, int pointerId) { 478eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn return IMPL.findPointerIndex(event, pointerId); 479eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn } 480eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn 481eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn /** 482eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * Call {@link MotionEvent#getPointerId(int)}. 4830574ca37da4619afe4e26753f5a1b4de314b6565Svetoslav Ganov * If running on a pre-{@link android.os.Build.VERSION_CODES#ECLAIR} device, 484eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * {@link IndexOutOfBoundsException} is thrown. 485eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn */ 486eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn public static int getPointerId(MotionEvent event, int pointerIndex) { 487eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn return IMPL.getPointerId(event, pointerIndex); 488eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn } 489eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn 490eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn /** 491eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * Call {@link MotionEvent#getX(int)}. 4920574ca37da4619afe4e26753f5a1b4de314b6565Svetoslav Ganov * If running on a pre-{@link android.os.Build.VERSION_CODES#ECLAIR} device, 493eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * {@link IndexOutOfBoundsException} is thrown. 494eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn */ 495eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn public static float getX(MotionEvent event, int pointerIndex) { 496eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn return IMPL.getX(event, pointerIndex); 497eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn } 498eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn 499eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn /** 500eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * Call {@link MotionEvent#getY(int)}. 5010574ca37da4619afe4e26753f5a1b4de314b6565Svetoslav Ganov * If running on a pre-{@link android.os.Build.VERSION_CODES#ECLAIR} device, 502eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn * {@link IndexOutOfBoundsException} is thrown. 503eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn */ 504eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn public static float getY(MotionEvent event, int pointerIndex) { 505eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn return IMPL.getY(event, pointerIndex); 506eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn } 5071ce805e30800bf2852fa5421b7277a18e089ee31Adam Powell 5081ce805e30800bf2852fa5421b7277a18e089ee31Adam Powell /** 5091ce805e30800bf2852fa5421b7277a18e089ee31Adam Powell * The number of pointers of data contained in this event. Always 5101ce805e30800bf2852fa5421b7277a18e089ee31Adam Powell * >= 1. 5111ce805e30800bf2852fa5421b7277a18e089ee31Adam Powell */ 5121ce805e30800bf2852fa5421b7277a18e089ee31Adam Powell public static int getPointerCount(MotionEvent event) { 5131ce805e30800bf2852fa5421b7277a18e089ee31Adam Powell return IMPL.getPointerCount(event); 5141ce805e30800bf2852fa5421b7277a18e089ee31Adam Powell } 5154dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 5164dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 5174dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Gets the source of the event. 5184dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * 5194dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * @return The event source or {@link InputDeviceCompat#SOURCE_UNKNOWN} if unknown. 5204dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 5214dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static int getSource(MotionEvent event) { 5224dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar return IMPL.getSource(event); 5234dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar } 5244dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 5254dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 5262196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev * Determines whether the event is from the given source. 5272196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev * @param source The input source to check against. 5282196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev * @return Whether the event is from the given source. 5292196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev */ 5302196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev public static boolean isFromSource(MotionEvent event, int source) { 5312196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev return (getSource(event) & source) == source; 5322196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev } 5332196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev 5342196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev /** 5354dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Get axis value for the first pointer index (may be an 5364dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * arbitrary pointer identifier). 5374dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * 5384dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * @param axis The axis identifier for the axis value to retrieve. 5394dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * 5404dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * @see #AXIS_X 5414dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * @see #AXIS_Y 5424dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 5434dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static float getAxisValue(MotionEvent event, int axis) { 5444dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar return IMPL.getAxisValue(event, axis); 5454dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar } 5464dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar 5474dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar /** 5484dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * Returns the value of the requested axis for the given pointer <em>index</em> 5494dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * (use {@link #getPointerId(MotionEvent, int)} to find the pointer identifier for this index). 5504dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * 5514dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * @param axis The axis identifier for the axis value to retrieve. 5524dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * @param pointerIndex Raw index of pointer to retrieve. Value may be from 0 5534dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * (the first pointer that is down) to {@link #getPointerCount(MotionEvent)}-1. 5544dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * @return The value of the axis, or 0 if the axis is not available. 5554dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * 5564dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * @see #AXIS_X 5574dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar * @see #AXIS_Y 5584dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar */ 5594dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar public static float getAxisValue(MotionEvent event, int axis, int pointerIndex) { 5604dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar return IMPL.getAxisValue(event, axis, pointerIndex); 5614dbd11ef441f637f32edd585248da0c914622a38Yigit Boyar } 562c5847d13e40f5d52459f5c0dab32dc08f1a9a683Chris Banes 5632196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev /** 5642196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev * 5652196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev * @param event 5662196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev * @return 5672196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev */ 5682196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev public static int getButtonState(MotionEvent event) { 5692196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev return IMPL.getButtonState(event); 5702196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev } 5712196f53d080334b4e5bb5c25fba1e40578f3588bVladislav Kaznacheev 572c5847d13e40f5d52459f5c0dab32dc08f1a9a683Chris Banes private MotionEventCompat() {} 573eedc67283a5a49dce86c625e54596dfdea9465a7Dianne Hackborn} 574