/*
 +Copyright 2014 Appium contributors
 +Copyright 2014 Software Freedom Conservancy
 +
 +Licensed under the Apache License, Version 2.0 (the "License");
 +you may not use this file except in compliance with the License.
 +You may obtain a copy of the License at
 +
 +     http://www.apache.org/licenses/LICENSE-2.0
 +
 +Unless required by applicable law or agreed to in writing, software
 +distributed under the License is distributed on an "AS IS" BASIS,
 +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 +See the License for the specific language governing permissions and
 +limitations under the License.
 + */

package io.appium.java_client.android;

/**
 * Some common key codes for Android Key Events
 */
public interface AndroidKeyCode {

  int BACK = 4;
  int BACKSPACE = 67;
  int DEL = 67;
  int ENTER = 66;
  int HOME = 3;
  int MENU = 82;
  int SETTINGS = 176;
  int SPACE = 62;

  // getAction() value: the key has been pressed down.
  // (0x00000000)
  int ACTION_DOWN = 0;

  // getAction() value: multiple duplicate key events have occurred in a row, or a complex string is being delivered. If the key code is not {#link KEYCODE_UNKNOWN then the {#link getRepeatCount() method returns the number of times the given key code should be executed. Otherwise, if the key code is KEYCODE_UNKNOWN, then this is a sequence of characters as returned by getCharacters().
  // (0x00000002)
  int ACTION_MULTIPLE = 2;

  // getAction() value: the key has been released.
  // (0x00000001)
  int ACTION_UP = 1;

  // When associated with up key events, this indicates that the key press has been canceled. Typically this is used with virtual touch screen keys, where the user can slide from the virtual key area on to the display: in that case, the application will receive a canceled up event and should not perform the action normally associated with the key. Note that for this to work, the application can not perform an action for a key until it receives an up or the long press timeout has expired.
  // (0x00000020)
  int FLAG_CANCELED = 32;

  // Set when a key event has FLAG_CANCELED set because a long press action was executed while it was down.
  // (0x00000100)
  int FLAG_CANCELED_LONG_PRESS = 256;

  // This mask is used for compatibility, to identify enter keys that are coming from an IME whose enter key has been auto-labelled "next" or "done". This allows TextView to dispatch these as normal enter keys for old applications, but still do the appropriate action when receiving them.
  // (0x00000010)
  int FLAG_EDITOR_ACTION = 16;

  // Set when a key event has been synthesized to implement default behavior for an event that the application did not handle. Fallback key events are generated by unhandled trackball motions (to emulate a directional keypad) and by certain unhandled key presses that are declared in the key map (such as special function numeric keypad keys when numlock is off).
  // (0x00000400)
  int FLAG_FALLBACK = 1024;

  // This mask is set if an event was known to come from a trusted part of the system. That is, the event is known to come from the user, and could not have been spoofed by a third party component.
  // (0x00000008)
  int FLAG_FROM_SYSTEM = 8;

  // This mask is set if we don't want the key event to cause us to leave touch mode.
  // (0x00000004)
  int FLAG_KEEP_TOUCH_MODE = 4;

  // This flag is set for the first key repeat that occurs after the long press timeout.
  // (0x00000080)
  int FLAG_LONG_PRESS = 128;

  // This mask is set if the key event was generated by a software keyboard.
  // (0x00000002)
  int FLAG_SOFT_KEYBOARD = 2;

  // Set for ACTION_UP when this event's key code is still being tracked from its initial down. That is, somebody requested that tracking started on the key down and a long press has not caused the tracking to be canceled.
  // (0x00000200)
  int FLAG_TRACKING = 512;

  // This key event was generated by a virtual (on-screen) hard key area. Typically this is an area of the touchscreen, outside of the regular display, dedicated to "hardware" buttons.
  // (0x00000040)
  int FLAG_VIRTUAL_HARD_KEY = 64;

  // This constant was deprecated in API level 20.
  // This flag will never be set by the system since the system consumes all wake keys itself.
  // This mask is set if the device woke because of this key event.
  // (0x00000001)
  int FLAG_WOKE_HERE = 1;

  // Key code constant: '0' key.
  // (0x00000007)
  int KEYCODE_0 = 7;

  // Key code constant: '1' key.
  // (0x00000008)
  int KEYCODE_1 = 8;

  // Key code constant: '11' key.
  // (0x000000e3)
  int KEYCODE_11 = 227;

  // Key code constant: '12' key.
  // (0x000000e4)
  int KEYCODE_12 = 228;

  // Key code constant: '2' key.
  // (0x00000009)
  int KEYCODE_2 = 9;

  // Key code constant: '3' key.
  // (0x0000000a)
  int KEYCODE_3 = 10;

  // Key code constant: 3D Mode key. Toggles the display between 2D and 3D mode.
  // (0x000000ce)
  int KEYCODE_3D_MODE = 206;

  // Key code constant: '4' key.
  // (0x0000000b)
  int KEYCODE_4 = 11;

  // Key code constant: '5' key.
  // (0x0000000c)
  int KEYCODE_5 = 12;

  // Key code constant: '6' key.
  // (0x0000000d)
  int KEYCODE_6 = 13;

  // Key code constant: '7' key.
  // (0x0000000e)
  int KEYCODE_7 = 14;

  // Key code constant: '8' key.
  // (0x0000000f)
  int KEYCODE_8 = 15;

  // Key code constant: '9' key.
  // (0x00000010)
  int KEYCODE_9 = 16;

  // Key code constant: 'A' key.
  // (0x0000001d)
  int KEYCODE_A = 29;

  // Key code constant: Left Alt modifier key.
  // (0x00000039)
  int KEYCODE_ALT_LEFT = 57;

  // Key code constant: Right Alt modifier key.
  // (0x0000003a)
  int KEYCODE_ALT_RIGHT = 58;

  // Key code constant: ''' (apostrophe) key.
  // (0x0000004b)
  int KEYCODE_APOSTROPHE = 75;

