1 /*
2 * Copyright (c) 2021-2025 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "key_event.h"
17
18 #include "mmi_log.h"
19
20 #undef MMI_LOG_TAG
21 #define MMI_LOG_TAG "KeyEvent"
22
23 using namespace OHOS::HiviewDFX;
24 namespace OHOS {
25 namespace MMI {
26 namespace {
27 const std::map <int32_t, std::string> KEYCODE_TO_STRING = {
28 #ifndef OHOS_BUILD_ENABLE_WATCH
29 {KeyEvent::KEYCODE_FN, "KEYCODE_FN"},
30 {KeyEvent::KEYCODE_UNKNOWN, "KEYCODE_UNKNOWN"},
31 {KeyEvent::KEYCODE_HOME, "KEYCODE_HOME"},
32 {KeyEvent::KEYCODE_BACK, "KEYCODE_BACK"},
33 {KeyEvent::KEYCODE_CALL, "KEYCODE_CALL"},
34 {KeyEvent::KEYCODE_ENDCALL, "KEYCODE_ENDCALL"},
35 {KeyEvent::KEYCODE_CLEAR, "KEYCODE_CLEAR"},
36 {KeyEvent::KEYCODE_HEADSETHOOK, "KEYCODE_HEADSETHOOK"},
37 {KeyEvent::KEYCODE_FOCUS, "KEYCODE_FOCUS"},
38 {KeyEvent::KEYCODE_NOTIFICATION, "KEYCODE_NOTIFICATION"},
39 {KeyEvent::KEYCODE_SEARCH, "KEYCODE_SEARCH"},
40 {KeyEvent::KEYCODE_MEDIA_PLAY_PAUSE, "KEYCODE_MEDIA_PLAY_PAUSE"},
41 {KeyEvent::KEYCODE_MEDIA_STOP, "KEYCODE_MEDIA_STOP"},
42 {KeyEvent::KEYCODE_MEDIA_NEXT, "KEYCODE_MEDIA_NEXT"},
43 {KeyEvent::KEYCODE_MEDIA_PREVIOUS, "KEYCODE_MEDIA_PREVIOUS"},
44 {KeyEvent::KEYCODE_MEDIA_REWIND, "KEYCODE_MEDIA_REWIND"},
45 {KeyEvent::KEYCODE_MEDIA_FAST_FORWARD, "KEYCODE_MEDIA_FAST_FORWARD"},
46 {KeyEvent::KEYCODE_VOLUME_UP, "KEYCODE_VOLUME_UP"},
47 {KeyEvent::KEYCODE_VOLUME_DOWN, "KEYCODE_VOLUME_DOWN"},
48 {KeyEvent::KEYCODE_POWER, "KEYCODE_POWER"},
49 {KeyEvent::KEYCODE_CAMERA, "KEYCODE_CAMERA"},
50 {KeyEvent::KEYCODE_VOICE_ASSISTANT, "KEYCODE_VOICE_ASSISTANT"},
51 {KeyEvent::KEYCODE_CUSTOM1, "KEYCODE_CUSTOM1"},
52 {KeyEvent::KEYCODE_VOLUME_MUTE, "KEYCODE_VOLUME_MUTE"},
53 {KeyEvent::KEYCODE_MUTE, "KEYCODE_MUTE"},
54 {KeyEvent::KEYCODE_BRIGHTNESS_UP, "KEYCODE_BRIGHTNESS_UP"},
55 {KeyEvent::KEYCODE_BRIGHTNESS_DOWN, "KEYCODE_BRIGHTNESS_DOWN"},
56 {KeyEvent::KEYCODE_WEAR_1, "KEYCODE_WEAR_1"},
57 {KeyEvent::KEYCODE_0, "KEYCODE_0"},
58 {KeyEvent::KEYCODE_1, "KEYCODE_1"},
59 {KeyEvent::KEYCODE_2, "KEYCODE_2"},
60 {KeyEvent::KEYCODE_3, "KEYCODE_3"},
61 {KeyEvent::KEYCODE_4, "KEYCODE_4"},
62 {KeyEvent::KEYCODE_5, "KEYCODE_5"},
63 {KeyEvent::KEYCODE_6, "KEYCODE_6"},
64 {KeyEvent::KEYCODE_7, "KEYCODE_7"},
65 {KeyEvent::KEYCODE_8, "KEYCODE_8"},
66 {KeyEvent::KEYCODE_9, "KEYCODE_9"},
67 {KeyEvent::KEYCODE_STAR, "KEYCODE_STAR"},
68 {KeyEvent::KEYCODE_POUND, "KEYCODE_POUND"},
69 {KeyEvent::KEYCODE_DPAD_UP, "KEYCODE_DPAD_UP"},
70 {KeyEvent::KEYCODE_DPAD_DOWN, "KEYCODE_DPAD_DOWN"},
71 {KeyEvent::KEYCODE_DPAD_LEFT, "KEYCODE_DPAD_LEFT"},
72 {KeyEvent::KEYCODE_DPAD_RIGHT, "KEYCODE_DPAD_RIGHT"},
73 {KeyEvent::KEYCODE_DPAD_CENTER, "KEYCODE_DPAD_CENTER"},
74 {KeyEvent::KEYCODE_A, "KEYCODE_A"},
75 {KeyEvent::KEYCODE_B, "KEYCODE_B"},
76 {KeyEvent::KEYCODE_C, "KEYCODE_C"},
77 {KeyEvent::KEYCODE_D, "KEYCODE_D"},
78 {KeyEvent::KEYCODE_E, "KEYCODE_E"},
79 {KeyEvent::KEYCODE_F, "KEYCODE_F"},
80 {KeyEvent::KEYCODE_G, "KEYCODE_G"},
81 {KeyEvent::KEYCODE_H, "KEYCODE_H"},
82 {KeyEvent::KEYCODE_I, "KEYCODE_I"},
83 {KeyEvent::KEYCODE_J, "KEYCODE_J"},
84 {KeyEvent::KEYCODE_K, "KEYCODE_K"},
85 {KeyEvent::KEYCODE_L, "KEYCODE_L"},
86 {KeyEvent::KEYCODE_M, "KEYCODE_M"},
87 {KeyEvent::KEYCODE_N, "KEYCODE_N"},
88 {KeyEvent::KEYCODE_O, "KEYCODE_O"},
89 {KeyEvent::KEYCODE_P, "KEYCODE_P"},
90 {KeyEvent::KEYCODE_Q, "KEYCODE_Q"},
91 {KeyEvent::KEYCODE_R, "KEYCODE_R"},
92 {KeyEvent::KEYCODE_S, "KEYCODE_S"},
93 {KeyEvent::KEYCODE_T, "KEYCODE_T"},
94 {KeyEvent::KEYCODE_U, "KEYCODE_U"},
95 {KeyEvent::KEYCODE_V, "KEYCODE_V"},
96 {KeyEvent::KEYCODE_W, "KEYCODE_W"},
97 {KeyEvent::KEYCODE_X, "KEYCODE_X"},
98 {KeyEvent::KEYCODE_Y, "KEYCODE_Y"},
99 {KeyEvent::KEYCODE_Z, "KEYCODE_Z"},
100 {KeyEvent::KEYCODE_COMMA, "KEYCODE_COMMA"},
101 {KeyEvent::KEYCODE_PERIOD, "KEYCODE_PERIOD"},
102 {KeyEvent::KEYCODE_ALT_LEFT, "KEYCODE_ALT_LEFT"},
103 {KeyEvent::KEYCODE_ALT_RIGHT, "KEYCODE_ALT_RIGHT"},
104 {KeyEvent::KEYCODE_SHIFT_LEFT, "KEYCODE_SHIFT_LEFT"},
105 {KeyEvent::KEYCODE_SHIFT_RIGHT, "KEYCODE_SHIFT_RIGHT"},
106 {KeyEvent::KEYCODE_TAB, "KEYCODE_TAB"},
107 {KeyEvent::KEYCODE_SPACE, "KEYCODE_SPACE"},
108 {KeyEvent::KEYCODE_SYM, "KEYCODE_SYM"},
109 {KeyEvent::KEYCODE_EXPLORER, "KEYCODE_EXPLORER"},
110 {KeyEvent::KEYCODE_ENVELOPE, "KEYCODE_ENVELOPE"},
111 {KeyEvent::KEYCODE_ENTER, "KEYCODE_ENTER"},
112 {KeyEvent::KEYCODE_DEL, "KEYCODE_DEL"},
113 {KeyEvent::KEYCODE_GRAVE, "KEYCODE_GRAVE"},
114 {KeyEvent::KEYCODE_MINUS, "KEYCODE_MINUS"},
115 {KeyEvent::KEYCODE_EQUALS, "KEYCODE_EQUALS"},
116 {KeyEvent::KEYCODE_LEFT_BRACKET, "KEYCODE_LEFT_BRACKET"},
117 {KeyEvent::KEYCODE_RIGHT_BRACKET, "KEYCODE_RIGHT_BRACKET"},
118 {KeyEvent::KEYCODE_BACKSLASH, "KEYCODE_BACKSLASH"},
119 {KeyEvent::KEYCODE_SEMICOLON, "KEYCODE_SEMICOLON"},
120 {KeyEvent::KEYCODE_APOSTROPHE, "KEYCODE_APOSTROPHE"},
121 {KeyEvent::KEYCODE_SLASH, "KEYCODE_SLASH"},
122 {KeyEvent::KEYCODE_AT, "KEYCODE_AT"},
123 {KeyEvent::KEYCODE_PLUS, "KEYCODE_PLUS"},
124 {KeyEvent::KEYCODE_MENU, "KEYCODE_MENU"},
125 {KeyEvent::KEYCODE_PAGE_UP, "KEYCODE_PAGE_UP"},
126 {KeyEvent::KEYCODE_PAGE_DOWN, "KEYCODE_PAGE_DOWN"},
127 {KeyEvent::KEYCODE_ESCAPE, "KEYCODE_ESCAPE"},
128 {KeyEvent::KEYCODE_FORWARD_DEL, "KEYCODE_FORWARD_DEL"},
129 {KeyEvent::KEYCODE_CTRL_LEFT, "KEYCODE_CTRL_LEFT"},
130 {KeyEvent::KEYCODE_CTRL_RIGHT, "KEYCODE_CTRL_RIGHT"},
131 {KeyEvent::KEYCODE_CAPS_LOCK, "KEYCODE_CAPS_LOCK"},
132 {KeyEvent::KEYCODE_SCROLL_LOCK, "KEYCODE_SCROLL_LOCK"},
133 {KeyEvent::KEYCODE_META_LEFT, "KEYCODE_META_LEFT"},
134 {KeyEvent::KEYCODE_META_RIGHT, "KEYCODE_META_RIGHT"},
135 {KeyEvent::KEYCODE_FUNCTION, "KEYCODE_FUNCTION"},
136 {KeyEvent::KEYCODE_SYSRQ, "KEYCODE_SYSRQ"},
137 {KeyEvent::KEYCODE_BREAK, "KEYCODE_BREAK"},
138 {KeyEvent::KEYCODE_MOVE_HOME, "KEYCODE_MOVE_HOME"},
139 {KeyEvent::KEYCODE_MOVE_END, "KEYCODE_MOVE_END"},
140 {KeyEvent::KEYCODE_INSERT, "KEYCODE_INSERT"},
141 {KeyEvent::KEYCODE_FORWARD, "KEYCODE_FORWARD"},
142 {KeyEvent::KEYCODE_MEDIA_PLAY, "KEYCODE_MEDIA_PLAY"},
143 {KeyEvent::KEYCODE_MEDIA_PAUSE, "KEYCODE_MEDIA_PAUSE"},
144 {KeyEvent::KEYCODE_MEDIA_CLOSE, "KEYCODE_MEDIA_CLOSE"},
145 {KeyEvent::KEYCODE_MEDIA_EJECT, "KEYCODE_MEDIA_EJECT"},
146 {KeyEvent::KEYCODE_MEDIA_RECORD, "KEYCODE_MEDIA_RECORD"},
147 {KeyEvent::KEYCODE_F1, "KEYCODE_F1"},
148 {KeyEvent::KEYCODE_F2, "KEYCODE_F2"},
149 {KeyEvent::KEYCODE_F3, "KEYCODE_F3"},
150 {KeyEvent::KEYCODE_F4, "KEYCODE_F4"},
151 {KeyEvent::KEYCODE_F5, "KEYCODE_F5"},
152 {KeyEvent::KEYCODE_F6, "KEYCODE_F6"},
153 {KeyEvent::KEYCODE_F7, "KEYCODE_F7"},
154 {KeyEvent::KEYCODE_F8, "KEYCODE_F8"},
155 {KeyEvent::KEYCODE_F9, "KEYCODE_F9"},
156 {KeyEvent::KEYCODE_F10, "KEYCODE_F10"},
157 {KeyEvent::KEYCODE_F11, "KEYCODE_F11"},
158 {KeyEvent::KEYCODE_F12, "KEYCODE_F12"},
159 {KeyEvent::KEYCODE_NUM_LOCK, "KEYCODE_NUM_LOCK"},
160 {KeyEvent::KEYCODE_NUMPAD_0, "KEYCODE_NUMPAD_0"},
161 {KeyEvent::KEYCODE_NUMPAD_1, "KEYCODE_NUMPAD_1"},
162 {KeyEvent::KEYCODE_NUMPAD_2, "KEYCODE_NUMPAD_2"},
163 {KeyEvent::KEYCODE_NUMPAD_3, "KEYCODE_NUMPAD_3"},
164 {KeyEvent::KEYCODE_NUMPAD_4, "KEYCODE_NUMPAD_4"},
165 {KeyEvent::KEYCODE_NUMPAD_5, "KEYCODE_NUMPAD_5"},
166 {KeyEvent::KEYCODE_NUMPAD_6, "KEYCODE_NUMPAD_6"},
167 {KeyEvent::KEYCODE_NUMPAD_7, "KEYCODE_NUMPAD_7"},
168 {KeyEvent::KEYCODE_NUMPAD_8, "KEYCODE_NUMPAD_8"},
169 {KeyEvent::KEYCODE_NUMPAD_9, "KEYCODE_NUMPAD_9"},
170 {KeyEvent::KEYCODE_NUMPAD_DIVIDE, "KEYCODE_NUMPAD_DIVIDE"},
171 {KeyEvent::KEYCODE_NUMPAD_MULTIPLY, "KEYCODE_NUMPAD_MULTIPLY"},
172 {KeyEvent::KEYCODE_NUMPAD_SUBTRACT, "KEYCODE_NUMPAD_SUBTRACT"},
173 {KeyEvent::KEYCODE_NUMPAD_ADD, "KEYCODE_NUMPAD_ADD"},
174 {KeyEvent::KEYCODE_NUMPAD_DOT, "KEYCODE_NUMPAD_DOT"},
175 {KeyEvent::KEYCODE_NUMPAD_COMMA, "KEYCODE_NUMPAD_COMMA"},
176 {KeyEvent::KEYCODE_NUMPAD_ENTER, "KEYCODE_NUMPAD_ENTER"},
177 {KeyEvent::KEYCODE_NUMPAD_EQUALS, "KEYCODE_NUMPAD_EQUALS"},
178 {KeyEvent::KEYCODE_NUMPAD_LEFT_PAREN, "KEYCODE_NUMPAD_LEFT_PAREN"},
179 {KeyEvent::KEYCODE_NUMPAD_RIGHT_PAREN, "KEYCODE_NUMPAD_RIGHT_PAREN"},
180 {KeyEvent::KEYCODE_VIRTUAL_MULTITASK, "KEYCODE_VIRTUAL_MULTITASK"},
181 {KeyEvent::KEYCODE_BUTTON_A, "KEYCODE_BUTTON_A"},
182 {KeyEvent::KEYCODE_BUTTON_B, "KEYCODE_BUTTON_B"},
183 {KeyEvent::KEYCODE_BUTTON_C, "KEYCODE_BUTTON_C"},
184 {KeyEvent::KEYCODE_BUTTON_X, "KEYCODE_BUTTON_X"},
185 {KeyEvent::KEYCODE_BUTTON_Y, "KEYCODE_BUTTON_Y"},
186 {KeyEvent::KEYCODE_BUTTON_Z, "KEYCODE_BUTTON_Z"},
187 {KeyEvent::KEYCODE_BUTTON_L1, "KEYCODE_BUTTON_L1"},
188 {KeyEvent::KEYCODE_BUTTON_R1, "KEYCODE_BUTTON_R1"},
189 {KeyEvent::KEYCODE_BUTTON_L2, "KEYCODE_BUTTON_L2"},
190 {KeyEvent::KEYCODE_BUTTON_R2, "KEYCODE_BUTTON_R2"},
191 {KeyEvent::KEYCODE_BUTTON_SELECT, "KEYCODE_BUTTON_SELECT"},
192 {KeyEvent::KEYCODE_BUTTON_START, "KEYCODE_BUTTON_START"},
193 {KeyEvent::KEYCODE_BUTTON_MODE, "KEYCODE_BUTTON_MODE"},
194 {KeyEvent::KEYCODE_BUTTON_THUMBL, "KEYCODE_BUTTON_THUMBL"},
195 {KeyEvent::KEYCODE_BUTTON_THUMBR, "KEYCODE_BUTTON_THUMBR"},
196 {KeyEvent::KEYCODE_BUTTON_TRIGGER, "KEYCODE_BUTTON_TRIGGER"},
197 {KeyEvent::KEYCODE_BUTTON_THUMB, "KEYCODE_BUTTON_THUMB"},
198 {KeyEvent::KEYCODE_BUTTON_THUMB2, "KEYCODE_BUTTON_THUMB2"},
199 {KeyEvent::KEYCODE_BUTTON_TOP, "KEYCODE_BUTTON_TOP"},
200 {KeyEvent::KEYCODE_BUTTON_TOP2, "KEYCODE_BUTTON_TOP2"},
201 {KeyEvent::KEYCODE_BUTTON_PINKIE, "KEYCODE_BUTTON_PINKIE"},
202 {KeyEvent::KEYCODE_BUTTON_BASE1, "KEYCODE_BUTTON_BASE1"},
203 {KeyEvent::KEYCODE_BUTTON_BASE2, "KEYCODE_BUTTON_BASE2"},
204 {KeyEvent::KEYCODE_BUTTON_BASE3, "KEYCODE_BUTTON_BASE3"},
205 {KeyEvent::KEYCODE_BUTTON_BASE4, "KEYCODE_BUTTON_BASE4"},
206 {KeyEvent::KEYCODE_BUTTON_BASE5, "KEYCODE_BUTTON_BASE5"},
207 {KeyEvent::KEYCODE_BUTTON_BASE6, "KEYCODE_BUTTON_BASE6"},
208 {KeyEvent::KEYCODE_BUTTON_BASE7, "KEYCODE_BUTTON_BASE7"},
209 {KeyEvent::KEYCODE_BUTTON_BASE8, "KEYCODE_BUTTON_BASE8"},
210 {KeyEvent::KEYCODE_BUTTON_BASE9, "KEYCODE_BUTTON_BASE9"},
211 {KeyEvent::KEYCODE_BUTTON_DEAD, "KEYCODE_BUTTON_DEAD"},
212 {KeyEvent::KEYCODE_SLEEP, "KEYCODE_SLEEP"},
213 {KeyEvent::KEYCODE_ZENKAKU_HANKAKU, "KEYCODE_ZENKAKU_HANKAKU"},
214 {KeyEvent::KEYCODE_102ND, "KEYCODE_102ND"},
215 {KeyEvent::KEYCODE_RO, "KEYCODE_RO"},
216 {KeyEvent::KEYCODE_KATAKANA, "KEYCODE_KATAKANA"},
217 {KeyEvent::KEYCODE_HIRAGANA, "KEYCODE_HIRAGANA"},
218 {KeyEvent::KEYCODE_HENKAN, "KEYCODE_HENKAN"},
219 {KeyEvent::KEYCODE_KATAKANA_HIRAGANA, "KEYCODE_KATAKANA_HIRAGANA"},
220 {KeyEvent::KEYCODE_MUHENKAN, "KEYCODE_MUHENKAN"},
221 {KeyEvent::KEYCODE_LINEFEED, "KEYCODE_LINEFEED"},
222 {KeyEvent::KEYCODE_MACRO, "KEYCODE_MACRO"},
223 {KeyEvent::KEYCODE_NUMPAD_PLUSMINUS, "KEYCODE_NUMPAD_PLUSMINUS"},
224 {KeyEvent::KEYCODE_SCALE, "KEYCODE_SCALE"},
225 {KeyEvent::KEYCODE_HANGUEL, "KEYCODE_HANGUEL"},
226 {KeyEvent::KEYCODE_HANJA, "KEYCODE_HANJA"},
227 {KeyEvent::KEYCODE_YEN, "KEYCODE_YEN"},
228 {KeyEvent::KEYCODE_STOP, "KEYCODE_STOP"},
229 {KeyEvent::KEYCODE_AGAIN, "KEYCODE_AGAIN"},
230 {KeyEvent::KEYCODE_PROPS, "KEYCODE_PROPS"},
231 {KeyEvent::KEYCODE_UNDO, "KEYCODE_UNDO"},
232 {KeyEvent::KEYCODE_COPY, "KEYCODE_COPY"},
233 {KeyEvent::KEYCODE_OPEN, "KEYCODE_OPEN"},
234 {KeyEvent::KEYCODE_PASTE, "KEYCODE_PASTE"},
235 {KeyEvent::KEYCODE_FIND, "KEYCODE_FIND"},
236 {KeyEvent::KEYCODE_CUT, "KEYCODE_CUT"},
237 {KeyEvent::KEYCODE_HELP, "KEYCODE_HELP"},
238 {KeyEvent::KEYCODE_CALC, "KEYCODE_CALC"},
239 {KeyEvent::KEYCODE_FILE, "KEYCODE_FILE"},
240 {KeyEvent::KEYCODE_BOOKMARKS, "KEYCODE_BOOKMARKS"},
241 {KeyEvent::KEYCODE_NEXT, "KEYCODE_NEXT"},
242 {KeyEvent::KEYCODE_PLAYPAUSE, "KEYCODE_PLAYPAUSE"},
243 {KeyEvent::KEYCODE_PREVIOUS, "KEYCODE_PREVIOUS"},
244 {KeyEvent::KEYCODE_STOPCD, "KEYCODE_STOPCD"},
245 {KeyEvent::KEYCODE_CONFIG, "KEYCODE_CONFIG"},
246 {KeyEvent::KEYCODE_REFRESH, "KEYCODE_REFRESH"},
247 {KeyEvent::KEYCODE_EXIT, "KEYCODE_EXIT"},
248 {KeyEvent::KEYCODE_EDIT, "KEYCODE_EDIT"},
249 {KeyEvent::KEYCODE_SCROLLUP, "KEYCODE_SCROLLUP"},
250 {KeyEvent::KEYCODE_SCROLLDOWN, "KEYCODE_SCROLLDOWN"},
251 {KeyEvent::KEYCODE_NEW, "KEYCODE_NEW"},
252 {KeyEvent::KEYCODE_REDO, "KEYCODE_REDO"},
253 {KeyEvent::KEYCODE_CLOSE, "KEYCODE_CLOSE"},
254 {KeyEvent::KEYCODE_PLAY, "KEYCODE_PLAY"},
255 {KeyEvent::KEYCODE_BASSBOOST, "KEYCODE_BASSBOOST"},
256 {KeyEvent::KEYCODE_PRINT, "KEYCODE_PRINT"},
257 {KeyEvent::KEYCODE_CHAT, "KEYCODE_CHAT"},
258 {KeyEvent::KEYCODE_FINANCE, "KEYCODE_FINANCE"},
259 {KeyEvent::KEYCODE_CANCEL, "KEYCODE_CANCEL"},
260 {KeyEvent::KEYCODE_KBDILLUM_TOGGLE, "KEYCODE_KBDILLUM_TOGGLE"},
261 {KeyEvent::KEYCODE_KBDILLUM_DOWN, "KEYCODE_KBDILLUM_DOWN"},
262 {KeyEvent::KEYCODE_KBDILLUM_UP, "KEYCODE_KBDILLUM_UP"},
263 {KeyEvent::KEYCODE_SEND, "KEYCODE_SEND"},
264 {KeyEvent::KEYCODE_REPLY, "KEYCODE_REPLY"},
265 {KeyEvent::KEYCODE_FORWARDMAIL, "KEYCODE_FORWARDMAIL"},
266 {KeyEvent::KEYCODE_SAVE, "KEYCODE_SAVE"},
267 {KeyEvent::KEYCODE_DOCUMENTS, "KEYCODE_DOCUMENTS"},
268 {KeyEvent::KEYCODE_VIDEO_NEXT, "KEYCODE_VIDEO_NEXT"},
269 {KeyEvent::KEYCODE_VIDEO_PREV, "KEYCODE_VIDEO_PREV"},
270 {KeyEvent::KEYCODE_BRIGHTNESS_CYCLE, "KEYCODE_BRIGHTNESS_CYCLE"},
271 {KeyEvent::KEYCODE_BRIGHTNESS_ZERO, "KEYCODE_BRIGHTNESS_ZERO"},
272 {KeyEvent::KEYCODE_DISPLAY_OFF, "KEYCODE_DISPLAY_OFF"},
273 {KeyEvent::KEYCODE_BTN_MISC, "KEYCODE_BTN_MISC"},
274 {KeyEvent::KEYCODE_GOTO, "KEYCODE_GOTO"},
275 {KeyEvent::KEYCODE_INFO, "KEYCODE_INFO"},
276 {KeyEvent::KEYCODE_PROGRAM, "KEYCODE_PROGRAM"},
277 {KeyEvent::KEYCODE_PVR, "KEYCODE_PVR"},
278 {KeyEvent::KEYCODE_SUBTITLE, "KEYCODE_SUBTITLE"},
279 {KeyEvent::KEYCODE_FULL_SCREEN, "KEYCODE_FULL_SCREEN"},
280 {KeyEvent::KEYCODE_KEYBOARD, "KEYCODE_KEYBOARD"},
281 {KeyEvent::KEYCODE_ASPECT_RATIO, "KEYCODE_ASPECT_RATIO"},
282 {KeyEvent::KEYCODE_PC, "KEYCODE_PC"},
283 {KeyEvent::KEYCODE_TV, "KEYCODE_TV"},
284 {KeyEvent::KEYCODE_TV2, "KEYCODE_TV2"},
285 {KeyEvent::KEYCODE_VCR, "KEYCODE_VCR"},
286 {KeyEvent::KEYCODE_VCR2, "KEYCODE_VCR2"},
287 {KeyEvent::KEYCODE_SAT, "KEYCODE_SAT"},
288 {KeyEvent::KEYCODE_CD, "KEYCODE_CD"},
289 {KeyEvent::KEYCODE_TAPE, "KEYCODE_TAPE"},
290 {KeyEvent::KEYCODE_TUNER, "KEYCODE_TUNER"},
291 {KeyEvent::KEYCODE_PLAYER, "KEYCODE_PLAYER"},
292 {KeyEvent::KEYCODE_DVD, "KEYCODE_DVD"},
293 {KeyEvent::KEYCODE_AUDIO, "KEYCODE_AUDIO"},
294 {KeyEvent::KEYCODE_VIDEO, "KEYCODE_VIDEO"},
295 {KeyEvent::KEYCODE_MEMO, "KEYCODE_MEMO"},
296 {KeyEvent::KEYCODE_CALENDAR, "KEYCODE_CALENDAR"},
297 {KeyEvent::KEYCODE_RED, "KEYCODE_RED"},
298 {KeyEvent::KEYCODE_GREEN, "KEYCODE_GREEN"},
299 {KeyEvent::KEYCODE_YELLOW, "KEYCODE_YELLOW"},
300 {KeyEvent::KEYCODE_BLUE, "KEYCODE_BLUE"},
301 {KeyEvent::KEYCODE_CHANNELUP, "KEYCODE_CHANNELUP"},
302 {KeyEvent::KEYCODE_CHANNELDOWN, "KEYCODE_CHANNELDOWN"},
303 {KeyEvent::KEYCODE_LAST, "KEYCODE_LAST"},
304 {KeyEvent::KEYCODE_RESTART, "KEYCODE_RESTART"},
305 {KeyEvent::KEYCODE_SLOW, "KEYCODE_SLOW"},
306 {KeyEvent::KEYCODE_SHUFFLE, "KEYCODE_SHUFFLE"},
307 {KeyEvent::KEYCODE_VIDEOPHONE, "KEYCODE_VIDEOPHONE"},
308 {KeyEvent::KEYCODE_GAMES, "KEYCODE_GAMES"},
309 {KeyEvent::KEYCODE_ZOOMIN, "KEYCODE_ZOOMIN"},
310 {KeyEvent::KEYCODE_ZOOMOUT, "KEYCODE_ZOOMOUT"},
311 {KeyEvent::KEYCODE_ZOOMRESET, "KEYCODE_ZOOMRESET"},
312 {KeyEvent::KEYCODE_WORDPROCESSOR, "KEYCODE_WORDPROCESSOR"},
313 {KeyEvent::KEYCODE_EDITOR, "KEYCODE_EDITOR"},
314 {KeyEvent::KEYCODE_SPREADSHEET, "KEYCODE_SPREADSHEET"},
315 {KeyEvent::KEYCODE_GRAPHICSEDITOR, "KEYCODE_GRAPHICSEDITOR"},
316 {KeyEvent::KEYCODE_PRESENTATION, "KEYCODE_PRESENTATION"},
317 {KeyEvent::KEYCODE_DATABASE, "KEYCODE_DATABASE"},
318 {KeyEvent::KEYCODE_NEWS, "KEYCODE_NEWS"},
319 {KeyEvent::KEYCODE_VOICEMAIL, "KEYCODE_VOICEMAIL"},
320 {KeyEvent::KEYCODE_ADDRESSBOOK, "KEYCODE_ADDRESSBOOK"},
321 {KeyEvent::KEYCODE_MESSENGER, "KEYCODE_MESSENGER"},
322 {KeyEvent::KEYCODE_BRIGHTNESS_TOGGLE, "KEYCODE_BRIGHTNESS_TOGGLE"},
323 {KeyEvent::KEYCODE_SPELLCHECK, "KEYCODE_SPELLCHECK"},
324 {KeyEvent::KEYCODE_COFFEE, "KEYCODE_COFFEE"},
325 {KeyEvent::KEYCODE_MEDIA_REPEAT, "KEYCODE_MEDIA_REPEAT"},
326 {KeyEvent::KEYCODE_IMAGES, "KEYCODE_IMAGES"},
327 {KeyEvent::KEYCODE_BUTTONCONFIG, "KEYCODE_BUTTONCONFIG"},
328 {KeyEvent::KEYCODE_TASKMANAGER, "KEYCODE_TASKMANAGER"},
329 {KeyEvent::KEYCODE_JOURNAL, "KEYCODE_JOURNAL"},
330 {KeyEvent::KEYCODE_CONTROLPANEL, "KEYCODE_CONTROLPANEL"},
331 {KeyEvent::KEYCODE_APPSELECT, "KEYCODE_APPSELECT"},
332 {KeyEvent::KEYCODE_SCREENSAVER, "KEYCODE_SCREENSAVER"},
333 {KeyEvent::KEYCODE_ASSISTANT, "KEYCODE_ASSISTANT"},
334 {KeyEvent::KEYCODE_KBD_LAYOUT_NEXT, "KEYCODE_KBD_LAYOUT_NEXT"},
335 {KeyEvent::KEYCODE_BRIGHTNESS_MIN, "KEYCODE_BRIGHTNESS_MIN"},
336 {KeyEvent::KEYCODE_BRIGHTNESS_MAX, "KEYCODE_BRIGHTNESS_MAX"},
337 {KeyEvent::KEYCODE_KBDINPUTASSIST_PREV, "KEYCODE_KBDINPUTASSIST_PREV"},
338 {KeyEvent::KEYCODE_KBDINPUTASSIST_NEXT, "KEYCODE_KBDINPUTASSIST_NEXT"},
339 {KeyEvent::KEYCODE_KBDINPUTASSIST_PREVGROUP, "KEYCODE_KBDINPUTASSIST_PREVGROUP"},
340 {KeyEvent::KEYCODE_KBDINPUTASSIST_NEXTGROUP, "KEYCODE_KBDINPUTASSIST_NEXTGROUP"},
341 {KeyEvent::KEYCODE_KBDINPUTASSIST_ACCEPT, "KEYCODE_KBDINPUTASSIST_ACCEPT"},
342 {KeyEvent::KEYCODE_KBDINPUTASSIST_CANCEL, "KEYCODE_KBDINPUTASSIST_CANCEL"},
343 {KeyEvent::KEYCODE_FRONT, "KEYCODE_FRONT"},
344 {KeyEvent::KEYCODE_SETUP, "KEYCODE_SETUP"},
345 {KeyEvent::KEYCODE_WAKEUP, "KEYCODE_WAKEUP"},
346 {KeyEvent::KEYCODE_SENDFILE, "KEYCODE_SENDFILE"},
347 {KeyEvent::KEYCODE_DELETEFILE, "KEYCODE_DELETEFILE"},
348 {KeyEvent::KEYCODE_XFER, "KEYCODE_XFER"},
349 {KeyEvent::KEYCODE_PROG1, "KEYCODE_PROG1"},
350 {KeyEvent::KEYCODE_PROG2, "KEYCODE_PROG2"},
351 {KeyEvent::KEYCODE_MSDOS, "KEYCODE_MSDOS"},
352 {KeyEvent::KEYCODE_SCREENLOCK, "KEYCODE_SCREENLOCK"},
353 {KeyEvent::KEYCODE_DIRECTION_ROTATE_DISPLAY, "KEYCODE_DIRECTION_ROTATE_DISPLAY"},
354 {KeyEvent::KEYCODE_CYCLEWINDOWS, "KEYCODE_CYCLEWINDOWS"},
355 {KeyEvent::KEYCODE_COMPUTER, "KEYCODE_COMPUTER"},
356 {KeyEvent::KEYCODE_EJECTCLOSECD, "KEYCODE_EJECTCLOSECD"},
357 {KeyEvent::KEYCODE_ISO, "KEYCODE_ISO"},
358 {KeyEvent::KEYCODE_MOVE, "KEYCODE_MOVE"},
359 {KeyEvent::KEYCODE_F13, "KEYCODE_F13"},
360 {KeyEvent::KEYCODE_F14, "KEYCODE_F14"},
361 {KeyEvent::KEYCODE_F15, "KEYCODE_F15"},
362 {KeyEvent::KEYCODE_F16, "KEYCODE_F16"},
363 {KeyEvent::KEYCODE_F17, "KEYCODE_F17"},
364 {KeyEvent::KEYCODE_F18, "KEYCODE_F18"},
365 {KeyEvent::KEYCODE_F19, "KEYCODE_F19"},
366 {KeyEvent::KEYCODE_F20, "KEYCODE_F20"},
367 {KeyEvent::KEYCODE_F21, "KEYCODE_F21"},
368 {KeyEvent::KEYCODE_F22, "KEYCODE_F22"},
369 {KeyEvent::KEYCODE_F23, "KEYCODE_F23"},
370 {KeyEvent::KEYCODE_F24, "KEYCODE_F24"},
371 {KeyEvent::KEYCODE_PROG3, "KEYCODE_PROG3"},
372 {KeyEvent::KEYCODE_PROG4, "KEYCODE_PROG4"},
373 {KeyEvent::KEYCODE_DASHBOARD, "KEYCODE_DASHBOARD"},
374 {KeyEvent::KEYCODE_SUSPEND, "KEYCODE_SUSPEND"},
375 {KeyEvent::KEYCODE_HP, "KEYCODE_HP"},
376 {KeyEvent::KEYCODE_SOUND, "KEYCODE_SOUND"},
377 {KeyEvent::KEYCODE_QUESTION, "KEYCODE_QUESTION"},
378 {KeyEvent::KEYCODE_CONNECT, "KEYCODE_CONNECT"},
379 {KeyEvent::KEYCODE_SPORT, "KEYCODE_SPORT"},
380 {KeyEvent::KEYCODE_SHOP, "KEYCODE_SHOP"},
381 {KeyEvent::KEYCODE_ALTERASE, "KEYCODE_ALTERASE"},
382 {KeyEvent::KEYCODE_SWITCHVIDEOMODE, "KEYCODE_SWITCHVIDEOMODE"},
383 {KeyEvent::KEYCODE_BATTERY, "KEYCODE_BATTERY"},
384 {KeyEvent::KEYCODE_BLUETOOTH, "KEYCODE_BLUETOOTH"},
385 {KeyEvent::KEYCODE_WLAN, "KEYCODE_WLAN"},
386 {KeyEvent::KEYCODE_UWB, "KEYCODE_UWB"},
387 {KeyEvent::KEYCODE_WWAN_WIMAX, "KEYCODE_WWAN_WIMAX"},
388 {KeyEvent::KEYCODE_RFKILL, "KEYCODE_RFKILL"},
389 {KeyEvent::KEYCODE_CHANNEL, "KEYCODE_CHANNEL"},
390 {KeyEvent::KEYCODE_BTN_0, "KEYCODE_BTN_0"},
391 {KeyEvent::KEYCODE_BTN_1, "KEYCODE_BTN_1"},
392 {KeyEvent::KEYCODE_BTN_2, "KEYCODE_BTN_2"},
393 {KeyEvent::KEYCODE_BTN_3, "KEYCODE_BTN_3"},
394 {KeyEvent::KEYCODE_BTN_4, "KEYCODE_BTN_4"},
395 {KeyEvent::KEYCODE_BTN_5, "KEYCODE_BTN_5"},
396 {KeyEvent::KEYCODE_BTN_6, "KEYCODE_BTN_6"},
397 {KeyEvent::KEYCODE_BTN_7, "KEYCODE_BTN_7"},
398 {KeyEvent::KEYCODE_BTN_8, "KEYCODE_BTN_8"},
399 {KeyEvent::KEYCODE_BTN_9, "KEYCODE_BTN_9"},
400 {KeyEvent::KEYCODE_BRL_DOT1, "KEYCODE_BRL_DOT1"},
401 {KeyEvent::KEYCODE_BRL_DOT2, "KEYCODE_BRL_DOT2"},
402 {KeyEvent::KEYCODE_BRL_DOT3, "KEYCODE_BRL_DOT3"},
403 {KeyEvent::KEYCODE_BRL_DOT4, "KEYCODE_BRL_DOT4"},
404 {KeyEvent::KEYCODE_BRL_DOT5, "KEYCODE_BRL_DOT5"},
405 {KeyEvent::KEYCODE_BRL_DOT6, "KEYCODE_BRL_DOT6"},
406 {KeyEvent::KEYCODE_BRL_DOT7, "KEYCODE_BRL_DOT7"},
407 {KeyEvent::KEYCODE_BRL_DOT8, "KEYCODE_BRL_DOT8"},
408 {KeyEvent::KEYCODE_BRL_DOT9, "KEYCODE_BRL_DOT9"},
409 {KeyEvent::KEYCODE_BRL_DOT10, "KEYCODE_BRL_DOT10"},
410 {KeyEvent::KEYCODE_LEFT_KNOB_ROLL_UP, "KEYCODE_LEFT_KNOB_ROLL_UP"},
411 {KeyEvent::KEYCODE_LEFT_KNOB_ROLL_DOWN, "KEYCODE_LEFT_KNOB_ROLL_DOWN"},
412 {KeyEvent::KEYCODE_LEFT_KNOB, "KEYCODE_LEFT_KNOB"},
413 {KeyEvent::KEYCODE_RIGHT_KNOB_ROLL_UP, "KEYCODE_RIGHT_KNOB_ROLL_UP"},
414 {KeyEvent::KEYCODE_RIGHT_KNOB_ROLL_DOWN, "KEYCODE_RIGHT_KNOB_ROLL_DOWN"},
415 {KeyEvent::KEYCODE_RIGHT_KNOB, "KEYCODE_RIGHT_KNOB"},
416 {KeyEvent::KEYCODE_VOICE_SOURCE_SWITCH, "KEYCODE_VOICE_SOURCE_SWITCH"},
417 {KeyEvent::KEYCODE_LAUNCHER_MENU, "KEYCODE_LAUNCHER_MENU"},
418 {KeyEvent::KEYCODE_CALL_NOTIFICATION_CENTER, "KEYCODE_CALL_NOTIFICATION_CENTER"},
419 {KeyEvent::KEYCODE_CALL_CONTROL_CENTER, "KEYCODE_CALL_CONTROL_CENTER"},
420 {KeyEvent::KEYCODE_DAGGER_CLICK, "KEYCODE_DAGGER_CLICK"},
421 {KeyEvent::KEYCODE_DAGGER_DOUBLE_CLICK, "KEYCODE_DAGGER_DOUBLE_CLICK"},
422 {KeyEvent::KEYCODE_DAGGER_LONG_PRESS, "KEYCODE_DAGGER_LONG_PRESS"},
423 {KeyEvent::KEYCODE_KEY_PEN_AIR_MOUSE, "KEYCODE_KEY_PEN_AIR_MOUSE"},
424 {KeyEvent::KEYCODE_KEY_PEN_LIGHT_PINCH, "KEYCODE_KEY_PEN_LIGHT_PINCH"},
425 {KeyEvent::KEYCODE_KEY_PEN_AI, "KEYCODE_KEY_PEN_AI"},
426 {KeyEvent::KEYCODE_KEY_PEN_END_CLICK, "KEYCODE_KEY_PEN_END_CLICK"},
427 {KeyEvent::KEYCODE_KEY_PEN_END_DOUBLE_CLICK, "KEYCODE_KEY_PEN_END_DOUBLE_CLICK"},
428 {KeyEvent::KEYCODE_KEY_PEN_MODE_SWITCH, "KEYCODE_KEY_PEN_MODE_SWITCH"},
429 {KeyEvent::KEYCODE_AOD_SLIDE_UNLOCK, "KEYCODE_AOD_SLIDE_UNLOCK"},
430 {KeyEvent::KEYCODE_RECENT, "KEYCODE_RECENT"},
431 {KeyEvent::KEYCODE_FLOATING_BACK, "KEYCODE_FLOATING_BACK"},
432 {KeyEvent::KEYCODE_REMOTE_POWER, "KEYCODE_REMOTE_POWER"},
433 #else
434 {KeyEvent::KEYCODE_FN, "KEYCODE_FN"},
435 {KeyEvent::KEYCODE_POWER, "KEYCODE_POWER"},
436 #endif // OHOS_BUILD_ENABLE_WATCH
437 };
438 } // namespace
439 const int32_t KeyEvent::UNKNOWN_FUNCTION_KEY = -1;
440 const int32_t KeyEvent::NUM_LOCK_FUNCTION_KEY = 0;
441 const int32_t KeyEvent::CAPS_LOCK_FUNCTION_KEY = 1;
442 const int32_t KeyEvent::SCROLL_LOCK_FUNCTION_KEY = 2;
443 const int32_t KeyEvent::KEYCODE_FN = 0;
444 const int32_t KeyEvent::KEYCODE_UNKNOWN = -1;
445 const int32_t KeyEvent::KEYCODE_HOME = 1;
446 const int32_t KeyEvent::KEYCODE_BACK = 2;
447 const int32_t KeyEvent::KEYCODE_CALL = 3;
448 const int32_t KeyEvent::KEYCODE_ENDCALL = 4;
449 const int32_t KeyEvent::KEYCODE_CLEAR = 5;
450 const int32_t KeyEvent::KEYCODE_HEADSETHOOK = 6;
451 const int32_t KeyEvent::KEYCODE_FOCUS = 7;
452 const int32_t KeyEvent::KEYCODE_NOTIFICATION = 8;
453 const int32_t KeyEvent::KEYCODE_SEARCH = 9;
454 const int32_t KeyEvent::KEYCODE_MEDIA_PLAY_PAUSE = 10;
455 const int32_t KeyEvent::KEYCODE_MEDIA_STOP = 11;
456 const int32_t KeyEvent::KEYCODE_MEDIA_NEXT = 12;
457 const int32_t KeyEvent::KEYCODE_MEDIA_PREVIOUS = 13;
458 const int32_t KeyEvent::KEYCODE_MEDIA_REWIND = 14;
459 const int32_t KeyEvent::KEYCODE_MEDIA_FAST_FORWARD = 15;
460 const int32_t KeyEvent::KEYCODE_VOLUME_UP = 16;
461 const int32_t KeyEvent::KEYCODE_VOLUME_DOWN = 17;
462 const int32_t KeyEvent::KEYCODE_POWER = 18;
463 const int32_t KeyEvent::KEYCODE_CAMERA = 19;
464 const int32_t KeyEvent::KEYCODE_VOICE_ASSISTANT = 20;
465 const int32_t KeyEvent::KEYCODE_CUSTOM1 = 21;
466 const int32_t KeyEvent::KEYCODE_VOLUME_MUTE = 22;
467 const int32_t KeyEvent::KEYCODE_MUTE = 23;
468 const int32_t KeyEvent::KEYCODE_BRIGHTNESS_UP = 40;
469 const int32_t KeyEvent::KEYCODE_BRIGHTNESS_DOWN = 41;
470 const int32_t KeyEvent::KEYCODE_WEAR_1 = 1001;
471 const int32_t KeyEvent::KEYCODE_0 = 2000;
472 const int32_t KeyEvent::KEYCODE_1 = 2001;
473 const int32_t KeyEvent::KEYCODE_2 = 2002;
474 const int32_t KeyEvent::KEYCODE_3 = 2003;
475 const int32_t KeyEvent::KEYCODE_4 = 2004;
476 const int32_t KeyEvent::KEYCODE_5 = 2005;
477 const int32_t KeyEvent::KEYCODE_6 = 2006;
478 const int32_t KeyEvent::KEYCODE_7 = 2007;
479 const int32_t KeyEvent::KEYCODE_8 = 2008;
480 const int32_t KeyEvent::KEYCODE_9 = 2009;
481 const int32_t KeyEvent::KEYCODE_STAR = 2010;
482 const int32_t KeyEvent::KEYCODE_POUND = 2011;
483 const int32_t KeyEvent::KEYCODE_DPAD_UP = 2012;
484 const int32_t KeyEvent::KEYCODE_DPAD_DOWN = 2013;
485 const int32_t KeyEvent::KEYCODE_DPAD_LEFT = 2014;
486 const int32_t KeyEvent::KEYCODE_DPAD_RIGHT = 2015;
487 const int32_t KeyEvent::KEYCODE_DPAD_CENTER = 2016;
488 const int32_t KeyEvent::KEYCODE_A = 2017;
489 const int32_t KeyEvent::KEYCODE_B = 2018;
490 const int32_t KeyEvent::KEYCODE_C = 2019;
491 const int32_t KeyEvent::KEYCODE_D = 2020;
492 const int32_t KeyEvent::KEYCODE_E = 2021;
493 const int32_t KeyEvent::KEYCODE_F = 2022;
494 const int32_t KeyEvent::KEYCODE_G = 2023;
495 const int32_t KeyEvent::KEYCODE_H = 2024;
496 const int32_t KeyEvent::KEYCODE_I = 2025;
497 const int32_t KeyEvent::KEYCODE_J = 2026;
498 const int32_t KeyEvent::KEYCODE_K = 2027;
499 const int32_t KeyEvent::KEYCODE_L = 2028;
500 const int32_t KeyEvent::KEYCODE_M = 2029;
501 const int32_t KeyEvent::KEYCODE_N = 2030;
502 const int32_t KeyEvent::KEYCODE_O = 2031;
503 const int32_t KeyEvent::KEYCODE_P = 2032;
504 const int32_t KeyEvent::KEYCODE_Q = 2033;
505 const int32_t KeyEvent::KEYCODE_R = 2034;
506 const int32_t KeyEvent::KEYCODE_S = 2035;
507 const int32_t KeyEvent::KEYCODE_T = 2036;
508 const int32_t KeyEvent::KEYCODE_U = 2037;
509 const int32_t KeyEvent::KEYCODE_V = 2038;
510 const int32_t KeyEvent::KEYCODE_W = 2039;
511 const int32_t KeyEvent::KEYCODE_X = 2040;
512 const int32_t KeyEvent::KEYCODE_Y = 2041;
513 const int32_t KeyEvent::KEYCODE_Z = 2042;
514 const int32_t KeyEvent::KEYCODE_COMMA = 2043;
515 const int32_t KeyEvent::KEYCODE_PERIOD = 2044;
516 const int32_t KeyEvent::KEYCODE_ALT_LEFT = 2045;
517 const int32_t KeyEvent::KEYCODE_ALT_RIGHT = 2046;
518 const int32_t KeyEvent::KEYCODE_SHIFT_LEFT = 2047;
519 const int32_t KeyEvent::KEYCODE_SHIFT_RIGHT = 2048;
520 const int32_t KeyEvent::KEYCODE_TAB = 2049;
521 const int32_t KeyEvent::KEYCODE_SPACE = 2050;
522 const int32_t KeyEvent::KEYCODE_SYM = 2051;
523 const int32_t KeyEvent::KEYCODE_EXPLORER = 2052;
524 const int32_t KeyEvent::KEYCODE_ENVELOPE = 2053;
525 const int32_t KeyEvent::KEYCODE_ENTER = 2054;
526 const int32_t KeyEvent::KEYCODE_DEL = 2055;
527 const int32_t KeyEvent::KEYCODE_GRAVE = 2056;
528 const int32_t KeyEvent::KEYCODE_MINUS = 2057;
529 const int32_t KeyEvent::KEYCODE_EQUALS = 2058;
530 const int32_t KeyEvent::KEYCODE_LEFT_BRACKET = 2059;
531 const int32_t KeyEvent::KEYCODE_RIGHT_BRACKET = 2060;
532 const int32_t KeyEvent::KEYCODE_BACKSLASH = 2061;
533 const int32_t KeyEvent::KEYCODE_SEMICOLON = 2062;
534 const int32_t KeyEvent::KEYCODE_APOSTROPHE = 2063;
535 const int32_t KeyEvent::KEYCODE_SLASH = 2064;
536 const int32_t KeyEvent::KEYCODE_AT = 2065;
537 const int32_t KeyEvent::KEYCODE_PLUS = 2066;
538 const int32_t KeyEvent::KEYCODE_MENU = 2067;
539 const int32_t KeyEvent::KEYCODE_PAGE_UP = 2068;
540 const int32_t KeyEvent::KEYCODE_PAGE_DOWN = 2069;
541 const int32_t KeyEvent::KEYCODE_ESCAPE = 2070;
542 const int32_t KeyEvent::KEYCODE_FORWARD_DEL = 2071;
543 const int32_t KeyEvent::KEYCODE_CTRL_LEFT = 2072;
544 const int32_t KeyEvent::KEYCODE_CTRL_RIGHT = 2073;
545 const int32_t KeyEvent::KEYCODE_CAPS_LOCK = 2074;
546 const int32_t KeyEvent::KEYCODE_SCROLL_LOCK = 2075;
547 const int32_t KeyEvent::KEYCODE_META_LEFT = 2076;
548 const int32_t KeyEvent::KEYCODE_META_RIGHT = 2077;
549 const int32_t KeyEvent::KEYCODE_FUNCTION = 2078;
550 const int32_t KeyEvent::KEYCODE_SYSRQ = 2079;
551 const int32_t KeyEvent::KEYCODE_BREAK = 2080;
552 const int32_t KeyEvent::KEYCODE_MOVE_HOME = 2081;
553 const int32_t KeyEvent::KEYCODE_MOVE_END = 2082;
554 const int32_t KeyEvent::KEYCODE_INSERT = 2083;
555 const int32_t KeyEvent::KEYCODE_FORWARD = 2084;
556 const int32_t KeyEvent::KEYCODE_MEDIA_PLAY = 2085;
557 const int32_t KeyEvent::KEYCODE_MEDIA_PAUSE = 2086;
558 const int32_t KeyEvent::KEYCODE_MEDIA_CLOSE = 2087;
559 const int32_t KeyEvent::KEYCODE_MEDIA_EJECT = 2088;
560 const int32_t KeyEvent::KEYCODE_MEDIA_RECORD = 2089;
561 const int32_t KeyEvent::KEYCODE_F1 = 2090;
562 const int32_t KeyEvent::KEYCODE_F2 = 2091;
563 const int32_t KeyEvent::KEYCODE_F3 = 2092;
564 const int32_t KeyEvent::KEYCODE_F4 = 2093;
565 const int32_t KeyEvent::KEYCODE_F5 = 2094;
566 const int32_t KeyEvent::KEYCODE_F6 = 2095;
567 const int32_t KeyEvent::KEYCODE_F7 = 2096;
568 const int32_t KeyEvent::KEYCODE_F8 = 2097;
569 const int32_t KeyEvent::KEYCODE_F9 = 2098;
570 const int32_t KeyEvent::KEYCODE_F10 = 2099;
571 const int32_t KeyEvent::KEYCODE_F11 = 2100;
572 const int32_t KeyEvent::KEYCODE_F12 = 2101;
573 const int32_t KeyEvent::KEYCODE_NUM_LOCK = 2102;
574 const int32_t KeyEvent::KEYCODE_NUMPAD_0 = 2103;
575 const int32_t KeyEvent::KEYCODE_NUMPAD_1 = 2104;
576 const int32_t KeyEvent::KEYCODE_NUMPAD_2 = 2105;
577 const int32_t KeyEvent::KEYCODE_NUMPAD_3 = 2106;
578 const int32_t KeyEvent::KEYCODE_NUMPAD_4 = 2107;
579 const int32_t KeyEvent::KEYCODE_NUMPAD_5 = 2108;
580 const int32_t KeyEvent::KEYCODE_NUMPAD_6 = 2109;
581 const int32_t KeyEvent::KEYCODE_NUMPAD_7 = 2110;
582 const int32_t KeyEvent::KEYCODE_NUMPAD_8 = 2111;
583 const int32_t KeyEvent::KEYCODE_NUMPAD_9 = 2112;
584 const int32_t KeyEvent::KEYCODE_NUMPAD_DIVIDE = 2113;
585 const int32_t KeyEvent::KEYCODE_NUMPAD_MULTIPLY = 2114;
586 const int32_t KeyEvent::KEYCODE_NUMPAD_SUBTRACT = 2115;
587 const int32_t KeyEvent::KEYCODE_NUMPAD_ADD = 2116;
588 const int32_t KeyEvent::KEYCODE_NUMPAD_DOT = 2117;
589 const int32_t KeyEvent::KEYCODE_NUMPAD_COMMA = 2118;
590 const int32_t KeyEvent::KEYCODE_NUMPAD_ENTER = 2119;
591 const int32_t KeyEvent::KEYCODE_NUMPAD_EQUALS = 2120;
592 const int32_t KeyEvent::KEYCODE_NUMPAD_LEFT_PAREN = 2121;
593 const int32_t KeyEvent::KEYCODE_NUMPAD_RIGHT_PAREN = 2122;
594 const int32_t KeyEvent::KEYCODE_VIRTUAL_MULTITASK = 2210;
595 const int32_t KeyEvent::KEYCODE_BUTTON_A = 2301;
596 const int32_t KeyEvent::KEYCODE_BUTTON_B = 2302;
597 const int32_t KeyEvent::KEYCODE_BUTTON_C = 2303;
598 const int32_t KeyEvent::KEYCODE_BUTTON_X = 2304;
599 const int32_t KeyEvent::KEYCODE_BUTTON_Y = 2305;
600 const int32_t KeyEvent::KEYCODE_BUTTON_Z = 2306;
601 const int32_t KeyEvent::KEYCODE_BUTTON_L1 = 2307;
602 const int32_t KeyEvent::KEYCODE_BUTTON_R1 = 2308;
603 const int32_t KeyEvent::KEYCODE_BUTTON_L2 = 2309;
604 const int32_t KeyEvent::KEYCODE_BUTTON_R2 = 2310;
605 const int32_t KeyEvent::KEYCODE_BUTTON_SELECT = 2311;
606 const int32_t KeyEvent::KEYCODE_BUTTON_START = 2312;
607 const int32_t KeyEvent::KEYCODE_BUTTON_MODE = 2313;
608 const int32_t KeyEvent::KEYCODE_BUTTON_THUMBL = 2314;
609 const int32_t KeyEvent::KEYCODE_BUTTON_THUMBR = 2315;
610 const int32_t KeyEvent::KEYCODE_BUTTON_TRIGGER = 2401;
611 const int32_t KeyEvent::KEYCODE_BUTTON_THUMB = 2402;
612 const int32_t KeyEvent::KEYCODE_BUTTON_THUMB2 = 2403;
613 const int32_t KeyEvent::KEYCODE_BUTTON_TOP = 2404;
614 const int32_t KeyEvent::KEYCODE_BUTTON_TOP2 = 2405;
615 const int32_t KeyEvent::KEYCODE_BUTTON_PINKIE = 2406;
616 const int32_t KeyEvent::KEYCODE_BUTTON_BASE1 = 2407;
617 const int32_t KeyEvent::KEYCODE_BUTTON_BASE2 = 2408;
618 const int32_t KeyEvent::KEYCODE_BUTTON_BASE3 = 2409;
619 const int32_t KeyEvent::KEYCODE_BUTTON_BASE4 = 2410;
620 const int32_t KeyEvent::KEYCODE_BUTTON_BASE5 = 2411;
621 const int32_t KeyEvent::KEYCODE_BUTTON_BASE6 = 2412;
622 const int32_t KeyEvent::KEYCODE_BUTTON_BASE7 = 2413;
623 const int32_t KeyEvent::KEYCODE_BUTTON_BASE8 = 2414;
624 const int32_t KeyEvent::KEYCODE_BUTTON_BASE9 = 2415;
625 const int32_t KeyEvent::KEYCODE_BUTTON_DEAD = 2416;
626 const int32_t KeyEvent::KEYCODE_COMPOSE = 2466;
627 const int32_t KeyEvent::KEYCODE_SLEEP = 2600;
628 const int32_t KeyEvent::KEYCODE_ZENKAKU_HANKAKU = 2601;
629 const int32_t KeyEvent::KEYCODE_102ND = 2602;
630 const int32_t KeyEvent::KEYCODE_RO = 2603;
631 const int32_t KeyEvent::KEYCODE_KATAKANA = 2604;
632 const int32_t KeyEvent::KEYCODE_HIRAGANA = 2605;
633 const int32_t KeyEvent::KEYCODE_HENKAN = 2606;
634 const int32_t KeyEvent::KEYCODE_KATAKANA_HIRAGANA = 2607;
635 const int32_t KeyEvent::KEYCODE_MUHENKAN = 2608;
636 const int32_t KeyEvent::KEYCODE_LINEFEED = 2609;
637 const int32_t KeyEvent::KEYCODE_MACRO = 2610;
638 const int32_t KeyEvent::KEYCODE_NUMPAD_PLUSMINUS = 2611;
639 const int32_t KeyEvent::KEYCODE_SCALE = 2612;
640 const int32_t KeyEvent::KEYCODE_HANGUEL = 2613;
641 const int32_t KeyEvent::KEYCODE_HANJA = 2614;
642 const int32_t KeyEvent::KEYCODE_YEN = 2615;
643 const int32_t KeyEvent::KEYCODE_STOP = 2616;
644 const int32_t KeyEvent::KEYCODE_AGAIN = 2617;
645 const int32_t KeyEvent::KEYCODE_PROPS = 2618;
646 const int32_t KeyEvent::KEYCODE_UNDO = 2619;
647 const int32_t KeyEvent::KEYCODE_COPY = 2620;
648 const int32_t KeyEvent::KEYCODE_OPEN = 2621;
649 const int32_t KeyEvent::KEYCODE_PASTE = 2622;
650 const int32_t KeyEvent::KEYCODE_FIND = 2623;
651 const int32_t KeyEvent::KEYCODE_CUT = 2624;
652 const int32_t KeyEvent::KEYCODE_HELP = 2625;
653 const int32_t KeyEvent::KEYCODE_CALC = 2626;
654 const int32_t KeyEvent::KEYCODE_FILE = 2627;
655 const int32_t KeyEvent::KEYCODE_BOOKMARKS = 2628;
656 const int32_t KeyEvent::KEYCODE_NEXT = 2629;
657 const int32_t KeyEvent::KEYCODE_PLAYPAUSE = 2630;
658 const int32_t KeyEvent::KEYCODE_PREVIOUS = 2631;
659 const int32_t KeyEvent::KEYCODE_STOPCD = 2632;
660 const int32_t KeyEvent::KEYCODE_CONFIG = 2634;
661 const int32_t KeyEvent::KEYCODE_REFRESH = 2635;
662 const int32_t KeyEvent::KEYCODE_EXIT = 2636;
663 const int32_t KeyEvent::KEYCODE_EDIT = 2637;
664 const int32_t KeyEvent::KEYCODE_SCROLLUP = 2638;
665 const int32_t KeyEvent::KEYCODE_SCROLLDOWN = 2639;
666 const int32_t KeyEvent::KEYCODE_NEW = 2640;
667 const int32_t KeyEvent::KEYCODE_REDO = 2641;
668 const int32_t KeyEvent::KEYCODE_CLOSE = 2642;
669 const int32_t KeyEvent::KEYCODE_PLAY = 2643;
670 const int32_t KeyEvent::KEYCODE_BASSBOOST = 2644;
671 const int32_t KeyEvent::KEYCODE_PRINT = 2645;
672 const int32_t KeyEvent::KEYCODE_CHAT = 2646;
673 const int32_t KeyEvent::KEYCODE_FINANCE = 2647;
674 const int32_t KeyEvent::KEYCODE_CANCEL = 2648;
675 const int32_t KeyEvent::KEYCODE_KBDILLUM_TOGGLE = 2649;
676 const int32_t KeyEvent::KEYCODE_KBDILLUM_DOWN = 2650;
677 const int32_t KeyEvent::KEYCODE_KBDILLUM_UP = 2651;
678 const int32_t KeyEvent::KEYCODE_SEND = 2652;
679 const int32_t KeyEvent::KEYCODE_REPLY = 2653;
680 const int32_t KeyEvent::KEYCODE_FORWARDMAIL = 2654;
681 const int32_t KeyEvent::KEYCODE_SAVE = 2655;
682 const int32_t KeyEvent::KEYCODE_DOCUMENTS = 2656;
683 const int32_t KeyEvent::KEYCODE_VIDEO_NEXT = 2657;
684 const int32_t KeyEvent::KEYCODE_VIDEO_PREV = 2658;
685 const int32_t KeyEvent::KEYCODE_BRIGHTNESS_CYCLE = 2659;
686 const int32_t KeyEvent::KEYCODE_BRIGHTNESS_ZERO = 2660;
687 const int32_t KeyEvent::KEYCODE_DISPLAY_OFF = 2661;
688 const int32_t KeyEvent::KEYCODE_BTN_MISC = 2662;
689 const int32_t KeyEvent::KEYCODE_GOTO = 2663;
690 const int32_t KeyEvent::KEYCODE_INFO = 2664;
691 const int32_t KeyEvent::KEYCODE_PROGRAM = 2665;
692 const int32_t KeyEvent::KEYCODE_PVR = 2666;
693 const int32_t KeyEvent::KEYCODE_SUBTITLE = 2667;
694 const int32_t KeyEvent::KEYCODE_FULL_SCREEN = 2668;
695 const int32_t KeyEvent::KEYCODE_KEYBOARD = 2669;
696 const int32_t KeyEvent::KEYCODE_ASPECT_RATIO = 2670;
697 const int32_t KeyEvent::KEYCODE_PC = 2671;
698 const int32_t KeyEvent::KEYCODE_TV = 2672;
699 const int32_t KeyEvent::KEYCODE_TV2 = 2673;
700 const int32_t KeyEvent::KEYCODE_VCR = 2674;
701 const int32_t KeyEvent::KEYCODE_VCR2 = 2675;
702 const int32_t KeyEvent::KEYCODE_SAT = 2676;
703 const int32_t KeyEvent::KEYCODE_CD = 2677;
704 const int32_t KeyEvent::KEYCODE_TAPE = 2678;
705 const int32_t KeyEvent::KEYCODE_TUNER = 2679;
706 const int32_t KeyEvent::KEYCODE_PLAYER = 2680;
707 const int32_t KeyEvent::KEYCODE_DVD = 2681;
708 const int32_t KeyEvent::KEYCODE_AUDIO = 2682;
709 const int32_t KeyEvent::KEYCODE_VIDEO = 2683;
710 const int32_t KeyEvent::KEYCODE_MEMO = 2684;
711 const int32_t KeyEvent::KEYCODE_CALENDAR = 2685;
712 const int32_t KeyEvent::KEYCODE_RED = 2686;
713 const int32_t KeyEvent::KEYCODE_GREEN = 2687;
714 const int32_t KeyEvent::KEYCODE_YELLOW = 2688;
715 const int32_t KeyEvent::KEYCODE_BLUE = 2689;
716 const int32_t KeyEvent::KEYCODE_CHANNELUP = 2690;
717 const int32_t KeyEvent::KEYCODE_CHANNELDOWN = 2691;
718 const int32_t KeyEvent::KEYCODE_LAST = 2692;
719 const int32_t KeyEvent::KEYCODE_RESTART = 2693;
720 const int32_t KeyEvent::KEYCODE_SLOW = 2694;
721 const int32_t KeyEvent::KEYCODE_SHUFFLE = 2695;
722 const int32_t KeyEvent::KEYCODE_VIDEOPHONE = 2696;
723 const int32_t KeyEvent::KEYCODE_GAMES = 2697;
724 const int32_t KeyEvent::KEYCODE_ZOOMIN = 2698;
725 const int32_t KeyEvent::KEYCODE_ZOOMOUT = 2699;
726 const int32_t KeyEvent::KEYCODE_ZOOMRESET = 2700;
727 const int32_t KeyEvent::KEYCODE_WORDPROCESSOR = 2701;
728 const int32_t KeyEvent::KEYCODE_EDITOR = 2702;
729 const int32_t KeyEvent::KEYCODE_SPREADSHEET = 2703;
730 const int32_t KeyEvent::KEYCODE_GRAPHICSEDITOR = 2704;
731 const int32_t KeyEvent::KEYCODE_PRESENTATION = 2705;
732 const int32_t KeyEvent::KEYCODE_DATABASE = 2706;
733 const int32_t KeyEvent::KEYCODE_NEWS = 2707;
734 const int32_t KeyEvent::KEYCODE_VOICEMAIL = 2708;
735 const int32_t KeyEvent::KEYCODE_ADDRESSBOOK = 2709;
736 const int32_t KeyEvent::KEYCODE_MESSENGER = 2710;
737 const int32_t KeyEvent::KEYCODE_BRIGHTNESS_TOGGLE = 2711;
738 const int32_t KeyEvent::KEYCODE_SPELLCHECK = 2712;
739 const int32_t KeyEvent::KEYCODE_COFFEE = 2713;
740 const int32_t KeyEvent::KEYCODE_MEDIA_REPEAT = 2714;
741 const int32_t KeyEvent::KEYCODE_IMAGES = 2715;
742 const int32_t KeyEvent::KEYCODE_BUTTONCONFIG = 2716;
743 const int32_t KeyEvent::KEYCODE_TASKMANAGER = 2717;
744 const int32_t KeyEvent::KEYCODE_JOURNAL = 2718;
745 const int32_t KeyEvent::KEYCODE_CONTROLPANEL = 2719;
746 const int32_t KeyEvent::KEYCODE_APPSELECT = 2720;
747 const int32_t KeyEvent::KEYCODE_SCREENSAVER = 2721;
748 const int32_t KeyEvent::KEYCODE_ASSISTANT = 2722;
749 const int32_t KeyEvent::KEYCODE_KBD_LAYOUT_NEXT = 2723;
750 const int32_t KeyEvent::KEYCODE_BRIGHTNESS_MIN = 2724;
751 const int32_t KeyEvent::KEYCODE_BRIGHTNESS_MAX = 2725;
752 const int32_t KeyEvent::KEYCODE_KBDINPUTASSIST_PREV = 2726;
753 const int32_t KeyEvent::KEYCODE_KBDINPUTASSIST_NEXT = 2727;
754 const int32_t KeyEvent::KEYCODE_KBDINPUTASSIST_PREVGROUP = 2728;
755 const int32_t KeyEvent::KEYCODE_KBDINPUTASSIST_NEXTGROUP = 2729;
756 const int32_t KeyEvent::KEYCODE_KBDINPUTASSIST_ACCEPT = 2730;
757 const int32_t KeyEvent::KEYCODE_KBDINPUTASSIST_CANCEL = 2731;
758 const int32_t KeyEvent::KEYCODE_FRONT = 2800;
759 const int32_t KeyEvent::KEYCODE_SETUP = 2801;
760 const int32_t KeyEvent::KEYCODE_WAKEUP = 2802;
761 const int32_t KeyEvent::KEYCODE_SENDFILE = 2803;
762 const int32_t KeyEvent::KEYCODE_DELETEFILE = 2804;
763 const int32_t KeyEvent::KEYCODE_XFER = 2805;
764 const int32_t KeyEvent::KEYCODE_PROG1 = 2806;
765 const int32_t KeyEvent::KEYCODE_PROG2 = 2807;
766 const int32_t KeyEvent::KEYCODE_MSDOS = 2808;
767 const int32_t KeyEvent::KEYCODE_SCREENLOCK = 2809;
768 const int32_t KeyEvent::KEYCODE_DIRECTION_ROTATE_DISPLAY = 2810;
769 const int32_t KeyEvent::KEYCODE_CYCLEWINDOWS = 2811;
770 const int32_t KeyEvent::KEYCODE_COMPUTER = 2812;
771 const int32_t KeyEvent::KEYCODE_EJECTCLOSECD = 2813;
772 const int32_t KeyEvent::KEYCODE_ISO = 2814;
773 const int32_t KeyEvent::KEYCODE_MOVE = 2815;
774 const int32_t KeyEvent::KEYCODE_F13 = 2816;
775 const int32_t KeyEvent::KEYCODE_F14 = 2817;
776 const int32_t KeyEvent::KEYCODE_F15 = 2818;
777 const int32_t KeyEvent::KEYCODE_F16 = 2819;
778 const int32_t KeyEvent::KEYCODE_F17 = 2820;
779 const int32_t KeyEvent::KEYCODE_F18 = 2821;
780 const int32_t KeyEvent::KEYCODE_F19 = 2822;
781 const int32_t KeyEvent::KEYCODE_F20 = 2823;
782 const int32_t KeyEvent::KEYCODE_F21 = 2824;
783 const int32_t KeyEvent::KEYCODE_F22 = 2825;
784 const int32_t KeyEvent::KEYCODE_F23 = 2826;
785 const int32_t KeyEvent::KEYCODE_F24 = 2827;
786 const int32_t KeyEvent::KEYCODE_PROG3 = 2828;
787 const int32_t KeyEvent::KEYCODE_PROG4 = 2829;
788 const int32_t KeyEvent::KEYCODE_DASHBOARD = 2830;
789 const int32_t KeyEvent::KEYCODE_SUSPEND = 2831;
790 const int32_t KeyEvent::KEYCODE_HP = 2832;
791 const int32_t KeyEvent::KEYCODE_SOUND = 2833;
792 const int32_t KeyEvent::KEYCODE_QUESTION = 2834;
793 const int32_t KeyEvent::KEYCODE_CONNECT = 2836;
794 const int32_t KeyEvent::KEYCODE_SPORT = 2837;
795 const int32_t KeyEvent::KEYCODE_SHOP = 2838;
796 const int32_t KeyEvent::KEYCODE_ALTERASE = 2839;
797 const int32_t KeyEvent::KEYCODE_SWITCHVIDEOMODE = 2841;
798 const int32_t KeyEvent::KEYCODE_BATTERY = 2842;
799 const int32_t KeyEvent::KEYCODE_BLUETOOTH = 2843;
800 const int32_t KeyEvent::KEYCODE_WLAN = 2844;
801 const int32_t KeyEvent::KEYCODE_UWB = 2845;
802 const int32_t KeyEvent::KEYCODE_WWAN_WIMAX = 2846;
803 const int32_t KeyEvent::KEYCODE_RFKILL = 2847;
804 const int32_t KeyEvent::KEYCODE_STYLUS_SCREEN = 2849;
805 const int32_t KeyEvent::KEYCODE_CHANNEL = 3001;
806 const int32_t KeyEvent::KEYCODE_BTN_0 = 3100;
807 const int32_t KeyEvent::KEYCODE_BTN_1 = 3101;
808 const int32_t KeyEvent::KEYCODE_BTN_2 = 3102;
809 const int32_t KeyEvent::KEYCODE_BTN_3 = 3103;
810 const int32_t KeyEvent::KEYCODE_BTN_4 = 3104;
811 const int32_t KeyEvent::KEYCODE_BTN_5 = 3105;
812 const int32_t KeyEvent::KEYCODE_BTN_6 = 3106;
813 const int32_t KeyEvent::KEYCODE_BTN_7 = 3107;
814 const int32_t KeyEvent::KEYCODE_BTN_8 = 3108;
815 const int32_t KeyEvent::KEYCODE_BTN_9 = 3109;
816 const int32_t KeyEvent::KEYCODE_BRL_DOT1 = 3201;
817 const int32_t KeyEvent::KEYCODE_BRL_DOT2 = 3202;
818 const int32_t KeyEvent::KEYCODE_BRL_DOT3 = 3203;
819 const int32_t KeyEvent::KEYCODE_BRL_DOT4 = 3204;
820 const int32_t KeyEvent::KEYCODE_BRL_DOT5 = 3205;
821 const int32_t KeyEvent::KEYCODE_BRL_DOT6 = 3206;
822 const int32_t KeyEvent::KEYCODE_BRL_DOT7 = 3207;
823 const int32_t KeyEvent::KEYCODE_BRL_DOT8 = 3208;
824 const int32_t KeyEvent::KEYCODE_BRL_DOT9 = 3209;
825 const int32_t KeyEvent::KEYCODE_BRL_DOT10 = 3210;
826 const int32_t KeyEvent::KEYCODE_DAGGER_CLICK = 3211;
827 const int32_t KeyEvent::KEYCODE_DAGGER_DOUBLE_CLICK = 3212;
828 const int32_t KeyEvent::KEYCODE_DAGGER_LONG_PRESS = 3213;
829 const int32_t KeyEvent::KEYCODE_KEY_PEN_AIR_MOUSE = 3214;
830 const int32_t KeyEvent::KEYCODE_KEY_PEN_LIGHT_PINCH = 3215;
831 const int32_t KeyEvent::KEYCODE_KEY_PEN_AI = 3216;
832 const int32_t KeyEvent::KEYCODE_KEY_PEN_END_CLICK = 3217;
833 const int32_t KeyEvent::KEYCODE_KEY_PEN_END_DOUBLE_CLICK = 3218;
834 const int32_t KeyEvent::KEYCODE_AOD_SLIDE_UNLOCK = 3219;
835 const int32_t KeyEvent::KEYCODE_DIV = 3220;
836 const int32_t KeyEvent::KEYCODE_KEY_PEN_MODE_SWITCH = 3221;
837 const int32_t KeyEvent::KEYCODE_REMOTE_POWER = 4000;
838 const int32_t KeyEvent::KEYCODE_LEFT_KNOB_ROLL_UP = 10001;
839 const int32_t KeyEvent::KEYCODE_LEFT_KNOB_ROLL_DOWN = 10002;
840 const int32_t KeyEvent::KEYCODE_LEFT_KNOB = 10003;
841 const int32_t KeyEvent::KEYCODE_RIGHT_KNOB_ROLL_UP = 10004;
842 const int32_t KeyEvent::KEYCODE_RIGHT_KNOB_ROLL_DOWN = 10005;
843 const int32_t KeyEvent::KEYCODE_RIGHT_KNOB = 10006;
844 const int32_t KeyEvent::KEYCODE_VOICE_SOURCE_SWITCH = 10007;
845 const int32_t KeyEvent::KEYCODE_LAUNCHER_MENU = 10008;
846 const int32_t KeyEvent::KEYCODE_CALL_NOTIFICATION_CENTER = 10009;
847 const int32_t KeyEvent::KEYCODE_CALL_CONTROL_CENTER = 10010;
848 const int32_t KeyEvent::KEYCODE_RECENT = 10011;
849 const int32_t KeyEvent::KEYCODE_FLOATING_BACK = 10012;
850
851 const int32_t KeyEvent::KEY_ACTION_UNKNOWN = 0X00000000;
852 const int32_t KeyEvent::KEY_ACTION_CANCEL = 0X00000001;
853
854 const int32_t KeyEvent::KEY_ACTION_DOWN = 0x00000002;
855 const int32_t KeyEvent::KEY_ACTION_UP = 0X00000003;
856
857 const int32_t KeyEvent::INTENTION_UNKNOWN = -1;
858 const int32_t KeyEvent::INTENTION_UP = 1;
859 const int32_t KeyEvent::INTENTION_DOWN = 2;
860 const int32_t KeyEvent::INTENTION_LEFT = 3;
861 const int32_t KeyEvent::INTENTION_RIGHT = 4;
862 const int32_t KeyEvent::INTENTION_SELECT = 5;
863 const int32_t KeyEvent::INTENTION_ESCAPE = 6;
864 const int32_t KeyEvent::INTENTION_BACK = 7;
865 const int32_t KeyEvent::INTENTION_FORWARD = 8;
866 const int32_t KeyEvent::INTENTION_MENU = 9;
867 const int32_t KeyEvent::INTENTION_HOME = 10;
868 const int32_t KeyEvent::INTENTION_PAGE_UP = 11;
869 const int32_t KeyEvent::INTENTION_PAGE_DOWN = 12;
870 const int32_t KeyEvent::INTENTION_ZOOM_OUT = 13;
871 const int32_t KeyEvent::INTENTION_ZOOM_IN = 14;
872
873 const int32_t KeyEvent::INTENTION_MEDIA_PLAY_PAUSE = 100;
874 const int32_t KeyEvent::INTENTION_MEDIA_FAST_FORWARD = 101;
875 const int32_t KeyEvent::INTENTION_MEDIA_FAST_REWIND = 102;
876 const int32_t KeyEvent::INTENTION_MEDIA_FAST_PLAYBACK = 103;
877 const int32_t KeyEvent::INTENTION_MEDIA_NEXT = 104;
878 const int32_t KeyEvent::INTENTION_MEDIA_PREVIOUS = 105;
879 const int32_t KeyEvent::INTENTION_MEDIA_MUTE = 106;
880 const int32_t KeyEvent::INTENTION_VOLUTE_UP = 107;
881 const int32_t KeyEvent::INTENTION_VOLUTE_DOWN = 108;
882
883 const int32_t KeyEvent::INTENTION_CALL = 200;
884 const int32_t KeyEvent::INTENTION_ENDCALL = 201;
885 const int32_t KeyEvent::INTENTION_REJECTCALL = 202;
886
887 const int32_t KeyEvent::INTENTION_CAMERA = 300;
888 const int32_t maxKeysSize = 1000;
889
890 #ifdef OHOS_BUILD_ENABLE_SECURITY_COMPONENT
891 constexpr size_t MAX_N_ENHANCE_DATA_SIZE { 64 };
892 #endif // OHOS_BUILD_ENABLE_SECURITY_COMPONENT
893
KeyItem()894 KeyEvent::KeyItem::KeyItem() {}
895
~KeyItem()896 KeyEvent::KeyItem::~KeyItem() {}
897
GetKeyCode() const898 int32_t KeyEvent::KeyItem::GetKeyCode() const
899 {
900 return keyCode_;
901 }
902
SetKeyCode(int32_t keyCode)903 void KeyEvent::KeyItem::SetKeyCode(int32_t keyCode)
904 {
905 keyCode_ = keyCode;
906 }
907
GetDownTime() const908 int64_t KeyEvent::KeyItem::GetDownTime() const
909 {
910 return downTime_;
911 }
912
SetDownTime(int64_t downTime)913 void KeyEvent::KeyItem::SetDownTime(int64_t downTime)
914 {
915 downTime_ = downTime;
916 }
917
GetDeviceId() const918 int32_t KeyEvent::KeyItem::GetDeviceId() const
919 {
920 return deviceId_;
921 }
922
SetDeviceId(int32_t deviceId)923 void KeyEvent::KeyItem::SetDeviceId(int32_t deviceId)
924 {
925 deviceId_ = deviceId;
926 }
927
IsPressed() const928 bool KeyEvent::KeyItem::IsPressed() const
929 {
930 return pressed_;
931 }
932
SetPressed(bool pressed)933 void KeyEvent::KeyItem::SetPressed(bool pressed)
934 {
935 pressed_ = pressed;
936 }
937
SetUnicode(uint32_t unicode)938 void KeyEvent::KeyItem::SetUnicode(uint32_t unicode)
939 {
940 unicode_ = unicode;
941 }
942
GetUnicode() const943 uint32_t KeyEvent::KeyItem::GetUnicode() const
944 {
945 return unicode_;
946 }
947
WriteToParcel(Parcel & out) const948 bool KeyEvent::KeyItem::WriteToParcel(Parcel &out) const
949 {
950 WRITEBOOL(out, pressed_);
951 WRITEINT64(out, downTime_);
952 WRITEINT32(out, deviceId_);
953 WRITEINT32(out, keyCode_);
954 WRITEUINT32(out, unicode_);
955 return true;
956 }
957
ReadFromParcel(Parcel & in)958 bool KeyEvent::KeyItem::ReadFromParcel(Parcel &in)
959 {
960 READBOOL(in, pressed_);
961 READINT64(in, downTime_);
962 READINT32(in, deviceId_);
963 READINT32(in, keyCode_);
964 READUINT32(in, unicode_);
965 return true;
966 }
967
from(std::shared_ptr<InputEvent> inputEvent)968 std::shared_ptr<KeyEvent> KeyEvent::from(std::shared_ptr<InputEvent> inputEvent)
969 {
970 return nullptr;
971 }
972
KeyEvent(int32_t eventType)973 KeyEvent::KeyEvent(int32_t eventType) : InputEvent(eventType) {}
974
KeyEvent(const KeyEvent & other)975 KeyEvent::KeyEvent(const KeyEvent& other)
976 : InputEvent(other),
977 keyCode_(other.keyCode_),
978 keys_(other.keys_),
979 keyAction_(other.keyAction_),
980 keyIntention_(other.keyIntention_),
981 numLock_(other.numLock_),
982 capsLock_(other.capsLock_),
983 scrollLock_(other.scrollLock_),
984 #ifdef OHOS_BUILD_ENABLE_SECURITY_COMPONENT
985 enhanceData_(other.enhanceData_),
986 #endif // OHOS_BUILD_ENABLE_SECURITY_COMPONENT
987 repeat_(other.repeat_),
988 repeatKey_(other.repeatKey_) {}
989
~KeyEvent()990 KeyEvent::~KeyEvent() {}
991
Create()992 std::shared_ptr<KeyEvent> KeyEvent::Create()
993 {
994 auto event = std::shared_ptr<KeyEvent>(new (std::nothrow) KeyEvent(InputEvent::EVENT_TYPE_KEY));
995 CHKPP(event);
996 return event;
997 }
998
Reset()999 void KeyEvent::Reset()
1000 {
1001 InputEvent::Reset();
1002 keyCode_ = KeyEvent::UNKNOWN_FUNCTION_KEY;
1003 keyAction_ = KeyEvent::KEY_ACTION_UNKNOWN;
1004 keyIntention_ = KeyEvent::INTENTION_UNKNOWN;
1005 numLock_ = false;
1006 capsLock_ = false;
1007 scrollLock_ = false;
1008 repeat_ = false;
1009 repeatKey_ = false;
1010 keys_.clear();
1011 #ifdef OHOS_BUILD_ENABLE_SECURITY_COMPONENT
1012 enhanceData_.clear();
1013 #endif // OHOS_BUILD_ENABLE_SECURITY_COMPONENT
1014 }
1015
ToString()1016 std::string KeyEvent::ToString()
1017 {
1018 std::string eventStr = InputEvent::ToString();
1019 eventStr += ",keyCode:" + std::to_string(keyCode_);
1020 eventStr += ",keyAction:" + std::to_string(keyAction_);
1021 eventStr += ",keyItems:[";
1022 for (size_t i = 0; i < keys_.size(); i++) {
1023 int32_t pressed = keys_[i].IsPressed() ? 1 : 0;
1024 eventStr += "{pressed:" + std::to_string(pressed);
1025 eventStr += ",deviceId:" + std::to_string(keys_[i].GetDeviceId());
1026 eventStr += ",keyCode:" + std::to_string(keys_[i].GetKeyCode());
1027 eventStr += ",downTime:" + std::to_string(keys_[i].GetDownTime());
1028 eventStr += ",unicode:" + std::to_string(keys_[i].GetUnicode()) + "}";
1029 if (i != keys_.size() - 1) {
1030 eventStr += ",";
1031 }
1032 }
1033 eventStr += "]";
1034 return eventStr;
1035 }
1036
GetKeyCode() const1037 int32_t KeyEvent::GetKeyCode() const
1038 {
1039 return keyCode_;
1040 }
1041
SetKeyCode(int32_t keyCode)1042 void KeyEvent::SetKeyCode(int32_t keyCode)
1043 {
1044 keyCode_ = keyCode;
1045 }
1046
GetKeyAction() const1047 int32_t KeyEvent::GetKeyAction() const
1048 {
1049 return keyAction_;
1050 }
1051
SetKeyAction(int32_t keyAction)1052 void KeyEvent::SetKeyAction(int32_t keyAction)
1053 {
1054 keyAction_ = keyAction;
1055 }
1056
AddKeyItem(const KeyItem & keyItem)1057 void KeyEvent::AddKeyItem(const KeyItem& keyItem)
1058 {
1059 keys_.push_back(keyItem);
1060 }
1061
SetKeyItem(std::vector<KeyItem> keyItem)1062 void KeyEvent::SetKeyItem(std::vector<KeyItem> keyItem)
1063 {
1064 keys_ = keyItem;
1065 }
1066
GetKeyItems() const1067 std::vector<KeyEvent::KeyItem> KeyEvent::GetKeyItems() const
1068 {
1069 return keys_;
1070 }
1071
GetPressedKeys() const1072 std::vector<int32_t> KeyEvent::GetPressedKeys() const
1073 {
1074 std::vector<int32_t> result;
1075 for (const auto &item : keys_) {
1076 if (item.IsPressed()) {
1077 result.push_back(item.GetKeyCode());
1078 }
1079 }
1080 return result;
1081 }
1082
AddPressedKeyItems(const KeyItem & keyItem)1083 void KeyEvent::AddPressedKeyItems(const KeyItem& keyItem)
1084 {
1085 std::vector<int32_t> pressedkeys = GetPressedKeys();
1086 std::vector<int32_t>::iterator result = std::find(pressedkeys.begin(),
1087 pressedkeys.end(), keyItem.GetKeyCode());
1088 if (result == pressedkeys.end()) {
1089 keys_.push_back(keyItem);
1090 }
1091 }
1092
RemoveReleasedKeyItems(const KeyItem & keyItem)1093 void KeyEvent::RemoveReleasedKeyItems(const KeyItem& keyItem)
1094 {
1095 if (keyItem.IsPressed()) {
1096 return;
1097 }
1098 int32_t keyCode = keyItem.GetKeyCode();
1099 for (auto it = keys_.begin(); it != keys_.end(); ++it) {
1100 if (it->GetKeyCode() == keyCode) {
1101 keys_.erase(it);
1102 return;
1103 }
1104 }
1105 }
1106
GetKeyItem() const1107 std::optional<KeyEvent::KeyItem> KeyEvent::GetKeyItem() const
1108 {
1109 return GetKeyItem(keyCode_);
1110 }
1111
GetKeyItem(int32_t keyCode) const1112 std::optional<KeyEvent::KeyItem> KeyEvent::GetKeyItem(int32_t keyCode) const
1113 {
1114 for (const auto &item : keys_) {
1115 if (item.GetKeyCode() == keyCode) {
1116 return std::make_optional(item);
1117 }
1118 }
1119 return std::nullopt;
1120 }
1121
ActionToString(int32_t action)1122 const char* KeyEvent::ActionToString(int32_t action)
1123 {
1124 switch (action) {
1125 case KEY_ACTION_UNKNOWN: {
1126 return "KEY_ACTION_UNKNOWN";
1127 }
1128 case KEY_ACTION_CANCEL: {
1129 return "KEY_ACTION_CANCEL";
1130 }
1131 case KEY_ACTION_DOWN: {
1132 return "KEY_ACTION_DOWN";
1133 }
1134 case KEY_ACTION_UP: {
1135 return "KEY_ACTION_UP";
1136 }
1137 default: {
1138 return "KEY_ACTION_INVALID";
1139 }
1140 }
1141 }
1142
KeyCodeToString(int32_t keyCode)1143 const char* KeyEvent::KeyCodeToString(int32_t keyCode)
1144 {
1145 CALL_DEBUG_ENTER;
1146 auto iter = KEYCODE_TO_STRING.find(keyCode);
1147 if (iter == KEYCODE_TO_STRING.end()) {
1148 MMI_HILOGD("Failed to find the keycode");
1149 return "KEYCODE_INVALID";
1150 }
1151 return iter->second.c_str();
1152 }
1153
Clone(std::shared_ptr<KeyEvent> keyEvent)1154 std::shared_ptr<KeyEvent> KeyEvent::Clone(std::shared_ptr<KeyEvent> keyEvent)
1155 {
1156 if (!keyEvent) {
1157 return nullptr;
1158 }
1159 auto event = std::shared_ptr<KeyEvent>(new (std::nothrow) KeyEvent(*keyEvent.get()));
1160 CHKPP(event);
1161 return event;
1162 }
1163
IsValidKeyItem() const1164 bool KeyEvent::IsValidKeyItem() const
1165 {
1166 CALL_DEBUG_ENTER;
1167 int32_t sameKeyCodeNum = 0;
1168 int32_t keyCode = GetKeyCode();
1169 int32_t action = GetKeyAction();
1170
1171 for (auto it = keys_.begin(); it != keys_.end(); ++it) {
1172 if (it->GetKeyCode() == keyCode) {
1173 if (++sameKeyCodeNum > 1) {
1174 MMI_HILOGE("Keyitems code is not unique with keyEvent code");
1175 return false;
1176 }
1177 }
1178 if (it->GetKeyCode() <= KEYCODE_UNKNOWN) {
1179 MMI_HILOGE("Invalid");
1180 return false;
1181 }
1182 if (it->GetDownTime() <= 0) {
1183 MMI_HILOGE("The downtime is invalid");
1184 return false;
1185 }
1186 if (action != KEY_ACTION_UP && it->IsPressed() == false) {
1187 MMI_HILOGE("The isPressed is invalid");
1188 return false;
1189 }
1190 if (action == KEY_ACTION_UP && it->IsPressed() == false) {
1191 if (it->GetKeyCode() != keyCode) {
1192 MMI_HILOGE("Invalid when isPressed is false");
1193 return false;
1194 }
1195 }
1196
1197 auto item = it;
1198 for (++item; item != keys_.end(); item++) {
1199 if (it->GetKeyCode() == item->GetKeyCode()) {
1200 MMI_HILOGE("Keyitems code exist same items");
1201 return false;
1202 }
1203 }
1204 }
1205
1206 if (sameKeyCodeNum == 0) {
1207 MMI_HILOGE("Keyitems code is not exist equal item with keyEvent code");
1208 return false;
1209 }
1210 return true;
1211 }
1212
IsValid() const1213 bool KeyEvent::IsValid() const
1214 {
1215 CALL_DEBUG_ENTER;
1216 int32_t keyCode = GetKeyCode();
1217 if (keyCode <= KEYCODE_UNKNOWN) {
1218 MMI_HILOGE("Invalid");
1219 return false;
1220 }
1221
1222 if (GetActionTime() <= 0) {
1223 MMI_HILOGE("Actiontime is invalid");
1224 return false;
1225 }
1226
1227 int32_t action = GetKeyAction();
1228 if (action != KEY_ACTION_CANCEL && action != KEY_ACTION_UP &&
1229 action != KEY_ACTION_DOWN) {
1230 MMI_HILOGE("Action is invalid");
1231 return false;
1232 }
1233
1234 if (!IsValidKeyItem()) {
1235 MMI_HILOGE("IsValidKeyItem is invalid");
1236 return false;
1237 }
1238 return true;
1239 }
1240
SetFourceMonitorFlag(bool fourceMonitorFlag)1241 void KeyEvent::SetFourceMonitorFlag(bool fourceMonitorFlag)
1242 {
1243 fourceMonitorFlag_ = fourceMonitorFlag;
1244 }
1245
GetFourceMonitorFlag()1246 bool KeyEvent::GetFourceMonitorFlag()
1247 {
1248 return fourceMonitorFlag_;
1249 }
1250
WriteToParcel(Parcel & out) const1251 bool KeyEvent::WriteToParcel(Parcel &out) const
1252 {
1253 if (!InputEvent::WriteToParcel(out)) {
1254 return false;
1255 }
1256 WRITEINT32(out, keyCode_);
1257 if (keys_.size() > INT_MAX) {
1258 return false;
1259 }
1260 WRITEINT32(out, static_cast<int32_t>(keys_.size()));
1261 for (const auto &item : keys_) {
1262 if (!item.WriteToParcel(out)) {
1263 return false;
1264 }
1265 }
1266 WRITEINT32(out, keyAction_);
1267 WRITEINT32(out, keyIntention_);
1268 WRITEBOOL(out, numLock_);
1269 WRITEBOOL(out, capsLock_);
1270 WRITEBOOL(out, scrollLock_);
1271 WRITEBOOL(out, repeat_);
1272 WRITEBOOL(out, repeatKey_);
1273 #ifdef OHOS_BUILD_ENABLE_SECURITY_COMPONENT
1274 WRITEINT32(out, static_cast<int32_t>(enhanceData_.size()));
1275 for (uint32_t i = 0; i < enhanceData_.size(); i++) {
1276 WRITEUINT32(out, enhanceData_[i]);
1277 }
1278 #endif // OHOS_BUILD_ENABLE_SECURITY_COMPONENT
1279 return true;
1280 }
1281
Marshalling(Parcel & out) const1282 bool KeyEvent::Marshalling(Parcel &out) const
1283 {
1284 return WriteToParcel(out);
1285 }
1286
ReadFromParcel(Parcel & in)1287 bool KeyEvent::ReadFromParcel(Parcel &in)
1288 {
1289 if (!InputEvent::ReadFromParcel(in)) {
1290 return false;
1291 }
1292 READINT32(in, keyCode_);
1293 const int32_t keysSize = in.ReadInt32();
1294 if (keysSize < 0 || keysSize > maxKeysSize) {
1295 return false;
1296 }
1297 for (int32_t i = 0; i < keysSize; i++) {
1298 KeyItem val = {};
1299 if (!val.ReadFromParcel(in)) {
1300 return false;
1301 }
1302 keys_.push_back(val);
1303 }
1304 READINT32(in, keyAction_);
1305 READINT32(in, keyIntention_);
1306 READBOOL(in, numLock_);
1307 READBOOL(in, capsLock_);
1308 READBOOL(in, scrollLock_);
1309 READBOOL(in, repeat_);
1310 READBOOL(in, repeatKey_);
1311 #ifdef OHOS_BUILD_ENABLE_SECURITY_COMPONENT
1312 if (!ReadEnhanceDataFromParcel(in)) {
1313 return false;
1314 }
1315 #endif // OHOS_BUILD_ENABLE_SECURITY_COMPONENT
1316 return true;
1317 }
1318
Unmarshalling(Parcel & parcel)1319 KeyEvent *KeyEvent::Unmarshalling(Parcel &parcel)
1320 {
1321 KeyEvent *data = new (std::nothrow) KeyEvent(InputEvent::EVENT_TYPE_KEY);
1322 if (data && !data->ReadFromParcel(parcel)) {
1323 delete data;
1324 data = nullptr;
1325 }
1326 return data;
1327 }
1328
1329 #ifdef OHOS_BUILD_ENABLE_SECURITY_COMPONENT
ReadEnhanceDataFromParcel(Parcel & in)1330 bool KeyEvent::ReadEnhanceDataFromParcel(Parcel &in)
1331 {
1332 int32_t size = 0;
1333 READINT32(in, size);
1334 if (size > static_cast<int32_t>(MAX_N_ENHANCE_DATA_SIZE) || size < 0) {
1335 MMI_HILOGE("key event enhanceData_ size is invalid");
1336 return false;
1337 }
1338
1339 for (int32_t i = 0; i < size; i++) {
1340 uint32_t val = 0;
1341 READUINT32(in, val);
1342 enhanceData_.emplace_back(val);
1343 }
1344 return true;
1345 }
1346 #endif // OHOS_BUILD_ENABLE_SECURITY_COMPONENT
1347
TransitionFunctionKey(int32_t keyCode)1348 int32_t KeyEvent::TransitionFunctionKey(int32_t keyCode)
1349 {
1350 switch (keyCode) {
1351 case KEYCODE_NUM_LOCK: {
1352 return NUM_LOCK_FUNCTION_KEY;
1353 }
1354 case KEYCODE_CAPS_LOCK: {
1355 return CAPS_LOCK_FUNCTION_KEY;
1356 }
1357 case KEYCODE_SCROLL_LOCK: {
1358 return SCROLL_LOCK_FUNCTION_KEY;
1359 }
1360 default: {
1361 MMI_HILOGW("Unknown key code:%{private}d", keyCode);
1362 return UNKNOWN_FUNCTION_KEY;
1363 }
1364 }
1365 }
1366
GetFunctionKey(int32_t funcKey) const1367 bool KeyEvent::GetFunctionKey(int32_t funcKey) const
1368 {
1369 switch (funcKey) {
1370 case NUM_LOCK_FUNCTION_KEY: {
1371 return numLock_;
1372 }
1373 case CAPS_LOCK_FUNCTION_KEY: {
1374 return capsLock_;
1375 }
1376 case SCROLL_LOCK_FUNCTION_KEY: {
1377 return scrollLock_;
1378 }
1379 default: {
1380 MMI_HILOGW("Unknown function key:%{public}d", funcKey);
1381 return false;
1382 }
1383 }
1384 }
1385
SetFunctionKey(int32_t funcKey,int32_t value)1386 int32_t KeyEvent::SetFunctionKey(int32_t funcKey, int32_t value)
1387 {
1388 bool state = static_cast<bool>(value);
1389 switch (funcKey) {
1390 case NUM_LOCK_FUNCTION_KEY: {
1391 numLock_ = state;
1392 return funcKey;
1393 }
1394 case CAPS_LOCK_FUNCTION_KEY: {
1395 capsLock_ = state;
1396 return funcKey;
1397 }
1398 case SCROLL_LOCK_FUNCTION_KEY: {
1399 scrollLock_ = state;
1400 return funcKey;
1401 }
1402 default: {
1403 MMI_HILOGW("Unknown function key:%{public}d", funcKey);
1404 return UNKNOWN_FUNCTION_KEY;
1405 }
1406 }
1407 }
1408
GetKeyIntention() const1409 int32_t KeyEvent::GetKeyIntention() const
1410 {
1411 return keyIntention_;
1412 }
1413
SetKeyIntention(int32_t keyIntention)1414 void KeyEvent::SetKeyIntention(int32_t keyIntention)
1415 {
1416 keyIntention_ = keyIntention;
1417 }
1418
IsRepeat() const1419 bool KeyEvent::IsRepeat() const
1420 {
1421 return repeat_;
1422 }
1423
SetRepeat(bool repeat)1424 void KeyEvent::SetRepeat(bool repeat)
1425 {
1426 repeat_ = repeat;
1427 }
1428
IsRepeatKey() const1429 bool KeyEvent::IsRepeatKey() const
1430 {
1431 return repeatKey_;
1432 }
1433
SetRepeatKey(bool repeatKey)1434 void KeyEvent::SetRepeatKey(bool repeatKey)
1435 {
1436 repeatKey_ = repeatKey;
1437 }
1438
ActionToShortStr(int32_t action)1439 std::string_view KeyEvent::ActionToShortStr(int32_t action)
1440 {
1441 switch (action) {
1442 case KeyEvent::KEY_ACTION_CANCEL:
1443 return "K:C:";
1444 case KeyEvent::KEY_ACTION_UNKNOWN:
1445 return "K:UK:";
1446 case KeyEvent::KEY_ACTION_UP:
1447 return "K:U:";
1448 case KeyEvent::KEY_ACTION_DOWN:
1449 return "K:D:";
1450 default:
1451 return "A:?:";
1452 }
1453 }
1454
1455 #ifdef OHOS_BUILD_ENABLE_SECURITY_COMPONENT
SetEnhanceData(const std::vector<uint8_t> enhanceData)1456 void KeyEvent::SetEnhanceData(const std::vector<uint8_t> enhanceData)
1457 {
1458 enhanceData_ = enhanceData;
1459 }
1460
GetEnhanceData() const1461 std::vector<uint8_t> KeyEvent::GetEnhanceData() const
1462 {
1463 return enhanceData_;
1464 }
1465 #endif // OHOS_BUILD_ENABLE_SECURITY_COMPONENT
1466 } // namespace MMI
1467 } // namespace OHOS
1468