234 {
235 if (initialized)
236 return;
237
238 keymapAndroid = new int[256];
239
240 keymapAndroid[KeyEvent.KEYCODE_0] = VK_KEY_0;
241 keymapAndroid[KeyEvent.KEYCODE_1] = VK_KEY_1;
242 keymapAndroid[KeyEvent.KEYCODE_2] = VK_KEY_2;
243 keymapAndroid[KeyEvent.KEYCODE_3] = VK_KEY_3;
244 keymapAndroid[KeyEvent.KEYCODE_4] = VK_KEY_4;
245 keymapAndroid[KeyEvent.KEYCODE_5] = VK_KEY_5;
246 keymapAndroid[KeyEvent.KEYCODE_6] = VK_KEY_6;
247 keymapAndroid[KeyEvent.KEYCODE_7] = VK_KEY_7;
248 keymapAndroid[KeyEvent.KEYCODE_8] = VK_KEY_8;
249 keymapAndroid[KeyEvent.KEYCODE_9] = VK_KEY_9;
250
251 keymapAndroid[KeyEvent.KEYCODE_A] = VK_KEY_A;
252 keymapAndroid[KeyEvent.KEYCODE_B] = VK_KEY_B;
253 keymapAndroid[KeyEvent.KEYCODE_C] = VK_KEY_C;
254 keymapAndroid[KeyEvent.KEYCODE_D] = VK_KEY_D;
255 keymapAndroid[KeyEvent.KEYCODE_E] = VK_KEY_E;
256 keymapAndroid[KeyEvent.KEYCODE_F] = VK_KEY_F;
257 keymapAndroid[KeyEvent.KEYCODE_G] = VK_KEY_G;
258 keymapAndroid[KeyEvent.KEYCODE_H] = VK_KEY_H;
259 keymapAndroid[KeyEvent.KEYCODE_I] = VK_KEY_I;
260 keymapAndroid[KeyEvent.KEYCODE_J] = VK_KEY_J;
261 keymapAndroid[KeyEvent.KEYCODE_K] = VK_KEY_K;
262 keymapAndroid[KeyEvent.KEYCODE_L] = VK_KEY_L;
263 keymapAndroid[KeyEvent.KEYCODE_M] = VK_KEY_M;
264 keymapAndroid[KeyEvent.KEYCODE_N] = VK_KEY_N;
265 keymapAndroid[KeyEvent.KEYCODE_O] = VK_KEY_O;
266 keymapAndroid[KeyEvent.KEYCODE_P] = VK_KEY_P;
267 keymapAndroid[KeyEvent.KEYCODE_Q] = VK_KEY_Q;
268 keymapAndroid[KeyEvent.KEYCODE_R] = VK_KEY_R;
269 keymapAndroid[KeyEvent.KEYCODE_S] = VK_KEY_S;
270 keymapAndroid[KeyEvent.KEYCODE_T] = VK_KEY_T;
271 keymapAndroid[KeyEvent.KEYCODE_U] = VK_KEY_U;
272 keymapAndroid[KeyEvent.KEYCODE_V] = VK_KEY_V;
273 keymapAndroid[KeyEvent.KEYCODE_W] = VK_KEY_W;
274 keymapAndroid[KeyEvent.KEYCODE_X] = VK_KEY_X;
275 keymapAndroid[KeyEvent.KEYCODE_Y] = VK_KEY_Y;
276 keymapAndroid[KeyEvent.KEYCODE_Z] = VK_KEY_Z;
277
278 keymapAndroid[KeyEvent.KEYCODE_DEL] = VK_BACK;
279 keymapAndroid[KeyEvent.KEYCODE_ENTER] = VK_RETURN;
280 keymapAndroid[KeyEvent.KEYCODE_SPACE] = VK_SPACE;
281 keymapAndroid[KeyEvent.KEYCODE_TAB] = VK_TAB;
282 keymapAndroid[KeyEvent.KEYCODE_ESCAPE] = VK_ESCAPE;
283 keymapAndroid[KeyEvent.KEYCODE_CAPS_LOCK] = VK_CAPITAL;
284
285
286
287 keymapAndroid[KeyEvent.KEYCODE_DPAD_DOWN] = VK_DOWN | VK_EXT_KEY;
288 keymapAndroid[KeyEvent.KEYCODE_DPAD_LEFT] = VK_LEFT | VK_EXT_KEY;
289 keymapAndroid[KeyEvent.KEYCODE_DPAD_RIGHT] = VK_RIGHT | VK_EXT_KEY;
290 keymapAndroid[KeyEvent.KEYCODE_DPAD_UP] = VK_UP | VK_EXT_KEY;
291 keymapAndroid[KeyEvent.KEYCODE_MOVE_HOME] = VK_HOME | VK_EXT_KEY;
292 keymapAndroid[KeyEvent.KEYCODE_MOVE_END] = VK_END | VK_EXT_KEY;
293 keymapAndroid[KeyEvent.KEYCODE_PAGE_UP] = VK_PRIOR | VK_EXT_KEY;
294 keymapAndroid[KeyEvent.KEYCODE_PAGE_DOWN] = VK_NEXT | VK_EXT_KEY;
295 keymapAndroid[KeyEvent.KEYCODE_FORWARD_DEL] = VK_DELETE | VK_EXT_KEY;
296 keymapAndroid[KeyEvent.KEYCODE_INSERT] = VK_INSERT | VK_EXT_KEY;
297
298 keymapAndroid[KeyEvent.KEYCODE_MINUS] = VK_OEM_MINUS;
299 keymapAndroid[KeyEvent.KEYCODE_EQUALS] = VK_OEM_PLUS;
300 keymapAndroid[KeyEvent.KEYCODE_LEFT_BRACKET] = VK_OEM_4;
301 keymapAndroid[KeyEvent.KEYCODE_RIGHT_BRACKET] = VK_OEM_6;
302 keymapAndroid[KeyEvent.KEYCODE_BACKSLASH] = VK_OEM_5;
303 keymapAndroid[KeyEvent.KEYCODE_SEMICOLON] = VK_OEM_1;
304 keymapAndroid[KeyEvent.KEYCODE_APOSTROPHE] = VK_OEM_7;
305 keymapAndroid[KeyEvent.KEYCODE_GRAVE] = VK_OEM_3;
306 keymapAndroid[KeyEvent.KEYCODE_COMMA] = VK_OEM_COMMA;
307 keymapAndroid[KeyEvent.KEYCODE_PERIOD] = VK_OEM_PERIOD;
308 keymapAndroid[KeyEvent.KEYCODE_SLASH] = VK_OEM_2;
309
310 keymapAndroid[KeyEvent.KEYCODE_F1] = VK_F1;
311 keymapAndroid[KeyEvent.KEYCODE_F2] = VK_F2;
312 keymapAndroid[KeyEvent.KEYCODE_F3] = VK_F3;
313 keymapAndroid[KeyEvent.KEYCODE_F4] = VK_F4;
314 keymapAndroid[KeyEvent.KEYCODE_F5] = VK_F5;
315 keymapAndroid[KeyEvent.KEYCODE_F6] = VK_F6;
316 keymapAndroid[KeyEvent.KEYCODE_F7] = VK_F7;
317 keymapAndroid[KeyEvent.KEYCODE_F8] = VK_F8;
318 keymapAndroid[KeyEvent.KEYCODE_F9] = VK_F9;
319 keymapAndroid[KeyEvent.KEYCODE_F10] = VK_F10;
320 keymapAndroid[KeyEvent.KEYCODE_F11] = VK_F11;
321 keymapAndroid[KeyEvent.KEYCODE_F12] = VK_F12;
322
323 keymapAndroid[KeyEvent.KEYCODE_NUM_LOCK] = VK_NUMLOCK;
324 keymapAndroid[KeyEvent.KEYCODE_SCROLL_LOCK] = VK_SCROLL;
325 keymapAndroid[KeyEvent.KEYCODE_SYSRQ] = VK_SNAPSHOT | VK_EXT_KEY;
326 keymapAndroid[KeyEvent.KEYCODE_BREAK] = VK_PAUSE;
327
328 keymapAndroid[KeyEvent.KEYCODE_NUMPAD_0] = VK_NUMPAD0;
329 keymapAndroid[KeyEvent.KEYCODE_NUMPAD_1] = VK_NUMPAD1;
330 keymapAndroid[KeyEvent.KEYCODE_NUMPAD_2] = VK_NUMPAD2;
331 keymapAndroid[KeyEvent.KEYCODE_NUMPAD_3] = VK_NUMPAD3;
332 keymapAndroid[KeyEvent.KEYCODE_NUMPAD_4] = VK_NUMPAD4;
333 keymapAndroid[KeyEvent.KEYCODE_NUMPAD_5] = VK_NUMPAD5;
334 keymapAndroid[KeyEvent.KEYCODE_NUMPAD_6] = VK_NUMPAD6;
335 keymapAndroid[KeyEvent.KEYCODE_NUMPAD_7] = VK_NUMPAD7;
336 keymapAndroid[KeyEvent.KEYCODE_NUMPAD_8] = VK_NUMPAD8;
337 keymapAndroid[KeyEvent.KEYCODE_NUMPAD_9] = VK_NUMPAD9;
338 keymapAndroid[KeyEvent.KEYCODE_NUMPAD_DIVIDE] = VK_DIVIDE | VK_EXT_KEY;
339 keymapAndroid[KeyEvent.KEYCODE_NUMPAD_MULTIPLY] = VK_MULTIPLY;
340 keymapAndroid[KeyEvent.KEYCODE_NUMPAD_SUBTRACT] = VK_SUBTRACT;
341 keymapAndroid[KeyEvent.KEYCODE_NUMPAD_ADD] = VK_ADD;
342 keymapAndroid[KeyEvent.KEYCODE_NUMPAD_DOT] = VK_DECIMAL;
343 keymapAndroid[KeyEvent.KEYCODE_NUMPAD_COMMA] = VK_DECIMAL;
344 keymapAndroid[KeyEvent.KEYCODE_NUMPAD_ENTER] = VK_RETURN | VK_EXT_KEY;
345 keymapAndroid[KeyEvent.KEYCODE_NUMPAD_EQUALS] = KEY_FLAG_UNICODE | 61;
346 keymapAndroid[KeyEvent.KEYCODE_NUMPAD_LEFT_PAREN] = KEY_FLAG_UNICODE | 40;
347 keymapAndroid[KeyEvent.KEYCODE_NUMPAD_RIGHT_PAREN] = KEY_FLAG_UNICODE | 41;
348
349
350 keymapExt = new int[256];
351 keymapExt[context.getResources().getInteger(R.integer.keycode_F1)] = VK_F1;
352 keymapExt[context.getResources().getInteger(R.integer.keycode_F2)] = VK_F2;
353 keymapExt[context.getResources().getInteger(R.integer.keycode_F3)] = VK_F3;
354 keymapExt[context.getResources().getInteger(R.integer.keycode_F4)] = VK_F4;
355 keymapExt[context.getResources().getInteger(R.integer.keycode_F5)] = VK_F5;
356 keymapExt[context.getResources().getInteger(R.integer.keycode_F6)] = VK_F6;
357 keymapExt[context.getResources().getInteger(R.integer.keycode_F7)] = VK_F7;
358 keymapExt[context.getResources().getInteger(R.integer.keycode_F8)] = VK_F8;
359 keymapExt[context.getResources().getInteger(R.integer.keycode_F9)] = VK_F9;
360 keymapExt[context.getResources().getInteger(R.integer.keycode_F10)] = VK_F10;
361 keymapExt[context.getResources().getInteger(R.integer.keycode_F11)] = VK_F11;
362 keymapExt[context.getResources().getInteger(R.integer.keycode_F12)] = VK_F12;
363 keymapExt[context.getResources().getInteger(R.integer.keycode_tab)] = VK_TAB;
364 keymapExt[context.getResources().getInteger(R.integer.keycode_print)] = VK_PRINT;
365 keymapExt[context.getResources().getInteger(R.integer.keycode_insert)] =
366 VK_INSERT | VK_EXT_KEY;
367 keymapExt[context.getResources().getInteger(R.integer.keycode_delete)] =
368 VK_DELETE | VK_EXT_KEY;
369 keymapExt[context.getResources().getInteger(R.integer.keycode_home)] = VK_HOME | VK_EXT_KEY;
370 keymapExt[context.getResources().getInteger(R.integer.keycode_end)] = VK_END | VK_EXT_KEY;
371 keymapExt[context.getResources().getInteger(R.integer.keycode_pgup)] =
372 VK_PRIOR | VK_EXT_KEY;
373 keymapExt[context.getResources().getInteger(R.integer.keycode_pgdn)] = VK_NEXT | VK_EXT_KEY;
374
375
376 keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_0)] = VK_NUMPAD0;
377 keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_1)] = VK_NUMPAD1;
378 keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_2)] = VK_NUMPAD2;
379 keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_3)] = VK_NUMPAD3;
380 keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_4)] = VK_NUMPAD4;
381 keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_5)] = VK_NUMPAD5;
382 keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_6)] = VK_NUMPAD6;
383 keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_7)] = VK_NUMPAD7;
384 keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_8)] = VK_NUMPAD8;
385 keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_9)] = VK_NUMPAD9;
386 keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_numlock)] = VK_NUMLOCK;
387 keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_add)] = VK_ADD;
388 keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_comma)] = VK_DECIMAL;
389 keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_divide)] =
390 VK_DIVIDE | VK_EXT_KEY;
391 keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_enter)] =
392 VK_RETURN | VK_EXT_KEY;
393 keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_multiply)] =
394 VK_MULTIPLY;
395 keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_subtract)] =
396 VK_SUBTRACT;
397 keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_equals)] =
398 (KEY_FLAG_UNICODE | 61);
399 keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_left_paren)] =
400 (KEY_FLAG_UNICODE | 40);
401 keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_right_paren)] =
402 (KEY_FLAG_UNICODE | 41);
403
404
405 keymapExt[context.getResources().getInteger(R.integer.keycode_up)] = VK_UP | VK_EXT_KEY;
406 keymapExt[context.getResources().getInteger(R.integer.keycode_down)] = VK_DOWN | VK_EXT_KEY;
407 keymapExt[context.getResources().getInteger(R.integer.keycode_left)] = VK_LEFT | VK_EXT_KEY;
408 keymapExt[context.getResources().getInteger(R.integer.keycode_right)] =
409 VK_RIGHT | VK_EXT_KEY;
410 keymapExt[context.getResources().getInteger(R.integer.keycode_enter)] =
411 VK_RETURN | VK_EXT_KEY;
412 keymapExt[context.getResources().getInteger(R.integer.keycode_backspace)] = VK_BACK;
413
414
415 keymapExt[context.getResources().getInteger(R.integer.keycode_win)] = VK_LWIN | VK_EXT_KEY;
416 keymapExt[context.getResources().getInteger(R.integer.keycode_menu)] = VK_APPS | VK_EXT_KEY;
417 keymapExt[context.getResources().getInteger(R.integer.keycode_esc)] = VK_ESCAPE;
418
419
420
421
422
423
424
425
426 keymapExt[context.getResources().getInteger(R.integer.keycode_specialkeys_keyboard)] =
427 EXTKEY_KBFUNCTIONKEYS;
428 keymapExt[context.getResources().getInteger(R.integer.keycode_numpad_keyboard)] =
429 EXTKEY_KBNUMPAD;
430 keymapExt[context.getResources().getInteger(R.integer.keycode_cursor_keyboard)] =
431 EXTKEY_KBCURSOR;
432
433 keymapExt[context.getResources().getInteger(R.integer.keycode_toggle_shift)] =
434 (KEY_FLAG_TOGGLE | VK_LSHIFT);
435 keymapExt[context.getResources().getInteger(R.integer.keycode_toggle_ctrl)] =
436 (KEY_FLAG_TOGGLE | VK_LCONTROL);
437 keymapExt[context.getResources().getInteger(R.integer.keycode_toggle_alt)] =
438 (KEY_FLAG_TOGGLE | VK_LMENU);
439 keymapExt[context.getResources().getInteger(R.integer.keycode_toggle_win)] =
440 (KEY_FLAG_TOGGLE | VK_LWIN);
441
442 initialized = true;
443 }