  // Key code constant: App switch key. Should bring up the application switcher dialog.
  // (0x000000bb)
  int KEYCODE_APP_SWITCH = 187;

  // Key code constant: Assist key. Launches the global assist activity. Not delivered to applications.
  // (0x000000db)
  int KEYCODE_ASSIST = 219;

  // Key code constant: '@' key.
  // (0x0000004d)
  int KEYCODE_AT = 77;

  // Key code constant: A/V Receiver input key. On TV remotes, switches the input mode on an external A/V Receiver.
  // (0x000000b6)
  int KEYCODE_AVR_INPUT = 182;

  // Key code constant: A/V Receiver power key. On TV remotes, toggles the power on an external A/V Receiver.
  // (0x000000b5)
  int KEYCODE_AVR_POWER = 181;

  // Key code constant: 'B' key.
  // (0x0000001e)
  int KEYCODE_B = 30;

  // Key code constant: Back key.
  // (0x00000004)
  int KEYCODE_BACK = 4;

  // Key code constant: '\' key.
  // (0x00000049)
  int KEYCODE_BACKSLASH = 73;

  // Key code constant: Bookmark key. On some TV remotes, bookmarks content or web pages.
  // (0x000000ae)
  int KEYCODE_BOOKMARK = 174;

  // Key code constant: Break / Pause key.
  // (0x00000079)
  int KEYCODE_BREAK = 121;

  // Key code constant: Brightness Down key. Adjusts the screen brightness down.
  // (0x000000dc)
  int KEYCODE_BRIGHTNESS_DOWN = 220;

  // Key code constant: Brightness Up key. Adjusts the screen brightness up.
  // (0x000000dd)
  int KEYCODE_BRIGHTNESS_UP = 221;

  // Key code constant: Generic Game Pad Button #1.
  // (0x000000bc)
  int KEYCODE_BUTTON_1 = 188;

  // Key code constant: Generic Game Pad Button #10.
  // (0x000000c5)
  int KEYCODE_BUTTON_10 = 197;

  // Key code constant: Generic Game Pad Button #11.
  // (0x000000c6)
  int KEYCODE_BUTTON_11 = 198;

  // Key code constant: Generic Game Pad Button #12.
  // (0x000000c7)
  int KEYCODE_BUTTON_12 = 199;

  // Key code constant: Generic Game Pad Button #13.
  // (0x000000c8)
  int KEYCODE_BUTTON_13 = 200;

  // Key code constant: Generic Game Pad Button #14.
  // (0x000000c9)
  int KEYCODE_BUTTON_14 = 201;

  // Key code constant: Generic Game Pad Button #15.
  // (0x000000ca)
  int KEYCODE_BUTTON_15 = 202;

  // Key code constant: Generic Game Pad Button #16.
  // (0x000000cb)
  int KEYCODE_BUTTON_16 = 203;

  // Key code constant: Generic Game Pad Button #2.
  // (0x000000bd)
  int KEYCODE_BUTTON_2 = 189;

  // Key code constant: Generic Game Pad Button #3.
  // (0x000000be)
  int KEYCODE_BUTTON_3 = 190;

  // Key code constant: Generic Game Pad Button #4.
  // (0x000000bf)
  int KEYCODE_BUTTON_4 = 191;

  // Key code constant: Generic Game Pad Button #5.
  // (0x000000c0)
  int KEYCODE_BUTTON_5 = 192;

  // Key code constant: Generic Game Pad Button #6.
  // (0x000000c1)
  int KEYCODE_BUTTON_6 = 193;

  // Key code constant: Generic Game Pad Button #7.
  // (0x000000c2)
  int KEYCODE_BUTTON_7 = 194;

  // Key code constant: Generic Game Pad Button #8.
  // (0x000000c3)
  int KEYCODE_BUTTON_8 = 195;

  // Key code constant: Generic Game Pad Button #9.
  // (0x000000c4)
  int KEYCODE_BUTTON_9 = 196;

  // Key code constant: A Button key. On a game controller, the A button should be either the button labeled A or the first button on the bottom row of controller buttons.
  // (0x00000060)
  int KEYCODE_BUTTON_A = 96;

  // Key code constant: B Button key. On a game controller, the B button should be either the button labeled B or the second button on the bottom row of controller buttons.
  // (0x00000061)
  int KEYCODE_BUTTON_B = 97;

  // Key code constant: C Button key. On a game controller, the C button should be either the button labeled C or the third button on the bottom row of controller buttons.
  // (0x00000062)
  int KEYCODE_BUTTON_C = 98;

  // Key code constant: L1 Button key. On a game controller, the L1 button should be either the button labeled L1 (or L) or the top left trigger button.
  // (0x00000066)
  int KEYCODE_BUTTON_L1 = 102;

  // Key code constant: L2 Button key. On a game controller, the L2 button should be either the button labeled L2 or the bottom left trigger button.
  // (0x00000068)
  int KEYCODE_BUTTON_L2 = 104;

  // Key code constant: Mode Button key. On a game controller, the button labeled Mode.
  // (0x0000006e)
  int KEYCODE_BUTTON_MODE = 110;

  // Key code constant: R1 Button key. On a game controller, the R1 button should be either the button labeled R1 (or R) or the top right trigger button.
  // (0x00000067)
  int KEYCODE_BUTTON_R1 = 103;

  // Key code constant: R2 Button key. On a game controller, the R2 button should be either the button labeled R2 or the bottom right trigger button.
  // (0x00000069)
  int KEYCODE_BUTTON_R2 = 105;

  // Key code constant: Select Button key. On a game controller, the button labeled Select.
  // (0x0000006d)
  int KEYCODE_BUTTON_SELECT = 109;

  // Key code constant: Start Button key. On a game controller, the button labeled Start.
  // (0x0000006c)
  int KEYCODE_BUTTON_START = 108;

