#[rustfmt::skip] // This file has been automatically generated by `jnim` from `KeyEvent.class`. // DO NOT EDIT use jnim::*; use crate::android::os::Parcelable; use crate::android::os::ParcelableObject; use crate::android::view::InputEvent; pub struct KeyEvent { __object: JObject, __supper: InputEvent, __parcelable: ParcelableObject, } impl JNameMaker for KeyEvent { const JAVA_PATH: &'static [u8] = b"android/view/KeyEvent\0"; } impl JPlainMarker for KeyEvent { fn class(env: Option<&JEnv>) -> Option { static CACHE: CachedID = CachedID::new(); CACHE.get(|| JEnv::env(env)?.find_class(Self::JAVA_PATH)) } } impl core::ops::Deref for KeyEvent { type Target = InputEvent; fn deref(&self) -> &Self::Target { &self.__supper } } impl AsRef for KeyEvent { fn as_ref(&self) -> &InputEvent { &self.__supper } } impl AsRef for KeyEvent { fn as_ref(&self) -> &JObject { &self.__object } } // impl interfaces impl Parcelable for KeyEvent {} impl AsRef for KeyEvent { fn as_ref(&self) -> &ParcelableObject { &self.__parcelable } } // field impl KeyEvent { pub const ACTION_DOWN: i32 = 0i32; pub const ACTION_MULTIPLE: i32 = 2i32; pub const ACTION_UP: i32 = 1i32; pub const FLAG_CANCELED: i32 = 32i32; pub const FLAG_CANCELED_LONG_PRESS: i32 = 256i32; pub const FLAG_EDITOR_ACTION: i32 = 16i32; pub const FLAG_FALLBACK: i32 = 1024i32; pub const FLAG_FROM_SYSTEM: i32 = 8i32; pub const FLAG_KEEP_TOUCH_MODE: i32 = 4i32; pub const FLAG_LONG_PRESS: i32 = 128i32; pub const FLAG_SOFT_KEYBOARD: i32 = 2i32; pub const FLAG_TRACKING: i32 = 512i32; pub const FLAG_VIRTUAL_HARD_KEY: i32 = 64i32; pub const FLAG_WOKE_HERE: i32 = 1i32; pub const KEYCODE_0: i32 = 7i32; pub const KEYCODE_1: i32 = 8i32; pub const KEYCODE_11: i32 = 227i32; pub const KEYCODE_12: i32 = 228i32; pub const KEYCODE_2: i32 = 9i32; pub const KEYCODE_3: i32 = 10i32; pub const KEYCODE_3_D_MODE: i32 = 206i32; pub const KEYCODE_4: i32 = 11i32; pub const KEYCODE_5: i32 = 12i32; pub const KEYCODE_6: i32 = 13i32; pub const KEYCODE_7: i32 = 14i32; pub const KEYCODE_8: i32 = 15i32; pub const KEYCODE_9: i32 = 16i32; pub const KEYCODE_A: i32 = 29i32; pub const KEYCODE_ALL_APPS: i32 = 284i32; pub const KEYCODE_ALT_LEFT: i32 = 57i32; pub const KEYCODE_ALT_RIGHT: i32 = 58i32; pub const KEYCODE_APOSTROPHE: i32 = 75i32; pub const KEYCODE_APP_SWITCH: i32 = 187i32; pub const KEYCODE_ASSIST: i32 = 219i32; pub const KEYCODE_AT: i32 = 77i32; pub const KEYCODE_AVR_INPUT: i32 = 182i32; pub const KEYCODE_AVR_POWER: i32 = 181i32; pub const KEYCODE_B: i32 = 30i32; pub const KEYCODE_BACK: i32 = 4i32; pub const KEYCODE_BACKSLASH: i32 = 73i32; pub const KEYCODE_BOOKMARK: i32 = 174i32; pub const KEYCODE_BREAK: i32 = 121i32; pub const KEYCODE_BRIGHTNESS_DOWN: i32 = 220i32; pub const KEYCODE_BRIGHTNESS_UP: i32 = 221i32; pub const KEYCODE_BUTTON_1: i32 = 188i32; pub const KEYCODE_BUTTON_10: i32 = 197i32; pub const KEYCODE_BUTTON_11: i32 = 198i32; pub const KEYCODE_BUTTON_12: i32 = 199i32; pub const KEYCODE_BUTTON_13: i32 = 200i32; pub const KEYCODE_BUTTON_14: i32 = 201i32; pub const KEYCODE_BUTTON_15: i32 = 202i32; pub const KEYCODE_BUTTON_16: i32 = 203i32; pub const KEYCODE_BUTTON_2: i32 = 189i32; pub const KEYCODE_BUTTON_3: i32 = 190i32; pub const KEYCODE_BUTTON_4: i32 = 191i32; pub const KEYCODE_BUTTON_5: i32 = 192i32; pub const KEYCODE_BUTTON_6: i32 = 193i32; pub const KEYCODE_BUTTON_7: i32 = 194i32; pub const KEYCODE_BUTTON_8: i32 = 195i32; pub const KEYCODE_BUTTON_9: i32 = 196i32; pub const KEYCODE_BUTTON_A: i32 = 96i32; pub const KEYCODE_BUTTON_B: i32 = 97i32; pub const KEYCODE_BUTTON_C: i32 = 98i32; pub const KEYCODE_BUTTON_L1: i32 = 102i32; pub const KEYCODE_BUTTON_L2: i32 = 104i32; pub const KEYCODE_BUTTON_MODE: i32 = 110i32; pub const KEYCODE_BUTTON_R1: i32 = 103i32; pub const KEYCODE_BUTTON_R2: i32 = 105i32; pub const KEYCODE_BUTTON_SELECT: i32 = 109i32; pub const KEYCODE_BUTTON_START: i32 = 108i32; pub const KEYCODE_BUTTON_THUMBL: i32 = 106i32; pub const KEYCODE_BUTTON_THUMBR: i32 = 107i32; pub const KEYCODE_BUTTON_X: i32 = 99i32; pub const KEYCODE_BUTTON_Y: i32 = 100i32; pub const KEYCODE_BUTTON_Z: i32 = 101i32; pub const KEYCODE_C: i32 = 31i32; pub const KEYCODE_CALCULATOR: i32 = 210i32; pub const KEYCODE_CALENDAR: i32 = 208i32; pub const KEYCODE_CALL: i32 = 5i32; pub const KEYCODE_CAMERA: i32 = 27i32; pub const KEYCODE_CAPS_LOCK: i32 = 115i32; pub const KEYCODE_CAPTIONS: i32 = 175i32; pub const KEYCODE_CHANNEL_DOWN: i32 = 167i32; pub const KEYCODE_CHANNEL_UP: i32 = 166i32; pub const KEYCODE_CLEAR: i32 = 28i32; pub const KEYCODE_COMMA: i32 = 55i32; pub const KEYCODE_CONTACTS: i32 = 207i32; pub const KEYCODE_COPY: i32 = 278i32; pub const KEYCODE_CTRL_LEFT: i32 = 113i32; pub const KEYCODE_CTRL_RIGHT: i32 = 114i32; pub const KEYCODE_CUT: i32 = 277i32; pub const KEYCODE_D: i32 = 32i32; pub const KEYCODE_DEL: i32 = 67i32; pub const KEYCODE_DEMO_APP_1: i32 = 301i32; pub const KEYCODE_DEMO_APP_2: i32 = 302i32; pub const KEYCODE_DEMO_APP_3: i32 = 303i32; pub const KEYCODE_DEMO_APP_4: i32 = 304i32; pub const KEYCODE_DPAD_CENTER: i32 = 23i32; pub const KEYCODE_DPAD_DOWN: i32 = 20i32; pub const KEYCODE_DPAD_DOWN_LEFT: i32 = 269i32; pub const KEYCODE_DPAD_DOWN_RIGHT: i32 = 271i32; pub const KEYCODE_DPAD_LEFT: i32 = 21i32; pub const KEYCODE_DPAD_RIGHT: i32 = 22i32; pub const KEYCODE_DPAD_UP: i32 = 19i32; pub const KEYCODE_DPAD_UP_LEFT: i32 = 268i32; pub const KEYCODE_DPAD_UP_RIGHT: i32 = 270i32; pub const KEYCODE_DVR: i32 = 173i32; pub const KEYCODE_E: i32 = 33i32; pub const KEYCODE_EISU: i32 = 212i32; pub const KEYCODE_ENDCALL: i32 = 6i32; pub const KEYCODE_ENTER: i32 = 66i32; pub const KEYCODE_ENVELOPE: i32 = 65i32; pub const KEYCODE_EQUALS: i32 = 70i32; pub const KEYCODE_ESCAPE: i32 = 111i32; pub const KEYCODE_EXPLORER: i32 = 64i32; pub const KEYCODE_F: i32 = 34i32; pub const KEYCODE_F1: i32 = 131i32; pub const KEYCODE_F10: i32 = 140i32; pub const KEYCODE_F11: i32 = 141i32; pub const KEYCODE_F12: i32 = 142i32; pub const KEYCODE_F2: i32 = 132i32; pub const KEYCODE_F3: i32 = 133i32; pub const KEYCODE_F4: i32 = 134i32; pub const KEYCODE_F5: i32 = 135i32; pub const KEYCODE_F6: i32 = 136i32; pub const KEYCODE_F7: i32 = 137i32; pub const KEYCODE_F8: i32 = 138i32; pub const KEYCODE_F9: i32 = 139i32; pub const KEYCODE_FEATURED_APP_1: i32 = 297i32; pub const KEYCODE_FEATURED_APP_2: i32 = 298i32; pub const KEYCODE_FEATURED_APP_3: i32 = 299i32; pub const KEYCODE_FEATURED_APP_4: i32 = 300i32; pub const KEYCODE_FOCUS: i32 = 80i32; pub const KEYCODE_FORWARD: i32 = 125i32; pub const KEYCODE_FORWARD_DEL: i32 = 112i32; pub const KEYCODE_FUNCTION: i32 = 119i32; pub const KEYCODE_G: i32 = 35i32; pub const KEYCODE_GRAVE: i32 = 68i32; pub const KEYCODE_GUIDE: i32 = 172i32; pub const KEYCODE_H: i32 = 36i32; pub const KEYCODE_HEADSETHOOK: i32 = 79i32; pub const KEYCODE_HELP: i32 = 259i32; pub const KEYCODE_HENKAN: i32 = 214i32; pub const KEYCODE_HOME: i32 = 3i32; pub const KEYCODE_I: i32 = 37i32; pub const KEYCODE_INFO: i32 = 165i32; pub const KEYCODE_INSERT: i32 = 124i32; pub const KEYCODE_J: i32 = 38i32; pub const KEYCODE_K: i32 = 39i32; pub const KEYCODE_KANA: i32 = 218i32; pub const KEYCODE_KATAKANA_HIRAGANA: i32 = 215i32; pub const KEYCODE_L: i32 = 40i32; pub const KEYCODE_LANGUAGE_SWITCH: i32 = 204i32; pub const KEYCODE_LAST_CHANNEL: i32 = 229i32; pub const KEYCODE_LEFT_BRACKET: i32 = 71i32; pub const KEYCODE_M: i32 = 41i32; pub const KEYCODE_MANNER_MODE: i32 = 205i32; pub const KEYCODE_MEDIA_AUDIO_TRACK: i32 = 222i32; pub const KEYCODE_MEDIA_CLOSE: i32 = 128i32; pub const KEYCODE_MEDIA_EJECT: i32 = 129i32; pub const KEYCODE_MEDIA_FAST_FORWARD: i32 = 90i32; pub const KEYCODE_MEDIA_NEXT: i32 = 87i32; pub const KEYCODE_MEDIA_PAUSE: i32 = 127i32; pub const KEYCODE_MEDIA_PLAY: i32 = 126i32; pub const KEYCODE_MEDIA_PLAY_PAUSE: i32 = 85i32; pub const KEYCODE_MEDIA_PREVIOUS: i32 = 88i32; pub const KEYCODE_MEDIA_RECORD: i32 = 130i32; pub const KEYCODE_MEDIA_REWIND: i32 = 89i32; pub const KEYCODE_MEDIA_SKIP_BACKWARD: i32 = 273i32; pub const KEYCODE_MEDIA_SKIP_FORWARD: i32 = 272i32; pub const KEYCODE_MEDIA_STEP_BACKWARD: i32 = 275i32; pub const KEYCODE_MEDIA_STEP_FORWARD: i32 = 274i32; pub const KEYCODE_MEDIA_STOP: i32 = 86i32; pub const KEYCODE_MEDIA_TOP_MENU: i32 = 226i32; pub const KEYCODE_MENU: i32 = 82i32; pub const KEYCODE_META_LEFT: i32 = 117i32; pub const KEYCODE_META_RIGHT: i32 = 118i32; pub const KEYCODE_MINUS: i32 = 69i32; pub const KEYCODE_MOVE_END: i32 = 123i32; pub const KEYCODE_MOVE_HOME: i32 = 122i32; pub const KEYCODE_MUHENKAN: i32 = 213i32; pub const KEYCODE_MUSIC: i32 = 209i32; pub const KEYCODE_MUTE: i32 = 91i32; pub const KEYCODE_N: i32 = 42i32; pub const KEYCODE_NAVIGATE_IN: i32 = 262i32; pub const KEYCODE_NAVIGATE_NEXT: i32 = 261i32; pub const KEYCODE_NAVIGATE_OUT: i32 = 263i32; pub const KEYCODE_NAVIGATE_PREVIOUS: i32 = 260i32; pub const KEYCODE_NOTIFICATION: i32 = 83i32; pub const KEYCODE_NUM: i32 = 78i32; pub const KEYCODE_NUMPAD_0: i32 = 144i32; pub const KEYCODE_NUMPAD_1: i32 = 145i32; pub const KEYCODE_NUMPAD_2: i32 = 146i32; pub const KEYCODE_NUMPAD_3: i32 = 147i32; pub const KEYCODE_NUMPAD_4: i32 = 148i32; pub const KEYCODE_NUMPAD_5: i32 = 149i32; pub const KEYCODE_NUMPAD_6: i32 = 150i32; pub const KEYCODE_NUMPAD_7: i32 = 151i32; pub const KEYCODE_NUMPAD_8: i32 = 152i32; pub const KEYCODE_NUMPAD_9: i32 = 153i32; pub const KEYCODE_NUMPAD_ADD: i32 = 157i32; pub const KEYCODE_NUMPAD_COMMA: i32 = 159i32; pub const KEYCODE_NUMPAD_DIVIDE: i32 = 154i32; pub const KEYCODE_NUMPAD_DOT: i32 = 158i32; pub const KEYCODE_NUMPAD_ENTER: i32 = 160i32; pub const KEYCODE_NUMPAD_EQUALS: i32 = 161i32; pub const KEYCODE_NUMPAD_LEFT_PAREN: i32 = 162i32; pub const KEYCODE_NUMPAD_MULTIPLY: i32 = 155i32; pub const KEYCODE_NUMPAD_RIGHT_PAREN: i32 = 163i32; pub const KEYCODE_NUMPAD_SUBTRACT: i32 = 156i32; pub const KEYCODE_NUM_LOCK: i32 = 143i32; pub const KEYCODE_O: i32 = 43i32; pub const KEYCODE_P: i32 = 44i32; pub const KEYCODE_PAGE_DOWN: i32 = 93i32; pub const KEYCODE_PAGE_UP: i32 = 92i32; pub const KEYCODE_PAIRING: i32 = 225i32; pub const KEYCODE_PASTE: i32 = 279i32; pub const KEYCODE_PERIOD: i32 = 56i32; pub const KEYCODE_PICTSYMBOLS: i32 = 94i32; pub const KEYCODE_PLUS: i32 = 81i32; pub const KEYCODE_POUND: i32 = 18i32; pub const KEYCODE_POWER: i32 = 26i32; pub const KEYCODE_PROFILE_SWITCH: i32 = 288i32; pub const KEYCODE_PROG_BLUE: i32 = 186i32; pub const KEYCODE_PROG_GREEN: i32 = 184i32; pub const KEYCODE_PROG_RED: i32 = 183i32; pub const KEYCODE_PROG_YELLOW: i32 = 185i32; pub const KEYCODE_Q: i32 = 45i32; pub const KEYCODE_R: i32 = 46i32; pub const KEYCODE_REFRESH: i32 = 285i32; pub const KEYCODE_RIGHT_BRACKET: i32 = 72i32; pub const KEYCODE_RO: i32 = 217i32; pub const KEYCODE_S: i32 = 47i32; pub const KEYCODE_SCROLL_LOCK: i32 = 116i32; pub const KEYCODE_SEARCH: i32 = 84i32; pub const KEYCODE_SEMICOLON: i32 = 74i32; pub const KEYCODE_SETTINGS: i32 = 176i32; pub const KEYCODE_SHIFT_LEFT: i32 = 59i32; pub const KEYCODE_SHIFT_RIGHT: i32 = 60i32; pub const KEYCODE_SLASH: i32 = 76i32; pub const KEYCODE_SLEEP: i32 = 223i32; pub const KEYCODE_SOFT_LEFT: i32 = 1i32; pub const KEYCODE_SOFT_RIGHT: i32 = 2i32; pub const KEYCODE_SOFT_SLEEP: i32 = 276i32; pub const KEYCODE_SPACE: i32 = 62i32; pub const KEYCODE_STAR: i32 = 17i32; pub const KEYCODE_STB_INPUT: i32 = 180i32; pub const KEYCODE_STB_POWER: i32 = 179i32; pub const KEYCODE_STEM_1: i32 = 265i32; pub const KEYCODE_STEM_2: i32 = 266i32; pub const KEYCODE_STEM_3: i32 = 267i32; pub const KEYCODE_STEM_PRIMARY: i32 = 264i32; pub const KEYCODE_SWITCH_CHARSET: i32 = 95i32; pub const KEYCODE_SYM: i32 = 63i32; pub const KEYCODE_SYSRQ: i32 = 120i32; pub const KEYCODE_SYSTEM_NAVIGATION_DOWN: i32 = 281i32; pub const KEYCODE_SYSTEM_NAVIGATION_LEFT: i32 = 282i32; pub const KEYCODE_SYSTEM_NAVIGATION_RIGHT: i32 = 283i32; pub const KEYCODE_SYSTEM_NAVIGATION_UP: i32 = 280i32; pub const KEYCODE_T: i32 = 48i32; pub const KEYCODE_TAB: i32 = 61i32; pub const KEYCODE_THUMBS_DOWN: i32 = 287i32; pub const KEYCODE_THUMBS_UP: i32 = 286i32; pub const KEYCODE_TV: i32 = 170i32; pub const KEYCODE_TV_ANTENNA_CABLE: i32 = 242i32; pub const KEYCODE_TV_AUDIO_DESCRIPTION: i32 = 252i32; pub const KEYCODE_TV_AUDIO_DESCRIPTION_MIX_DOWN: i32 = 254i32; pub const KEYCODE_TV_AUDIO_DESCRIPTION_MIX_UP: i32 = 253i32; pub const KEYCODE_TV_CONTENTS_MENU: i32 = 256i32; pub const KEYCODE_TV_DATA_SERVICE: i32 = 230i32; pub const KEYCODE_TV_INPUT: i32 = 178i32; pub const KEYCODE_TV_INPUT_COMPONENT_1: i32 = 249i32; pub const KEYCODE_TV_INPUT_COMPONENT_2: i32 = 250i32; pub const KEYCODE_TV_INPUT_COMPOSITE_1: i32 = 247i32; pub const KEYCODE_TV_INPUT_COMPOSITE_2: i32 = 248i32; pub const KEYCODE_TV_INPUT_HDMI_1: i32 = 243i32; pub const KEYCODE_TV_INPUT_HDMI_2: i32 = 244i32; pub const KEYCODE_TV_INPUT_HDMI_3: i32 = 245i32; pub const KEYCODE_TV_INPUT_HDMI_4: i32 = 246i32; pub const KEYCODE_TV_INPUT_VGA_1: i32 = 251i32; pub const KEYCODE_TV_MEDIA_CONTEXT_MENU: i32 = 257i32; pub const KEYCODE_TV_NETWORK: i32 = 241i32; pub const KEYCODE_TV_NUMBER_ENTRY: i32 = 234i32; pub const KEYCODE_TV_POWER: i32 = 177i32; pub const KEYCODE_TV_RADIO_SERVICE: i32 = 232i32; pub const KEYCODE_TV_SATELLITE: i32 = 237i32; pub const KEYCODE_TV_SATELLITE_BS: i32 = 238i32; pub const KEYCODE_TV_SATELLITE_CS: i32 = 239i32; pub const KEYCODE_TV_SATELLITE_SERVICE: i32 = 240i32; pub const KEYCODE_TV_TELETEXT: i32 = 233i32; pub const KEYCODE_TV_TERRESTRIAL_ANALOG: i32 = 235i32; pub const KEYCODE_TV_TERRESTRIAL_DIGITAL: i32 = 236i32; pub const KEYCODE_TV_TIMER_PROGRAMMING: i32 = 258i32; pub const KEYCODE_TV_ZOOM_MODE: i32 = 255i32; pub const KEYCODE_U: i32 = 49i32; pub const KEYCODE_UNKNOWN: i32 = 0i32; pub const KEYCODE_V: i32 = 50i32; pub const KEYCODE_VIDEO_APP_1: i32 = 289i32; pub const KEYCODE_VIDEO_APP_2: i32 = 290i32; pub const KEYCODE_VIDEO_APP_3: i32 = 291i32; pub const KEYCODE_VIDEO_APP_4: i32 = 292i32; pub const KEYCODE_VIDEO_APP_5: i32 = 293i32; pub const KEYCODE_VIDEO_APP_6: i32 = 294i32; pub const KEYCODE_VIDEO_APP_7: i32 = 295i32; pub const KEYCODE_VIDEO_APP_8: i32 = 296i32; pub const KEYCODE_VOICE_ASSIST: i32 = 231i32; pub const KEYCODE_VOLUME_DOWN: i32 = 25i32; pub const KEYCODE_VOLUME_MUTE: i32 = 164i32; pub const KEYCODE_VOLUME_UP: i32 = 24i32; pub const KEYCODE_W: i32 = 51i32; pub const KEYCODE_WAKEUP: i32 = 224i32; pub const KEYCODE_WINDOW: i32 = 171i32; pub const KEYCODE_X: i32 = 52i32; pub const KEYCODE_Y: i32 = 53i32; pub const KEYCODE_YEN: i32 = 216i32; pub const KEYCODE_Z: i32 = 54i32; pub const KEYCODE_ZENKAKU_HANKAKU: i32 = 211i32; pub const KEYCODE_ZOOM_IN: i32 = 168i32; pub const KEYCODE_ZOOM_OUT: i32 = 169i32; pub const MAX_KEYCODE: i32 = 84i32; pub const META_ALT_LEFT_ON: i32 = 16i32; pub const META_ALT_MASK: i32 = 50i32; pub const META_ALT_ON: i32 = 2i32; pub const META_ALT_RIGHT_ON: i32 = 32i32; pub const META_CAPS_LOCK_ON: i32 = 1048576i32; pub const META_CTRL_LEFT_ON: i32 = 8192i32; pub const META_CTRL_MASK: i32 = 28672i32; pub const META_CTRL_ON: i32 = 4096i32; pub const META_CTRL_RIGHT_ON: i32 = 16384i32; pub const META_FUNCTION_ON: i32 = 8i32; pub const META_META_LEFT_ON: i32 = 131072i32; pub const META_META_MASK: i32 = 458752i32; pub const META_META_ON: i32 = 65536i32; pub const META_META_RIGHT_ON: i32 = 262144i32; pub const META_NUM_LOCK_ON: i32 = 2097152i32; pub const META_SCROLL_LOCK_ON: i32 = 4194304i32; pub const META_SHIFT_LEFT_ON: i32 = 64i32; pub const META_SHIFT_MASK: i32 = 193i32; pub const META_SHIFT_ON: i32 = 1i32; pub const META_SHIFT_RIGHT_ON: i32 = 128i32; pub const META_SYM_ON: i32 = 4i32; } // method impl KeyEvent { pub fn get_max_key_code<'a>(env: &'a JEnv) -> Option { let class = Self::class(Some(env))?; static CACHE: CachedID = CachedID::new(); CACHE .get(|| class.method_static(env, b"getMaxKeyCode\0", b"()I\0"))? .call(env, class, ()) } pub fn get_dead_char<'a>(env: &'a JEnv, arg0: JInt, arg1: JInt) -> Option { let class = Self::class(Some(env))?; static CACHE: CachedID = CachedID::new(); CACHE .get(|| class.method_static(env, b"getDeadChar\0", b"(II)I\0"))? .call(env, class, (arg0, arg1)) } pub fn change_time_repeat<'a>( env: &'a JEnv, arg0: &'a crate::android::view::KeyEvent, arg1: JLong, arg2: JInt, ) -> Option<&'a crate::android::view::KeyEvent> { let class = Self::class(Some(env))?; static CACHE: CachedID = CachedID::new(); CACHE .get(|| class.method_static(env, b"changeTimeRepeat\0", b"(Landroid/view/KeyEvent;JI)Landroid/view/KeyEvent;\0"))? .call(env, class, (arg0, arg1, arg2)) } pub fn change_time_repeat_v2<'a>( env: &'a JEnv, arg0: &'a crate::android::view::KeyEvent, arg1: JLong, arg2: JInt, arg3: JInt, ) -> Option<&'a crate::android::view::KeyEvent> { let class = Self::class(Some(env))?; static CACHE: CachedID = CachedID::new(); CACHE .get(|| class.method_static(env, b"changeTimeRepeat\0", b"(Landroid/view/KeyEvent;JII)Landroid/view/KeyEvent;\0"))? .call(env, class, (arg0, arg1, arg2, arg3)) } pub fn change_action<'a>( env: &'a JEnv, arg0: &'a crate::android::view::KeyEvent, arg1: JInt, ) -> Option<&'a crate::android::view::KeyEvent> { let class = Self::class(Some(env))?; static CACHE: CachedID = CachedID::new(); CACHE .get(|| class.method_static(env, b"changeAction\0", b"(Landroid/view/KeyEvent;I)Landroid/view/KeyEvent;\0"))? .call(env, class, (arg0, arg1)) } pub fn change_flags<'a>( env: &'a JEnv, arg0: &'a crate::android::view::KeyEvent, arg1: JInt, ) -> Option<&'a crate::android::view::KeyEvent> { let class = Self::class(Some(env))?; static CACHE: CachedID = CachedID::new(); CACHE .get(|| class.method_static(env, b"changeFlags\0", b"(Landroid/view/KeyEvent;I)Landroid/view/KeyEvent;\0"))? .call(env, class, (arg0, arg1)) } pub fn is_gamepad_button<'a>(env: &'a JEnv, arg0: JInt) -> Option { let class = Self::class(Some(env))?; static CACHE: CachedID = CachedID::new(); CACHE .get(|| class.method_static(env, b"isGamepadButton\0", b"(I)Z\0"))? .call(env, class, (arg0,)) } pub fn is_media_session_key<'a>(env: &'a JEnv, arg0: JInt) -> Option { let class = Self::class(Some(env))?; static CACHE: CachedID = CachedID::new(); CACHE .get(|| class.method_static(env, b"isMediaSessionKey\0", b"(I)Z\0"))? .call(env, class, (arg0,)) } pub fn get_modifier_meta_state_mask<'a>(env: &'a JEnv) -> Option { let class = Self::class(Some(env))?; static CACHE: CachedID = CachedID::new(); CACHE .get(|| class.method_static(env, b"getModifierMetaStateMask\0", b"()I\0"))? .call(env, class, ()) } pub fn is_modifier_key<'a>(env: &'a JEnv, arg0: JInt) -> Option { let class = Self::class(Some(env))?; static CACHE: CachedID = CachedID::new(); CACHE .get(|| class.method_static(env, b"isModifierKey\0", b"(I)Z\0"))? .call(env, class, (arg0,)) } pub fn normalize_meta_state<'a>(env: &'a JEnv, arg0: JInt) -> Option { let class = Self::class(Some(env))?; static CACHE: CachedID = CachedID::new(); CACHE .get(|| class.method_static(env, b"normalizeMetaState\0", b"(I)I\0"))? .call(env, class, (arg0,)) } pub fn meta_state_has_no_modifiers<'a>(env: &'a JEnv, arg0: JInt) -> Option { let class = Self::class(Some(env))?; static CACHE: CachedID = CachedID::new(); CACHE .get(|| class.method_static(env, b"metaStateHasNoModifiers\0", b"(I)Z\0"))? .call(env, class, (arg0,)) } pub fn meta_state_has_modifiers<'a>(env: &'a JEnv, arg0: JInt, arg1: JInt) -> Option { let class = Self::class(Some(env))?; static CACHE: CachedID = CachedID::new(); CACHE .get(|| class.method_static(env, b"metaStateHasModifiers\0", b"(II)Z\0"))? .call(env, class, (arg0, arg1)) } pub fn key_code_to_string<'a>(env: &'a JEnv, arg0: JInt) -> Option<&'a JString> { let class = Self::class(Some(env))?; static CACHE: CachedID = CachedID::new(); CACHE .get(|| class.method_static(env, b"keyCodeToString\0", b"(I)Ljava/lang/String;\0"))? .call(env, class, (arg0,)) } pub fn key_code_from_string<'a>(env: &'a JEnv, arg0: &'a JString) -> Option { let class = Self::class(Some(env))?; static CACHE: CachedID = CachedID::new(); CACHE .get(|| class.method_static(env, b"keyCodeFromString\0", b"(Ljava/lang/String;)I\0"))? .call(env, class, (arg0,)) } pub fn is_system<'a>(&'a self, env: &'a JEnv) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"isSystem\0", b"()Z\0"))? .call(env, self.as_ref(), ()) } pub fn get_device_id<'a>(&'a self, env: &'a JEnv) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"getDeviceId\0", b"()I\0"))? .call(env, self.as_ref(), ()) } pub fn get_source<'a>(&'a self, env: &'a JEnv) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"getSource\0", b"()I\0"))? .call(env, self.as_ref(), ()) } pub fn set_source<'a>(&'a self, env: &'a JEnv, arg0: JInt) -> Option<()> { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"setSource\0", b"(I)V\0"))? .call(env, self.as_ref(), (arg0,)) } pub fn get_meta_state<'a>(&'a self, env: &'a JEnv) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"getMetaState\0", b"()I\0"))? .call(env, self.as_ref(), ()) } pub fn get_modifiers<'a>(&'a self, env: &'a JEnv) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"getModifiers\0", b"()I\0"))? .call(env, self.as_ref(), ()) } pub fn get_flags<'a>(&'a self, env: &'a JEnv) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"getFlags\0", b"()I\0"))? .call(env, self.as_ref(), ()) } pub fn has_no_modifiers<'a>(&'a self, env: &'a JEnv) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"hasNoModifiers\0", b"()Z\0"))? .call(env, self.as_ref(), ()) } pub fn has_modifiers<'a>(&'a self, env: &'a JEnv, arg0: JInt) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"hasModifiers\0", b"(I)Z\0"))? .call(env, self.as_ref(), (arg0,)) } pub fn is_alt_pressed<'a>(&'a self, env: &'a JEnv) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"isAltPressed\0", b"()Z\0"))? .call(env, self.as_ref(), ()) } pub fn is_shift_pressed<'a>(&'a self, env: &'a JEnv) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"isShiftPressed\0", b"()Z\0"))? .call(env, self.as_ref(), ()) } pub fn is_sym_pressed<'a>(&'a self, env: &'a JEnv) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"isSymPressed\0", b"()Z\0"))? .call(env, self.as_ref(), ()) } pub fn is_ctrl_pressed<'a>(&'a self, env: &'a JEnv) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"isCtrlPressed\0", b"()Z\0"))? .call(env, self.as_ref(), ()) } pub fn is_meta_pressed<'a>(&'a self, env: &'a JEnv) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"isMetaPressed\0", b"()Z\0"))? .call(env, self.as_ref(), ()) } pub fn is_function_pressed<'a>(&'a self, env: &'a JEnv) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"isFunctionPressed\0", b"()Z\0"))? .call(env, self.as_ref(), ()) } pub fn is_caps_lock_on<'a>(&'a self, env: &'a JEnv) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"isCapsLockOn\0", b"()Z\0"))? .call(env, self.as_ref(), ()) } pub fn is_num_lock_on<'a>(&'a self, env: &'a JEnv) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"isNumLockOn\0", b"()Z\0"))? .call(env, self.as_ref(), ()) } pub fn is_scroll_lock_on<'a>(&'a self, env: &'a JEnv) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"isScrollLockOn\0", b"()Z\0"))? .call(env, self.as_ref(), ()) } pub fn get_action<'a>(&'a self, env: &'a JEnv) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"getAction\0", b"()I\0"))? .call(env, self.as_ref(), ()) } pub fn is_canceled<'a>(&'a self, env: &'a JEnv) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"isCanceled\0", b"()Z\0"))? .call(env, self.as_ref(), ()) } pub fn start_tracking<'a>(&'a self, env: &'a JEnv) -> Option<()> { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"startTracking\0", b"()V\0"))? .call(env, self.as_ref(), ()) } pub fn is_tracking<'a>(&'a self, env: &'a JEnv) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"isTracking\0", b"()Z\0"))? .call(env, self.as_ref(), ()) } pub fn is_long_press<'a>(&'a self, env: &'a JEnv) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"isLongPress\0", b"()Z\0"))? .call(env, self.as_ref(), ()) } pub fn get_key_code<'a>(&'a self, env: &'a JEnv) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"getKeyCode\0", b"()I\0"))? .call(env, self.as_ref(), ()) } pub fn get_characters<'a>(&'a self, env: &'a JEnv) -> Option<&'a JString> { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"getCharacters\0", b"()Ljava/lang/String;\0"))? .call(env, self.as_ref(), ()) } pub fn get_scan_code<'a>(&'a self, env: &'a JEnv) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"getScanCode\0", b"()I\0"))? .call(env, self.as_ref(), ()) } pub fn get_repeat_count<'a>(&'a self, env: &'a JEnv) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"getRepeatCount\0", b"()I\0"))? .call(env, self.as_ref(), ()) } pub fn get_down_time<'a>(&'a self, env: &'a JEnv) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"getDownTime\0", b"()J\0"))? .call(env, self.as_ref(), ()) } pub fn get_event_time<'a>(&'a self, env: &'a JEnv) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"getEventTime\0", b"()J\0"))? .call(env, self.as_ref(), ()) } pub fn get_key_character_map<'a>(&'a self, env: &'a JEnv) -> Option<&'a JObject> { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"getKeyCharacterMap\0", b"()Landroid/view/KeyCharacterMap;\0"))? .call(env, self.as_ref(), ()) } pub fn get_display_label<'a>(&'a self, env: &'a JEnv) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"getDisplayLabel\0", b"()C\0"))? .call(env, self.as_ref(), ()) } pub fn get_unicode_char<'a>(&'a self, env: &'a JEnv) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"getUnicodeChar\0", b"()I\0"))? .call(env, self.as_ref(), ()) } pub fn get_unicode_char_v2<'a>(&'a self, env: &'a JEnv, arg0: JInt) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"getUnicodeChar\0", b"(I)I\0"))? .call(env, self.as_ref(), (arg0,)) } pub fn get_key_data<'a>(&'a self, env: &'a JEnv, arg0: &'a JObject) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"getKeyData\0", b"(Landroid/view/KeyCharacterMap$KeyData;)Z\0"))? .call(env, self.as_ref(), (arg0,)) } pub fn get_match<'a>(&'a self, env: &'a JEnv, arg0: &'a JArrayPrim) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"getMatch\0", b"([C)C\0"))? .call(env, self.as_ref(), (arg0,)) } pub fn get_match_v2<'a>(&'a self, env: &'a JEnv, arg0: &'a JArrayPrim, arg1: JInt) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"getMatch\0", b"([CI)C\0"))? .call(env, self.as_ref(), (arg0, arg1)) } pub fn get_number<'a>(&'a self, env: &'a JEnv) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"getNumber\0", b"()C\0"))? .call(env, self.as_ref(), ()) } pub fn is_printing_key<'a>(&'a self, env: &'a JEnv) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"isPrintingKey\0", b"()Z\0"))? .call(env, self.as_ref(), ()) } pub fn dispatch<'a>(&'a self, env: &'a JEnv, arg0: &'a crate::android::view::KeyEventCallbackObject) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"dispatch\0", b"(Landroid/view/KeyEvent$Callback;)Z\0"))? .call(env, self.as_ref(), (arg0,)) } pub fn dispatch_v2<'a>( &'a self, env: &'a JEnv, arg0: &'a crate::android::view::KeyEventCallbackObject, arg1: &'a JObject, arg2: &'a JObject, ) -> Option { static CACHE: CachedID = CachedID::new(); CACHE .get(|| { Self::class(Some(env))?.method( env, b"dispatch\0", b"(Landroid/view/KeyEvent$Callback;Landroid/view/KeyEvent$DispatcherState;Ljava/lang/Object;)Z\0", ) })? .call(env, self.as_ref(), (arg0, arg1, arg2)) } pub fn to_string<'a>(&'a self, env: &'a JEnv) -> Option<&'a JString> { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"toString\0", b"()Ljava/lang/String;\0"))? .call(env, self.as_ref(), ()) } pub fn write_to_parcel<'a>(&'a self, env: &'a JEnv, arg0: &'a JObject, arg1: JInt) -> Option<()> { static CACHE: CachedID = CachedID::new(); CACHE .get(|| Self::class(Some(env))?.method(env, b"writeToParcel\0", b"(Landroid/os/Parcel;I)V\0"))? .call(env, self.as_ref(), (arg0, arg1)) } } #[test] fn test_type_zero() { assert_eq!(0, std::mem::size_of::()); }