@@ -4,323 +4,11 @@ import android.view.KeyEvent
44import io.github.sds100.keymapper.common.utils.withFlag
55
66object KeyEventUtils {
7- private val KEYCODES : IntArray = intArrayOf(
8- KeyEvent .KEYCODE_SOFT_LEFT ,
9- KeyEvent .KEYCODE_SOFT_RIGHT ,
10- KeyEvent .KEYCODE_HOME ,
11- KeyEvent .KEYCODE_BACK ,
12- KeyEvent .KEYCODE_CALL ,
13- KeyEvent .KEYCODE_ENDCALL ,
14- KeyEvent .KEYCODE_0 ,
15- KeyEvent .KEYCODE_1 ,
16- KeyEvent .KEYCODE_2 ,
17- KeyEvent .KEYCODE_3 ,
18- KeyEvent .KEYCODE_4 ,
19- KeyEvent .KEYCODE_5 ,
20- KeyEvent .KEYCODE_6 ,
21- KeyEvent .KEYCODE_7 ,
22- KeyEvent .KEYCODE_8 ,
23- KeyEvent .KEYCODE_9 ,
24- KeyEvent .KEYCODE_STAR ,
25- KeyEvent .KEYCODE_POUND ,
26- KeyEvent .KEYCODE_DPAD_UP ,
27- KeyEvent .KEYCODE_DPAD_DOWN ,
28- KeyEvent .KEYCODE_DPAD_LEFT ,
29- KeyEvent .KEYCODE_DPAD_RIGHT ,
30- KeyEvent .KEYCODE_DPAD_CENTER ,
31- KeyEvent .KEYCODE_VOLUME_UP ,
32- KeyEvent .KEYCODE_VOLUME_DOWN ,
33- KeyEvent .KEYCODE_POWER ,
34- KeyEvent .KEYCODE_CAMERA ,
35- KeyEvent .KEYCODE_CLEAR ,
36- KeyEvent .KEYCODE_A ,
37- KeyEvent .KEYCODE_B ,
38- KeyEvent .KEYCODE_C ,
39- KeyEvent .KEYCODE_D ,
40- KeyEvent .KEYCODE_E ,
41- KeyEvent .KEYCODE_F ,
42- KeyEvent .KEYCODE_G ,
43- KeyEvent .KEYCODE_H ,
44- KeyEvent .KEYCODE_I ,
45- KeyEvent .KEYCODE_J ,
46- KeyEvent .KEYCODE_K ,
47- KeyEvent .KEYCODE_L ,
48- KeyEvent .KEYCODE_M ,
49- KeyEvent .KEYCODE_N ,
50- KeyEvent .KEYCODE_O ,
51- KeyEvent .KEYCODE_P ,
52- KeyEvent .KEYCODE_Q ,
53- KeyEvent .KEYCODE_R ,
54- KeyEvent .KEYCODE_S ,
55- KeyEvent .KEYCODE_T ,
56- KeyEvent .KEYCODE_U ,
57- KeyEvent .KEYCODE_V ,
58- KeyEvent .KEYCODE_W ,
59- KeyEvent .KEYCODE_X ,
60- KeyEvent .KEYCODE_Y ,
61- KeyEvent .KEYCODE_Z ,
62- KeyEvent .KEYCODE_COMMA ,
63- KeyEvent .KEYCODE_PERIOD ,
64- KeyEvent .KEYCODE_ALT_LEFT ,
65- KeyEvent .KEYCODE_ALT_RIGHT ,
66- KeyEvent .KEYCODE_SHIFT_LEFT ,
67- KeyEvent .KEYCODE_SHIFT_RIGHT ,
68- KeyEvent .KEYCODE_TAB ,
69- KeyEvent .KEYCODE_SPACE ,
70- KeyEvent .KEYCODE_SYM ,
71- KeyEvent .KEYCODE_EXPLORER ,
72- KeyEvent .KEYCODE_ENVELOPE ,
73- KeyEvent .KEYCODE_ENTER ,
74- KeyEvent .KEYCODE_FORWARD_DEL ,
75- KeyEvent .KEYCODE_DEL ,
76- KeyEvent .KEYCODE_GRAVE ,
77- KeyEvent .KEYCODE_MINUS ,
78- KeyEvent .KEYCODE_EQUALS ,
79- KeyEvent .KEYCODE_LEFT_BRACKET ,
80- KeyEvent .KEYCODE_RIGHT_BRACKET ,
81- KeyEvent .KEYCODE_BACKSLASH ,
82- KeyEvent .KEYCODE_SEMICOLON ,
83- KeyEvent .KEYCODE_APOSTROPHE ,
84- KeyEvent .KEYCODE_SLASH ,
85- KeyEvent .KEYCODE_AT ,
86- KeyEvent .KEYCODE_HEADSETHOOK ,
87- KeyEvent .KEYCODE_FOCUS ,
88- KeyEvent .KEYCODE_PLUS ,
89- KeyEvent .KEYCODE_MENU ,
90- KeyEvent .KEYCODE_NOTIFICATION ,
91- KeyEvent .KEYCODE_SEARCH ,
92- KeyEvent .KEYCODE_MEDIA_PLAY_PAUSE ,
93- KeyEvent .KEYCODE_MEDIA_STOP ,
94- KeyEvent .KEYCODE_MEDIA_NEXT ,
95- KeyEvent .KEYCODE_MEDIA_PREVIOUS ,
96- KeyEvent .KEYCODE_MEDIA_REWIND ,
97- KeyEvent .KEYCODE_MEDIA_FAST_FORWARD ,
98- KeyEvent .KEYCODE_PAGE_UP ,
99- KeyEvent .KEYCODE_PAGE_DOWN ,
100- KeyEvent .KEYCODE_PICTSYMBOLS ,
101- KeyEvent .KEYCODE_SWITCH_CHARSET ,
102- KeyEvent .KEYCODE_BUTTON_A ,
103- KeyEvent .KEYCODE_BUTTON_B ,
104- KeyEvent .KEYCODE_BUTTON_C ,
105- KeyEvent .KEYCODE_BUTTON_X ,
106- KeyEvent .KEYCODE_BUTTON_Y ,
107- KeyEvent .KEYCODE_BUTTON_Z ,
108- KeyEvent .KEYCODE_BUTTON_L1 ,
109- KeyEvent .KEYCODE_BUTTON_R1 ,
110- KeyEvent .KEYCODE_BUTTON_L2 ,
111- KeyEvent .KEYCODE_BUTTON_R2 ,
112- KeyEvent .KEYCODE_BUTTON_THUMBL ,
113- KeyEvent .KEYCODE_BUTTON_THUMBR ,
114- KeyEvent .KEYCODE_BUTTON_START ,
115- KeyEvent .KEYCODE_BUTTON_SELECT ,
116- KeyEvent .KEYCODE_BUTTON_MODE ,
117- KeyEvent .KEYCODE_ESCAPE ,
118- KeyEvent .KEYCODE_CTRL_LEFT ,
119- KeyEvent .KEYCODE_CTRL_RIGHT ,
120- KeyEvent .KEYCODE_CAPS_LOCK ,
121- KeyEvent .KEYCODE_SCROLL_LOCK ,
122- KeyEvent .KEYCODE_META_LEFT ,
123- KeyEvent .KEYCODE_META_RIGHT ,
124- KeyEvent .KEYCODE_FUNCTION ,
125- KeyEvent .KEYCODE_SYSRQ ,
126- KeyEvent .KEYCODE_BREAK ,
127- KeyEvent .KEYCODE_MOVE_HOME ,
128- KeyEvent .KEYCODE_MOVE_END ,
129- KeyEvent .KEYCODE_INSERT ,
130- KeyEvent .KEYCODE_FORWARD ,
131- KeyEvent .KEYCODE_MEDIA_PLAY ,
132- KeyEvent .KEYCODE_MEDIA_PAUSE ,
133- KeyEvent .KEYCODE_MEDIA_CLOSE ,
134- KeyEvent .KEYCODE_MEDIA_EJECT ,
135- KeyEvent .KEYCODE_MEDIA_RECORD ,
136- KeyEvent .KEYCODE_F1 ,
137- KeyEvent .KEYCODE_F2 ,
138- KeyEvent .KEYCODE_F3 ,
139- KeyEvent .KEYCODE_F4 ,
140- KeyEvent .KEYCODE_F5 ,
141- KeyEvent .KEYCODE_F6 ,
142- KeyEvent .KEYCODE_F7 ,
143- KeyEvent .KEYCODE_F8 ,
144- KeyEvent .KEYCODE_F9 ,
145- KeyEvent .KEYCODE_F10 ,
146- KeyEvent .KEYCODE_F11 ,
147- KeyEvent .KEYCODE_F12 ,
148- KeyEvent .KEYCODE_NUM ,
149- KeyEvent .KEYCODE_NUM_LOCK ,
150- KeyEvent .KEYCODE_NUMPAD_0 ,
151- KeyEvent .KEYCODE_NUMPAD_1 ,
152- KeyEvent .KEYCODE_NUMPAD_2 ,
153- KeyEvent .KEYCODE_NUMPAD_3 ,
154- KeyEvent .KEYCODE_NUMPAD_4 ,
155- KeyEvent .KEYCODE_NUMPAD_5 ,
156- KeyEvent .KEYCODE_NUMPAD_6 ,
157- KeyEvent .KEYCODE_NUMPAD_7 ,
158- KeyEvent .KEYCODE_NUMPAD_8 ,
159- KeyEvent .KEYCODE_NUMPAD_9 ,
160- KeyEvent .KEYCODE_NUMPAD_DIVIDE ,
161- KeyEvent .KEYCODE_NUMPAD_MULTIPLY ,
162- KeyEvent .KEYCODE_NUMPAD_SUBTRACT ,
163- KeyEvent .KEYCODE_NUMPAD_ADD ,
164- KeyEvent .KEYCODE_NUMPAD_DOT ,
165- KeyEvent .KEYCODE_NUMPAD_COMMA ,
166- KeyEvent .KEYCODE_NUMPAD_ENTER ,
167- KeyEvent .KEYCODE_NUMPAD_EQUALS ,
168- KeyEvent .KEYCODE_NUMPAD_LEFT_PAREN ,
169- KeyEvent .KEYCODE_NUMPAD_RIGHT_PAREN ,
170- KeyEvent .KEYCODE_MUTE ,
171- KeyEvent .KEYCODE_VOLUME_MUTE ,
172- KeyEvent .KEYCODE_INFO ,
173- KeyEvent .KEYCODE_CHANNEL_UP ,
174- KeyEvent .KEYCODE_CHANNEL_DOWN ,
175- KeyEvent .KEYCODE_ZOOM_IN ,
176- KeyEvent .KEYCODE_ZOOM_OUT ,
177- KeyEvent .KEYCODE_TV ,
178- KeyEvent .KEYCODE_WINDOW ,
179- KeyEvent .KEYCODE_GUIDE ,
180- KeyEvent .KEYCODE_DVR ,
181- KeyEvent .KEYCODE_BOOKMARK ,
182- KeyEvent .KEYCODE_CAPTIONS ,
183- KeyEvent .KEYCODE_SETTINGS ,
184- KeyEvent .KEYCODE_TV_POWER ,
185- KeyEvent .KEYCODE_TV_INPUT ,
186- KeyEvent .KEYCODE_STB_POWER ,
187- KeyEvent .KEYCODE_STB_INPUT ,
188- KeyEvent .KEYCODE_AVR_POWER ,
189- KeyEvent .KEYCODE_AVR_INPUT ,
190- KeyEvent .KEYCODE_PROG_RED ,
191- KeyEvent .KEYCODE_PROG_GREEN ,
192- KeyEvent .KEYCODE_PROG_YELLOW ,
193- KeyEvent .KEYCODE_PROG_BLUE ,
194- KeyEvent .KEYCODE_APP_SWITCH ,
195- KeyEvent .KEYCODE_BUTTON_1 ,
196- KeyEvent .KEYCODE_BUTTON_2 ,
197- KeyEvent .KEYCODE_BUTTON_3 ,
198- KeyEvent .KEYCODE_BUTTON_4 ,
199- KeyEvent .KEYCODE_BUTTON_5 ,
200- KeyEvent .KEYCODE_BUTTON_6 ,
201- KeyEvent .KEYCODE_BUTTON_7 ,
202- KeyEvent .KEYCODE_BUTTON_8 ,
203- KeyEvent .KEYCODE_BUTTON_9 ,
204- KeyEvent .KEYCODE_BUTTON_10 ,
205- KeyEvent .KEYCODE_BUTTON_11 ,
206- KeyEvent .KEYCODE_BUTTON_12 ,
207- KeyEvent .KEYCODE_BUTTON_13 ,
208- KeyEvent .KEYCODE_BUTTON_14 ,
209- KeyEvent .KEYCODE_BUTTON_15 ,
210- KeyEvent .KEYCODE_BUTTON_16 ,
211- KeyEvent .KEYCODE_LANGUAGE_SWITCH ,
212- KeyEvent .KEYCODE_MANNER_MODE ,
213- KeyEvent .KEYCODE_3D_MODE ,
214- KeyEvent .KEYCODE_CONTACTS ,
215- KeyEvent .KEYCODE_CALENDAR ,
216- KeyEvent .KEYCODE_MUSIC ,
217- KeyEvent .KEYCODE_CALCULATOR ,
218- KeyEvent .KEYCODE_ZENKAKU_HANKAKU ,
219- KeyEvent .KEYCODE_EISU ,
220- KeyEvent .KEYCODE_MUHENKAN ,
221- KeyEvent .KEYCODE_HENKAN ,
222- KeyEvent .KEYCODE_KATAKANA_HIRAGANA ,
223- KeyEvent .KEYCODE_YEN ,
224- KeyEvent .KEYCODE_RO ,
225- KeyEvent .KEYCODE_KANA ,
226- KeyEvent .KEYCODE_ASSIST ,
227- KeyEvent .KEYCODE_BRIGHTNESS_DOWN ,
228- KeyEvent .KEYCODE_BRIGHTNESS_UP ,
229- KeyEvent .KEYCODE_MEDIA_AUDIO_TRACK ,
230- KeyEvent .KEYCODE_PAIRING ,
231- KeyEvent .KEYCODE_MEDIA_TOP_MENU ,
232- KeyEvent .KEYCODE_11 ,
233- KeyEvent .KEYCODE_12 ,
234- KeyEvent .KEYCODE_LAST_CHANNEL ,
235- KeyEvent .KEYCODE_TV_DATA_SERVICE ,
236- KeyEvent .KEYCODE_VOICE_ASSIST ,
237- KeyEvent .KEYCODE_TV_RADIO_SERVICE ,
238- KeyEvent .KEYCODE_TV_TELETEXT ,
239- KeyEvent .KEYCODE_TV_NUMBER_ENTRY ,
240- KeyEvent .KEYCODE_TV_TERRESTRIAL_ANALOG ,
241- KeyEvent .KEYCODE_TV_TERRESTRIAL_DIGITAL ,
242- KeyEvent .KEYCODE_TV_SATELLITE ,
243- KeyEvent .KEYCODE_TV_SATELLITE_BS ,
244- KeyEvent .KEYCODE_TV_SATELLITE_CS ,
245- KeyEvent .KEYCODE_TV_SATELLITE_SERVICE ,
246- KeyEvent .KEYCODE_TV_NETWORK ,
247- KeyEvent .KEYCODE_TV_ANTENNA_CABLE ,
248- KeyEvent .KEYCODE_TV_INPUT_HDMI_1 ,
249- KeyEvent .KEYCODE_TV_INPUT_HDMI_2 ,
250- KeyEvent .KEYCODE_TV_INPUT_HDMI_3 ,
251- KeyEvent .KEYCODE_TV_INPUT_HDMI_4 ,
252- KeyEvent .KEYCODE_TV_INPUT_COMPOSITE_1 ,
253- KeyEvent .KEYCODE_TV_INPUT_COMPOSITE_2 ,
254- KeyEvent .KEYCODE_TV_INPUT_COMPONENT_1 ,
255- KeyEvent .KEYCODE_TV_INPUT_COMPONENT_2 ,
256- KeyEvent .KEYCODE_TV_INPUT_VGA_1 ,
257- KeyEvent .KEYCODE_TV_AUDIO_DESCRIPTION ,
258- KeyEvent .KEYCODE_TV_AUDIO_DESCRIPTION_MIX_UP ,
259- KeyEvent .KEYCODE_TV_AUDIO_DESCRIPTION_MIX_DOWN ,
260- KeyEvent .KEYCODE_TV_ZOOM_MODE ,
261- KeyEvent .KEYCODE_TV_CONTENTS_MENU ,
262- KeyEvent .KEYCODE_TV_MEDIA_CONTEXT_MENU ,
263- KeyEvent .KEYCODE_TV_TIMER_PROGRAMMING ,
264- KeyEvent .KEYCODE_HELP ,
265- KeyEvent .KEYCODE_NAVIGATE_PREVIOUS ,
266- KeyEvent .KEYCODE_NAVIGATE_NEXT ,
267- KeyEvent .KEYCODE_NAVIGATE_IN ,
268- KeyEvent .KEYCODE_NAVIGATE_OUT ,
269- KeyEvent .KEYCODE_MEDIA_SKIP_FORWARD ,
270- KeyEvent .KEYCODE_MEDIA_SKIP_BACKWARD ,
271- KeyEvent .KEYCODE_MEDIA_STEP_FORWARD ,
272- KeyEvent .KEYCODE_MEDIA_STEP_BACKWARD ,
273- KeyEvent .KEYCODE_STEM_PRIMARY ,
274- KeyEvent .KEYCODE_STEM_1 ,
275- KeyEvent .KEYCODE_STEM_2 ,
276- KeyEvent .KEYCODE_STEM_3 ,
277- KeyEvent .KEYCODE_DPAD_UP_LEFT ,
278- KeyEvent .KEYCODE_DPAD_DOWN_LEFT ,
279- KeyEvent .KEYCODE_DPAD_UP_RIGHT ,
280- KeyEvent .KEYCODE_DPAD_DOWN_RIGHT ,
281- KeyEvent .KEYCODE_SOFT_SLEEP ,
282- KeyEvent .KEYCODE_CUT ,
283- KeyEvent .KEYCODE_COPY ,
284- KeyEvent .KEYCODE_PASTE ,
285- KeyEvent .KEYCODE_SYSTEM_NAVIGATION_UP ,
286- KeyEvent .KEYCODE_SYSTEM_NAVIGATION_DOWN ,
287- KeyEvent .KEYCODE_SYSTEM_NAVIGATION_LEFT ,
288- KeyEvent .KEYCODE_SYSTEM_NAVIGATION_RIGHT ,
289- KeyEvent .KEYCODE_REFRESH ,
290- KeyEvent .KEYCODE_THUMBS_UP ,
291- KeyEvent .KEYCODE_THUMBS_DOWN ,
292- KeyEvent .KEYCODE_PROFILE_SWITCH ,
293- KeyEvent .KEYCODE_VIDEO_APP_1 ,
294- KeyEvent .KEYCODE_VIDEO_APP_2 ,
295- KeyEvent .KEYCODE_VIDEO_APP_3 ,
296- KeyEvent .KEYCODE_VIDEO_APP_4 ,
297- KeyEvent .KEYCODE_VIDEO_APP_5 ,
298- KeyEvent .KEYCODE_VIDEO_APP_6 ,
299- KeyEvent .KEYCODE_VIDEO_APP_7 ,
300- KeyEvent .KEYCODE_VIDEO_APP_8 ,
301- KeyEvent .KEYCODE_FEATURED_APP_1 ,
302- KeyEvent .KEYCODE_FEATURED_APP_2 ,
303- KeyEvent .KEYCODE_FEATURED_APP_3 ,
304- KeyEvent .KEYCODE_FEATURED_APP_4 ,
305- KeyEvent .KEYCODE_DEMO_APP_1 ,
306- KeyEvent .KEYCODE_DEMO_APP_2 ,
307- KeyEvent .KEYCODE_DEMO_APP_3 ,
308- KeyEvent .KEYCODE_DEMO_APP_4 ,
309- KeyEvent .KEYCODE_KEYBOARD_BACKLIGHT_DOWN ,
310- KeyEvent .KEYCODE_KEYBOARD_BACKLIGHT_UP ,
311- KeyEvent .KEYCODE_KEYBOARD_BACKLIGHT_TOGGLE ,
312- KeyEvent .KEYCODE_STYLUS_BUTTON_PRIMARY ,
313- KeyEvent .KEYCODE_STYLUS_BUTTON_SECONDARY ,
314- KeyEvent .KEYCODE_STYLUS_BUTTON_TERTIARY ,
315- KeyEvent .KEYCODE_STYLUS_BUTTON_TAIL ,
316- KeyEvent .KEYCODE_RECENT_APPS ,
317- KeyEvent .KEYCODE_MACRO_1 ,
318- KeyEvent .KEYCODE_MACRO_2 ,
319- KeyEvent .KEYCODE_MACRO_3 ,
320- KeyEvent .KEYCODE_MACRO_4 ,
321- KeyEvent .KEYCODE_EMOJI_PICKER ,
322- KeyEvent .KEYCODE_SCREENSHOT ,
323- ).distinct().toIntArray()
7+ private val KEYCODES : IntArray by lazy { buildKeyCodeList() }
8+
9+ private fun buildKeyCodeList (): IntArray {
10+ return IntArray (KeyEvent .getMaxKeyCode()) { it }
11+ }
32412
32513 val MODIFIER_KEYCODES : Set <Int >
32614 get() = setOf (
@@ -387,9 +75,11 @@ object KeyEventUtils {
38775
38876 fun modifierKeycodeToMetaState (modifier : Int ) = when (modifier) {
38977 KeyEvent .KEYCODE_ALT_LEFT -> KeyEvent .META_ALT_LEFT_ON .withFlag(KeyEvent .META_ALT_ON )
78+
39079 KeyEvent .KEYCODE_ALT_RIGHT -> KeyEvent .META_ALT_RIGHT_ON .withFlag(KeyEvent .META_ALT_ON )
39180
39281 KeyEvent .KEYCODE_SHIFT_LEFT -> KeyEvent .META_SHIFT_LEFT_ON .withFlag(KeyEvent .META_SHIFT_ON )
82+
39383 KeyEvent .KEYCODE_SHIFT_RIGHT -> KeyEvent .META_SHIFT_RIGHT_ON .withFlag(
39484 KeyEvent .META_SHIFT_ON ,
39585 )
@@ -399,13 +89,17 @@ object KeyEventUtils {
39989 KeyEvent .KEYCODE_FUNCTION -> KeyEvent .META_FUNCTION_ON
40090
40191 KeyEvent .KEYCODE_CTRL_LEFT -> KeyEvent .META_CTRL_LEFT_ON .withFlag(KeyEvent .META_CTRL_ON )
92+
40293 KeyEvent .KEYCODE_CTRL_RIGHT -> KeyEvent .META_CTRL_RIGHT_ON .withFlag(KeyEvent .META_CTRL_ON )
40394
40495 KeyEvent .KEYCODE_META_LEFT -> KeyEvent .META_META_LEFT_ON .withFlag(KeyEvent .META_META_ON )
96+
40597 KeyEvent .KEYCODE_META_RIGHT -> KeyEvent .META_META_RIGHT_ON .withFlag(KeyEvent .META_META_ON )
40698
40799 KeyEvent .KEYCODE_CAPS_LOCK -> KeyEvent .META_CAPS_LOCK_ON
100+
408101 KeyEvent .KEYCODE_NUM_LOCK -> KeyEvent .META_NUM_LOCK_ON
102+
409103 KeyEvent .KEYCODE_SCROLL_LOCK -> KeyEvent .META_SCROLL_LOCK_ON
410104
411105 else -> throw Exception (" can't convert modifier $modifier to meta state" )
0 commit comments