  // Key code constant: Left Thumb Button key. On a game controller, the left thumb button indicates that the left (or only) joystick is pressed.
  // (0x0000006a)
  int KEYCODE_BUTTON_THUMBL = 106;

  // Key code constant: Right Thumb Button key. On a game controller, the right thumb button indicates that the right joystick is pressed.
  // (0x0000006b)
  int KEYCODE_BUTTON_THUMBR = 107;

  // Key code constant: X Button key. On a game controller, the X button should be either the button labeled X or the first button on the upper row of controller buttons.
  // (0x00000063)
  int KEYCODE_BUTTON_X = 99;

  // Key code constant: Y Button key. On a game controller, the Y button should be either the button labeled Y or the second button on the upper row of controller buttons.
  // (0x00000064)
  int KEYCODE_BUTTON_Y = 100;

  // Key code constant: Z Button key. On a game controller, the Z button should be either the button labeled Z or the third button on the upper row of controller buttons.
  // (0x00000065)
  int KEYCODE_BUTTON_Z = 101;

  // Key code constant: 'C' key.
  // (0x0000001f)
  int KEYCODE_C = 31;

  // Key code constant: Calculator special function key. Used to launch a calculator application.
  // (0x000000d2)
  int KEYCODE_CALCULATOR = 210;

  // Key code constant: Calendar special function key. Used to launch a calendar application.
  // (0x000000d0)
  int KEYCODE_CALENDAR = 208;

  // Key code constant: Call key.
  // (0x00000005)
  int KEYCODE_CALL = 5;

  // Key code constant: Camera key. Used to launch a camera application or take pictures.
  // (0x0000001b)
  int KEYCODE_CAMERA = 27;

  // Key code constant: Caps Lock key.
  // (0x00000073)
  int KEYCODE_CAPS_LOCK = 115;

  // Key code constant: Toggle captions key. Switches the mode for closed-captioning text, for example during television shows.
  // (0x000000af)
  int KEYCODE_CAPTIONS = 175;

  // Key code constant: Channel down key. On TV remotes, decrements the television channel.
  // (0x000000a7)
  int KEYCODE_CHANNEL_DOWN = 167;

  // Key code constant: Channel up key. On TV remotes, increments the television channel.
  // (0x000000a6)
  int KEYCODE_CHANNEL_UP = 166;

  // Key code constant: Clear key.
  // (0x0000001c)
  int KEYCODE_CLEAR = 28;

  // Key code constant: ',' key.
  // (0x00000037)
  int KEYCODE_COMMA = 55;

  // Key code constant: Contacts special function key. Used to launch an address book application.
  // (0x000000cf)
  int KEYCODE_CONTACTS = 207;

  // Key code constant: Left Control modifier key.
  // (0x00000071)
  int KEYCODE_CTRL_LEFT = 113;

  // Key code constant: Right Control modifier key.
  // (0x00000072)
  int KEYCODE_CTRL_RIGHT = 114;

  // Key code constant: 'D' key.
  // (0x00000020)
  int KEYCODE_D = 32;

  // Key code constant: Backspace key. Deletes characters before the insertion point, unlike KEYCODE_FORWARD_DEL.
  // (0x00000043)
  int KEYCODE_DEL = 67;

  // Key code constant: Directional Pad Center key. May also be synthesized from trackball motions.
  // (0x00000017)
  int KEYCODE_DPAD_CENTER = 23;

  // Key code constant: Directional Pad Down key. May also be synthesized from trackball motions.
  // (0x00000014)
  int KEYCODE_DPAD_DOWN = 20;

  // Key code constant: Directional Pad Left key. May also be synthesized from trackball motions.
  // (0x00000015)
  int KEYCODE_DPAD_LEFT = 21;

  // Key code constant: Directional Pad Right key. May also be synthesized from trackball motions.
  // (0x00000016)
  int KEYCODE_DPAD_RIGHT = 22;

  // Key code constant: Directional Pad Up key. May also be synthesized from trackball motions.
  // (0x00000013)
  int KEYCODE_DPAD_UP = 19;

  // Key code constant: DVR key. On some TV remotes, switches to a DVR mode for recorded shows.
  // (0x000000ad)
  int KEYCODE_DVR = 173;

  // Key code constant: 'E' key.
  // (0x00000021)
  int KEYCODE_E = 33;

  // Key code constant: Japanese alphanumeric key.
  // (0x000000d4)
  int KEYCODE_EISU = 212;

  // Key code constant: End Call key.
  // (0x00000006)
  int KEYCODE_ENDCALL = 6;

  // Key code constant: Enter key.
  // (0x00000042)
  int KEYCODE_ENTER = 66;

  // Key code constant: Envelope special function key. Used to launch a mail application.
  // (0x00000041)
  int KEYCODE_ENVELOPE = 65;

  // Key code constant: '=' key.
  // (0x00000046)
  int KEYCODE_EQUALS = 70;

  // Key code constant: Escape key.
  // (0x0000006f)
  int KEYCODE_ESCAPE = 111;

  // Key code constant: Explorer special function key. Used to launch a browser application.
  // (0x00000040)
  int KEYCODE_EXPLORER = 64;

  // Key code constant: 'F' key.
  // (0x00000022)
  int KEYCODE_F = 34;

  // Key code constant: F1 key.
  // (0x00000083)
  int KEYCODE_F1 = 131;

  // Key code constant: F10 key.
  // (0x0000008c)
  int KEYCODE_F10 = 140;

  // Key code constant: F11 key.
  // (0x0000008d)
  int KEYCODE_F11 = 141;

  // Key code constant: F12 key.
  // (0x0000008e)
  int KEYCODE_F12 = 142;

  // Key code constant: F2 key.
  // (0x00000084)
  int KEYCODE_F2 = 132;

  // Key code constant: F3 key.
  // (0x00000085)
  int KEYCODE_F3 = 133;

  // Key code constant: F4 key.
  // (0x00000086)
  int KEYCODE_F4 = 134;

  // Key code constant: F5 key.
  // (0x00000087)
  int KEYCODE_F5 = 135;

  // Key code constant: F6 key.
  // (0x00000088)
  int KEYCODE_F6 = 136;

  // Key code constant: F7 key.
  // (0x00000089)
  int KEYCODE_F7 = 137;

  // Key code constant: F8 key.
  // (0x0000008a)
  int KEYCODE_F8 = 138;

  // Key code constant: F9 key.
  // (0x0000008b)
  int KEYCODE_F9 = 139;

  // Key code constant: Camera Focus key. Used to focus the camera.
  // (0x00000050)
  int KEYCODE_FOCUS = 80;

  // Key code constant: Forward key. Navigates forward in the history stack. Complement of KEYCODE_BACK.
  // (0x0000007d)
  int KEYCODE_FORWARD = 125;

  // Key code constant: Forward Delete key. Deletes characters ahead of the insertion point, unlike KEYCODE_DEL.
  // (0x00000070)
  int KEYCODE_FORWARD_DEL = 112;

  // Key code constant: Function modifier key.
  // (0x00000077)
  int KEYCODE_FUNCTION = 119;

  // Key code constant: 'G' key.
  // (0x00000023)
  int KEYCODE_G = 35;

  // Key code constant: '`' (backtick) key.
  // (0x00000044)
  int KEYCODE_GRAVE = 68;

  // Key code constant: Guide key. On TV remotes, shows a programming guide.
  // (0x000000ac)
  int KEYCODE_GUIDE = 172;

  // Key code constant: 'H' key.
  // (0x00000024)
  int KEYCODE_H = 36;

  // Key code constant: Headset Hook key. Used to hang up calls and stop media.
  // (0x0000004f)
  int KEYCODE_HEADSETHOOK = 79;

  // Key code constant: Help key.
  // (0x00000103)
  int KEYCODE_HELP = 259;

  // Key code constant: Japanese conversion key.
  // (0x000000d6)
  int KEYCODE_HENKAN = 214;

  // Key code constant: Home key. This key is handled by the framework and is never delivered to applications.
  // (0x00000003)
  int KEYCODE_HOME = 3;

  // Key code constant: 'I' key.
  // (0x00000025)
  int KEYCODE_I = 37;

  // Key code constant: Info key. Common on TV remotes to show additional information related to what is currently being viewed.
  // (0x000000a5)
  int KEYCODE_INFO = 165;

  // Key code constant: Insert key. Toggles insert / overwrite edit mode.
  // (0x0000007c)
  int KEYCODE_INSERT = 124;

  // Key code constant: 'J' key.
  // (0x00000026)
  int KEYCODE_J = 38;

  // Key code constant: 'K' key.
  // (0x00000027)
  int KEYCODE_K = 39;

  // Key code constant: Japanese kana key.
  // (0x000000da)
  int KEYCODE_KANA = 218;

  // Key code constant: Japanese katakana / hiragana key.
  // (0x000000d7)
  int KEYCODE_KATAKANA_HIRAGANA = 215;

  // Key code constant: 'L' key.
  // (0x00000028)
  int KEYCODE_L = 40;

  // Key code constant: Language Switch key. Toggles the current input language such as switching between English and Japanese on a QWERTY keyboard. On some devices, the same function may be performed by pressing Shift+Spacebar.
  // (0x000000cc)
  int KEYCODE_LANGUAGE_SWITCH = 204;

  // Key code constant: Last Channel key. Goes to the last viewed channel.
  // (0x000000e5)
  int KEYCODE_LAST_CHANNEL = 229;

  // Key code constant: '[' key.
  // (0x00000047)
  int KEYCODE_LEFT_BRACKET = 71;

  // Key code constant: 'M' key.
  // (0x00000029)
  int KEYCODE_M = 41;

  // Key code constant: Manner Mode key. Toggles silent or vibrate mode on and off to make the device behave more politely in certain settings such as on a crowded train. On some devices, the key may only operate when long-pressed.
  // (0x000000cd)
  int KEYCODE_MANNER_MODE = 205;

  // Key code constant: Audio Track key. Switches the audio tracks.
  // (0x000000de)
  int KEYCODE_MEDIA_AUDIO_TRACK = 222;

  // Key code constant: Close media key. May be used to close a CD tray, for example.
  // (0x00000080)
  int KEYCODE_MEDIA_CLOSE = 128;

  // Key code constant: Eject media key. May be used to eject a CD tray, for example.
  // (0x00000081)
  int KEYCODE_MEDIA_EJECT = 129;

  // Key code constant: Fast Forward media key.
  // (0x0000005a)
  int KEYCODE_MEDIA_FAST_FORWARD = 90;

  // Key code constant: Play Next media key.
  // (0x00000057)
  int KEYCODE_MEDIA_NEXT = 87;

  // Key code constant: Pause media key.
  // (0x0000007f)
  int KEYCODE_MEDIA_PAUSE = 127;

  // Key code constant: Play media key.
  // (0x0000007e)
  int KEYCODE_MEDIA_PLAY = 126;

  // Key code constant: Play/Pause media key.
  // (0x00000055)
  int KEYCODE_MEDIA_PLAY_PAUSE = 85;

  // Key code constant: Play Previous media key.
  // (0x00000058)
  int KEYCODE_MEDIA_PREVIOUS = 88;

  // Key code constant: Record media key.
  // (0x00000082)
  int KEYCODE_MEDIA_RECORD = 130;

  // Key code constant: Rewind media key.
  // (0x00000059)
  int KEYCODE_MEDIA_REWIND = 89;

  // Key code constant: Stop media key.
  // (0x00000056)
  int KEYCODE_MEDIA_STOP = 86;

  // Key code constant: Media Top Menu key. Goes to the top of media menu.
  // (0x000000e2)
  int KEYCODE_MEDIA_TOP_MENU = 226;

  // Key code constant: Menu key.
  // (0x00000052)
  int KEYCODE_MENU = 82;

  // Key code constant: Left Meta modifier key.
  // (0x00000075)
  int KEYCODE_META_LEFT = 117;

  // Key code constant: Right Meta modifier key.
  // (0x00000076)
  int KEYCODE_META_RIGHT = 118;

  // Key code constant: '-'.
  // (0x00000045)
  int KEYCODE_MINUS = 69;

  // Key code constant: End Movement key. Used for scrolling or moving the cursor around to the end of a line or to the bottom of a list.
  // (0x0000007b)
  int KEYCODE_MOVE_END = 123;

  // Key code constant: Home Movement key. Used for scrolling or moving the cursor around to the start of a line or to the top of a list.
  // (0x0000007a)
  int KEYCODE_MOVE_HOME = 122;

  // Key code constant: Japanese non-conversion key.
  // (0x000000d5)
  int KEYCODE_MUHENKAN = 213;

  // Key code constant: Music special function key. Used to launch a music player application.
  // (0x000000d1)
  int KEYCODE_MUSIC = 209;

  // Key code constant: Mute key. Mutes the microphone, unlike KEYCODE_VOLUME_MUTE.
  // (0x0000005b)
  int KEYCODE_MUTE = 91;

  // Key code constant: 'N' key.
  // (0x0000002a)
  int KEYCODE_N = 42;

  // Key code constant: Notification key.
  // (0x00000053)
  int KEYCODE_NOTIFICATION = 83;

  // Key code constant: Number modifier key. Used to enter numeric symbols. This key is not Num Lock; it is more like KEYCODE_ALT_LEFT and is interpreted as an ALT key by MetaKeyKeyListener.
  // (0x0000004e)
  int KEYCODE_NUM = 78;

  // Key code constant: Numeric keypad '0' key.
  // (0x00000090)
  int KEYCODE_NUMPAD_0 = 144;

  // Key code constant: Numeric keypad '1' key.
  // (0x00000091)
  int KEYCODE_NUMPAD_1 = 145;

  // Key code constant: Numeric keypad '2' key.
  // (0x00000092)
  int KEYCODE_NUMPAD_2 = 146;

  // Key code constant: Numeric keypad '3' key.
  // (0x00000093)
  int KEYCODE_NUMPAD_3 = 147;

  // Key code constant: Numeric keypad '4' key.
  // (0x00000094)
  int KEYCODE_NUMPAD_4 = 148;

  // Key code constant: Numeric keypad '5' key.
  // (0x00000095)
  int KEYCODE_NUMPAD_5 = 149;

  // Key code constant: Numeric keypad '6' key.
  // (0x00000096)
  int KEYCODE_NUMPAD_6 = 150;

  // Key code constant: Numeric keypad '7' key.
  // (0x00000097)
  int KEYCODE_NUMPAD_7 = 151;

  // Key code constant: Numeric keypad '8' key.
  // (0x00000098)
  int KEYCODE_NUMPAD_8 = 152;

  // Key code constant: Numeric keypad '9' key.
  // (0x00000099)
  int KEYCODE_NUMPAD_9 = 153;

  // Key code constant: Numeric keypad '+' key (for addition).
  // (0x0000009d)
  int KEYCODE_NUMPAD_ADD = 157;

  // Key code constant: Numeric keypad ',' key (for decimals or digit grouping).
  // (0x0000009f)
  int KEYCODE_NUMPAD_COMMA = 159;

  // Key code constant: Numeric keypad '/' key (for division).
  // (0x0000009a)
  int KEYCODE_NUMPAD_DIVIDE = 154;

  // Key code constant: Numeric keypad '.' key (for decimals or digit grouping).
  // (0x0000009e)
  int KEYCODE_NUMPAD_DOT = 158;

  // Key code constant: Numeric keypad Enter key.
  // (0x000000a0)
  int KEYCODE_NUMPAD_ENTER = 160;

  // Key code constant: Numeric keypad '=' key.
  // (0x000000a1)
  int KEYCODE_NUMPAD_EQUALS = 161;

  // Key code constant: Numeric keypad '(' key.
  // (0x000000a2)
  int KEYCODE_NUMPAD_LEFT_PAREN = 162;

  // Key code constant: Numeric keypad '*' key (for multiplication).
  // (0x0000009b)
  int KEYCODE_NUMPAD_MULTIPLY = 155;

  // Key code constant: Numeric keypad ')' key.
  // (0x000000a3)
  int KEYCODE_NUMPAD_RIGHT_PAREN = 163;

  // Key code constant: Numeric keypad '-' key (for subtraction).
  // (0x0000009c)
  int KEYCODE_NUMPAD_SUBTRACT = 156;

  // Key code constant: Num Lock key. This is the Num Lock key; it is different from KEYCODE_NUM. This key alters the behavior of other keys on the numeric keypad.
  // (0x0000008f)
  int KEYCODE_NUM_LOCK = 143;

  // Key code constant: 'O' key.
  // (0x0000002b)
  int KEYCODE_O = 43;

  // Key code constant: 'P' key.
  // (0x0000002c)
  int KEYCODE_P = 44;

  // Key code constant: Page Down key.
  // (0x0000005d)
  int KEYCODE_PAGE_DOWN = 93;

  // Key code constant: Page Up key.
  // (0x0000005c)
  int KEYCODE_PAGE_UP = 92;

  // Key code constant: Pairing key. Initiates peripheral pairing mode. Useful for pairing remote control devices or game controllers, especially if no other input mode is available.
  // (0x000000e1)
  int KEYCODE_PAIRING = 225;

  // Key code constant: '.' key.
  // (0x00000038)
  int KEYCODE_PERIOD = 56;

  // Key code constant: Picture Symbols modifier key. Used to switch symbol sets (Emoji, Kao-moji).
  // (0x0000005e)
  int KEYCODE_PICTSYMBOLS = 94;

  // Key code constant: '+' key.
  // (0x00000051)
  int KEYCODE_PLUS = 81;

  // Key code constant: '#' key.
  // (0x00000012)
  int KEYCODE_POUND = 18;

  // Key code constant: Power key.
  // (0x0000001a)
  int KEYCODE_POWER = 26;

  // Key code constant: Blue "programmable" key. On TV remotes, acts as a contextual/programmable key.
  // (0x000000ba)
  int KEYCODE_PROG_BLUE = 186;

  // Key code constant: Green "programmable" key. On TV remotes, actsas a contextual/programmable key.
  // (0x000000b8)
  int KEYCODE_PROG_GREEN = 184;

  // Key code constant: Red "programmable" key. On TV remotes, acts as a contextual/programmable key.
  // (0x000000b7)
  int KEYCODE_PROG_RED = 183;

  // Key code constant: Yellow "programmable" key. On TV remotes, acts as a contextual/programmable key.
  // (0x000000b9)
  int KEYCODE_PROG_YELLOW = 185;

  // Key code constant: 'Q' key.
  // (0x0000002d)
  int KEYCODE_Q = 45;

  // Key code constant: 'R' key.
  // (0x0000002e)
  int KEYCODE_R = 46;

  // Key code constant: ']' key.
  // (0x00000048)
  int KEYCODE_RIGHT_BRACKET = 72;

  // Key code constant: Japanese Ro key.
  // (0x000000d9)
  int KEYCODE_RO = 217;

  // Key code constant: 'S' key.
  // (0x0000002f)
  int KEYCODE_S = 47;

  // Key code constant: Scroll Lock key.
  // (0x00000074)
  int KEYCODE_SCROLL_LOCK = 116;

  // Key code constant: Search key.
  // (0x00000054)
  int KEYCODE_SEARCH = 84;

  // Key code constant: ';' key.
  // (0x0000004a)
  int KEYCODE_SEMICOLON = 74;

  // Key code constant: Settings key. Starts the system settings activity.
  // (0x000000b0)
  int KEYCODE_SETTINGS = 176;

  // Key code constant: Left Shift modifier key.
  // (0x0000003b)
  int KEYCODE_SHIFT_LEFT = 59;

  // Key code constant: Right Shift modifier key.
  // (0x0000003c)
  int KEYCODE_SHIFT_RIGHT = 60;

  // Key code constant: '/' key.
  // (0x0000004c)
  int KEYCODE_SLASH = 76;

  // Key code constant: Sleep key. Puts the device to sleep. Behaves somewhat like KEYCODE_POWER but it has no effect if the device is already asleep.
  // (0x000000df)
  int KEYCODE_SLEEP = 223;

  // Key code constant: Soft Left key. Usually situated below the display on phones and used as a multi-function feature key for selecting a software defined function shown on the bottom left of the display.
  // (0x00000001)
  int KEYCODE_SOFT_LEFT = 1;

  // Key code constant: Soft Right key. Usually situated below the display on phones and used as a multi-function feature key for selecting a software defined function shown on the bottom right of the display.
  // (0x00000002)
  int KEYCODE_SOFT_RIGHT = 2;

  // Key code constant: Space key.
  // (0x0000003e)
  int KEYCODE_SPACE = 62;

  // Key code constant: '*' key.
  // (0x00000011)
  int KEYCODE_STAR = 17;

  // Key code constant: Set-top-box input key. On TV remotes, switches the input mode on an external Set-top-box.
  // (0x000000b4)
  int KEYCODE_STB_INPUT = 180;

  // Key code constant: Set-top-box power key. On TV remotes, toggles the power on an external Set-top-box.
  // (0x000000b3)
  int KEYCODE_STB_POWER = 179;

  // Key code constant: Switch Charset modifier key. Used to switch character sets (Kanji, Katakana).
  // (0x0000005f)
  int KEYCODE_SWITCH_CHARSET = 95;

  // Key code constant: Symbol modifier key. Used to enter alternate symbols.
  // (0x0000003f)
  int KEYCODE_SYM = 63;

  // Key code constant: System Request / Print Screen key.
  // (0x00000078)
  int KEYCODE_SYSRQ = 120;

  // Key code constant: 'T' key.
  // (0x00000030)
  int KEYCODE_T = 48;

  // Key code constant: Tab key.
  // (0x0000003d)
  int KEYCODE_TAB = 61;

  // Key code constant: TV key. On TV remotes, switches to viewing live TV.
  // (0x000000aa)
  int KEYCODE_TV = 170;

  // Key code constant: Antenna/Cable key. Toggles broadcast input source between antenna and cable.
  // (0x000000f2)
  int KEYCODE_TV_ANTENNA_CABLE = 242;

  // Key code constant: Audio description key. Toggles audio description off / on.
  // (0x000000fc)
  int KEYCODE_TV_AUDIO_DESCRIPTION = 252;

  // Key code constant: Audio description mixing volume down key. Lessen audio description volume as compared with normal audio volume.
  // (0x000000fe)
  int KEYCODE_TV_AUDIO_DESCRIPTION_MIX_DOWN = 254;

  // Key code constant: Audio description mixing volume up key. Louden audio description volume as compared with normal audio volume.
  // (0x000000fd)
  int KEYCODE_TV_AUDIO_DESCRIPTION_MIX_UP = 253;

  // Key code constant: Contents menu key. Goes to the title list. Corresponds to Contents Menu (0x0B) of CEC User Control Code
  // (0x00000100)
  int KEYCODE_TV_CONTENTS_MENU = 256;

  // Key code constant: TV data service key. Displays data services like weather, sports.
  // (0x000000e6)
  int KEYCODE_TV_DATA_SERVICE = 230;

  // Key code constant: TV input key. On TV remotes, switches the input on a television screen.
  // (0x000000b2)
  int KEYCODE_TV_INPUT = 178;

  // Key code constant: Component #1 key. Switches to component video input #1.
  // (0x000000f9)
  int KEYCODE_TV_INPUT_COMPONENT_1 = 249;

  // Key code constant: Component #2 key. Switches to component video input #2.
  // (0x000000fa)
  int KEYCODE_TV_INPUT_COMPONENT_2 = 250;

  // Key code constant: Composite #1 key. Switches to composite video input #1.
  // (0x000000f7)
  int KEYCODE_TV_INPUT_COMPOSITE_1 = 247;

  // Key code constant: Composite #2 key. Switches to composite video input #2.
  // (0x000000f8)
  int KEYCODE_TV_INPUT_COMPOSITE_2 = 248;

  // Key code constant: HDMI #1 key. Switches to HDMI input #1.
  // (0x000000f3)
  int KEYCODE_TV_INPUT_HDMI_1 = 243;

  // Key code constant: HDMI #2 key. Switches to HDMI input #2.
  // (0x000000f4)
  int KEYCODE_TV_INPUT_HDMI_2 = 244;

  // Key code constant: HDMI #3 key. Switches to HDMI input #3.
  // (0x000000f5)
  int KEYCODE_TV_INPUT_HDMI_3 = 245;

  // Key code constant: HDMI #4 key. Switches to HDMI input #4.
  // (0x000000f6)
  int KEYCODE_TV_INPUT_HDMI_4 = 246;

  // Key code constant: VGA #1 key. Switches to VGA (analog RGB) input #1.
  // (0x000000fb)
  int KEYCODE_TV_INPUT_VGA_1 = 251;

  // Key code constant: Media context menu key. Goes to the context menu of media contents. Corresponds to Media Context-sensitive Menu (0x11) of CEC User Control Code.
  // (0x00000101)
  int KEYCODE_TV_MEDIA_CONTEXT_MENU = 257;

  // Key code constant: Toggle Network key. Toggles selecting broacast services.
  // (0x000000f1)
  int KEYCODE_TV_NETWORK = 241;

  // Key code constant: Number entry key. Initiates to enter multi-digit channel nubmber when each digit key is assigned for selecting separate channel. Corresponds to Number Entry Mode (0x1D) of CEC User Control Code.
  // (0x000000ea)
  int KEYCODE_TV_NUMBER_ENTRY = 234;

  // Key code constant: TV power key. On TV remotes, toggles the power on a television screen.
  // (0x000000b1)
  int KEYCODE_TV_POWER = 177;

  // Key code constant: Radio key. Toggles TV service / Radio service.
  // (0x000000e8)
  int KEYCODE_TV_RADIO_SERVICE = 232;

  // Key code constant: Satellite key. Switches to digital satellite broadcast service.
  // (0x000000ed)
  int KEYCODE_TV_SATELLITE = 237;

  // Key code constant: BS key. Switches to BS digital satellite broadcasting service available in Japan.
  // (0x000000ee)
  int KEYCODE_TV_SATELLITE_BS = 238;

  // Key code constant: CS key. Switches to CS digital satellite broadcasting service available in Japan.
  // (0x000000ef)
  int KEYCODE_TV_SATELLITE_CS = 239;

  // Key code constant: BS/CS key. Toggles between BS and CS digital satellite services.
  // (0x000000f0)
  int KEYCODE_TV_SATELLITE_SERVICE = 240;

  // Key code constant: Teletext key. Displays Teletext service.
  // (0x000000e9)
  int KEYCODE_TV_TELETEXT = 233;

  // Key code constant: Analog Terrestrial key. Switches to analog terrestrial broadcast service.
  // (0x000000eb)
  int KEYCODE_TV_TERRESTRIAL_ANALOG = 235;

  // Key code constant: Digital Terrestrial key. Switches to digital terrestrial broadcast service.
  // (0x000000ec)
  int KEYCODE_TV_TERRESTRIAL_DIGITAL = 236;

  // Key code constant: Timer programming key. Goes to the timer recording menu. Corresponds to Timer Programming (0x54) of CEC User Control Code.
  // (0x00000102)
  int KEYCODE_TV_TIMER_PROGRAMMING = 258;

  // Key code constant: Zoom mode key. Changes Zoom mode (Normal, Full, Zoom, Wide-zoom, etc.)
  // (0x000000ff)
  int KEYCODE_TV_ZOOM_MODE = 255;

  // Key code constant: 'U' key.
  // (0x00000031)
  int KEYCODE_U = 49;

  // Key code constant: Unknown key code.
  // (0x00000000)
  int KEYCODE_UNKNOWN = 0;

  // Key code constant: 'V' key.
  // (0x00000032)
  int KEYCODE_V = 50;

  // Key code constant: Voice Assist key. Launches the global voice assist activity. Not delivered to applications.
  // (0x000000e7)
  int KEYCODE_VOICE_ASSIST = 231;

  // Key code constant: Volume Down key. Adjusts the speaker volume down.
  // (0x00000019)
  int KEYCODE_VOLUME_DOWN = 25;

  // Key code constant: Volume Mute key. Mutes the speaker, unlike KEYCODE_MUTE. This key should normally be implemented as a toggle such that the first press mutes the speaker and the second press restores the original volume.
  // (0x000000a4)
  int KEYCODE_VOLUME_MUTE = 164;

  // Key code constant: Volume Up key. Adjusts the speaker volume up.
  // (0x00000018)
  int KEYCODE_VOLUME_UP = 24;

  // Key code constant: 'W' key.
  // (0x00000033)
  int KEYCODE_W = 51;

  // Key code constant: Wakeup key. Wakes up the device. Behaves somewhat like KEYCODE_POWER but it has no effect if the device is already awake.
  // (0x000000e0)
  int KEYCODE_WAKEUP = 224;

  // Key code constant: Window key. On TV remotes, toggles picture-in-picture mode or other windowing functions.
  // (0x000000ab)
  int KEYCODE_WINDOW = 171;

  // Key code constant: 'X' key.
  // (0x00000034)
  int KEYCODE_X = 52;

  // Key code constant: 'Y' key.
  // (0x00000035)
  int KEYCODE_Y = 53;

  // Key code constant: Japanese Yen key.
  // (0x000000d8)
  int KEYCODE_YEN = 216;

  // Key code constant: 'Z' key.
  // (0x00000036)
  int KEYCODE_Z = 54;

  // Key code constant: Japanese full-width / half-width key.
  // (0x000000d3)
  int KEYCODE_ZENKAKU_HANKAKU = 211;

  // Key code constant: Zoom in key.
  // (0x000000a8)
  int KEYCODE_ZOOM_IN = 168;

  // Key code constant: Zoom out key.
  // (0x000000a9)
  int KEYCODE_ZOOM_OUT = 169;

  // This constant was deprecated in API level 3.
  // There are now more than MAX_KEYCODE keycodes. Use getMaxKeyCode() instead.
  // (0x00000054)
  int MAX_KEYCODE = 84;

  // This mask is used to check whether the left ALT meta key is pressed.
  // See Also
  // isAltPressed()
  // getMetaState()
  // KEYCODE_ALT_LEFT
  // (0x00000010)
  int META_ALT_LEFT_ON = 16;

  // This mask is a combination of META_ALT_ON, META_ALT_LEFT_ON and META_ALT_RIGHT_ON.
  // (0x00000032)
  int META_ALT_MASK = 50;

  // This mask is used to check whether one of the ALT meta keys is pressed.
  // See Also
  // isAltPressed()
  // getMetaState()
  // KEYCODE_ALT_LEFT
  // KEYCODE_ALT_RIGHT
  // (0x00000002)
  int META_ALT_ON = 2;

  // This mask is used to check whether the right the ALT meta key is pressed.
  // See Also
  // isAltPressed()
  // getMetaState()
  // KEYCODE_ALT_RIGHT
  // (0x00000020)
  int META_ALT_RIGHT_ON = 32;

  // This mask is used to check whether the CAPS LOCK meta key is on.
  // See Also
  // isCapsLockOn()
  // getMetaState()
  // KEYCODE_CAPS_LOCK
  // (0x00100000)
  int META_CAPS_LOCK_ON = 1048576;

  // This mask is used to check whether the left CTRL meta key is pressed.
  // See Also
  // isCtrlPressed()
  // getMetaState()
  // KEYCODE_CTRL_LEFT
  // (0x00002000)
  int META_CTRL_LEFT_ON = 8192;

  // This mask is a combination of META_CTRL_ON, META_CTRL_LEFT_ON and META_CTRL_RIGHT_ON.
  // (0x00007000)
  int META_CTRL_MASK = 28672;

  // This mask is used to check whether one of the CTRL meta keys is pressed.
  // See Also
  // isCtrlPressed()
  // getMetaState()
  // KEYCODE_CTRL_LEFT
  // KEYCODE_CTRL_RIGHT
  // (0x00001000)
  int META_CTRL_ON = 4096;

  // This mask is used to check whether the right CTRL meta key is pressed.
  // See Also
  // isCtrlPressed()
  // getMetaState()
  // KEYCODE_CTRL_RIGHT
  // (0x00004000)
  int META_CTRL_RIGHT_ON = 16384;

  // This mask is used to check whether the FUNCTION meta key is pressed.
  // See Also
  // isFunctionPressed()
  // getMetaState()
  // (0x00000008)
  int META_FUNCTION_ON = 8;

  // This mask is used to check whether the left META meta key is pressed.
  // See Also
  // isMetaPressed()
  // getMetaState()
  // KEYCODE_META_LEFT
  // (0x00020000)
  int META_META_LEFT_ON = 131072;

  // This mask is a combination of META_META_ON, META_META_LEFT_ON and META_META_RIGHT_ON.
  // (0x00070000)
  int META_META_MASK = 458752;

  // This mask is used to check whether one of the META meta keys is pressed.
  // See Also
  // isMetaPressed()
  // getMetaState()
  // KEYCODE_META_LEFT
  // KEYCODE_META_RIGHT
  // (0x00010000)
  int META_META_ON = 65536;

  // This mask is used to check whether the right META meta key is pressed.
  // See Also
  // isMetaPressed()
  // getMetaState()
  // KEYCODE_META_RIGHT
  // (0x00040000)
  int META_META_RIGHT_ON = 262144;

  // This mask is used to check whether the NUM LOCK meta key is on.
  // See Also
  // isNumLockOn()
  // getMetaState()
  // KEYCODE_NUM_LOCK
  // (0x00200000)
  int META_NUM_LOCK_ON = 2097152;

  // This mask is used to check whether the SCROLL LOCK meta key is on.
  // See Also
  // isScrollLockOn()
  // getMetaState()
  // KEYCODE_SCROLL_LOCK
  // (0x00400000)
  int META_SCROLL_LOCK_ON = 4194304;

  // This mask is used to check whether the left SHIFT meta key is pressed.
  // See Also
  // isShiftPressed()
  // getMetaState()
  // KEYCODE_SHIFT_LEFT
  // (0x00000040)
  int META_SHIFT_LEFT_ON = 64;

  // This mask is a combination of META_SHIFT_ON, META_SHIFT_LEFT_ON and META_SHIFT_RIGHT_ON.
  // (0x000000c1)
  int META_SHIFT_MASK = 193;

  // This mask is used to check whether one of the SHIFT meta keys is pressed.
  // See Also
  // isShiftPressed()
  // getMetaState()
  // KEYCODE_SHIFT_LEFT
  // KEYCODE_SHIFT_RIGHT
  // (0x00000001)
  int META_SHIFT_ON = 1;

  // This mask is used to check whether the right SHIFT meta key is pressed.
  // See Also
  // isShiftPressed()
  // getMetaState()
  // KEYCODE_SHIFT_RIGHT
  // (0x00000080)
  int META_SHIFT_RIGHT_ON = 128;

  // This mask is used to check whether the SYM meta key is pressed.
  // See Also
  // isSymPressed()
  // getMetaState()
  // (0x00000004)
  int META_SYM_ON = 4;

}
