mirror of
https://github.com/DeviceFarmer/stf.git
synced 2026-04-18 08:03:30 +02:00
Started to implement keycodes service.
This commit is contained in:
83
res/app/components/stf/keycodes/keycodes-service.js
Normal file
83
res/app/components/stf/keycodes/keycodes-service.js
Normal file
@@ -0,0 +1,83 @@
|
||||
module.exports = function KeycodesServiceFactory(KeycodesAndroid, KeycodesJS) {
|
||||
var service = {}
|
||||
|
||||
var a = KeycodesAndroid
|
||||
var j = KeycodesJS
|
||||
var androidMap = [
|
||||
[j.ENTER, a.KEYCODE_ENTER],
|
||||
[j.SPACE, a.KEYCODE_SPACE],
|
||||
[j.DELETE, a.KEYCODE_DEL],
|
||||
[j.ESCAPE, a.KEYCODE_ESCAPE],
|
||||
[j.BACKSPACE, a.KEYCODE_DEL],
|
||||
[j.TAB, a.KEYCODE_TAB],
|
||||
[j.SHIFT, a.KEYCODE_SHIFT_LEFT],
|
||||
[j.CAPS_LOCK, a.KEYCODE_CAPS_LOCK],
|
||||
[j.SLASH, a.KEYCODE_SLASH],
|
||||
[j.BACKSLASH, a.KEYCODE_BACKSLASH],
|
||||
[j.COMMA, a.KEYCODE_COMMA],
|
||||
[j.PERIOD, a.KEYCODE_PERIOD],
|
||||
[j.SEMICOLON, a.KEYCODE_SEMICOLON],
|
||||
[j.PAGE_UP, a.KEYCODE_PAGE_UP],
|
||||
[j.PAGE_DOWN, a.KEYCODE_PAGE_DOWN],
|
||||
// [j.LEFT_WINDOW, a.KEYCODE_RO],
|
||||
// [j.SELECT_KEY, a.KEYCODE_KANA],
|
||||
[j.HOME, a.KEYCODE_MOVE_HOME],
|
||||
[j.END, a.KEYCODE_MOVE_END],
|
||||
[j.UP, a.KEYCODE_DPAD_UP],
|
||||
[j.DOWN, a.KEYCODE_DPAD_DOWN],
|
||||
[j.LEFT, a.KEYCODE_DPAD_LEFT],
|
||||
[j.RIGHT, a.KEYCODE_DPAD_RIGHT],
|
||||
[j.F3, a.KEYCODE_POWER],
|
||||
[j.F7, a.KEYCODE_MEDIA_PREVIOUS],
|
||||
[j.F8, a.KEYCODE_MEDIA_PLAY_PAUSE],
|
||||
[j.F9, a.KEYCODE_MEDIA_NEXT],
|
||||
[j.F10, a.KEYCODE_VOLUME_MUTE],
|
||||
[j.F11, a.KEYCODE_VOLUME_DOWN],
|
||||
[j.F12, a.KEYCODE_VOLUME_UP],
|
||||
[j.NUMPAD_0, a.KEYCODE_NUMPAD_0],
|
||||
[j.NUMPAD_1, a.KEYCODE_NUMPAD_1],
|
||||
[j.NUMPAD_2, a.KEYCODE_NUMPAD_2],
|
||||
[j.NUMPAD_3, a.KEYCODE_NUMPAD_3],
|
||||
[j.NUMPAD_4, a.KEYCODE_NUMPAD_4],
|
||||
[j.NUMPAD_5, a.KEYCODE_NUMPAD_5],
|
||||
[j.NUMPAD_6, a.KEYCODE_NUMPAD_6],
|
||||
[j.NUMPAD_7, a.KEYCODE_NUMPAD_7],
|
||||
[j.NUMPAD_8, a.KEYCODE_NUMPAD_8],
|
||||
[j.NUMPAD_9, a.KEYCODE_NUMPAD_9],
|
||||
[j.MULTIPLY, a.KEYCODE_NUMPAD_MULTIPLY],
|
||||
[j.ADD, a.KEYCODE_NUMPAD_ADD],
|
||||
[j.SUBTRACT, a.KEYCODE_NUMPAD_SUBTRACT],
|
||||
[j.DECIMAL_POINT, a.KEYCODE_NUMPAD_DOT],
|
||||
[j.DIVIDE, a.KEYCODE_NUMPAD_DIVIDE],
|
||||
[j.EQUAL_SIGN, a.KEYCODE_EQUALS],
|
||||
[j.DASH, a.KEYCODE_MINUS],
|
||||
[j.GRAVE_ACCENT, a.KEYCODE_GRAVE],
|
||||
[j.OPEN_BRACKET, a.KEYCODE_LEFT_BRACKET],
|
||||
[j.CLOSE_BRACKET, a.KEYCODE_RIGHT_BRACKET],
|
||||
[j.SINGLE_QUOTE, a.KEYCODE_APOSTROPHE]
|
||||
]
|
||||
|
||||
service.mapToDevice = function (keyCode) {
|
||||
return service.mapToAndroid(keyCode)
|
||||
}
|
||||
|
||||
service.mapToAndroid = function (key) {
|
||||
// All special keys
|
||||
for (var i = 0; i < androidMap.length; ++i) {
|
||||
if (androidMap[i][0] === key) {
|
||||
return androidMap[i][1]
|
||||
}
|
||||
}
|
||||
// Range of numbers and letters
|
||||
if (key >= j['0'] && key <= j['9']) {
|
||||
return key - 41 // 0-9 range
|
||||
}
|
||||
else if (key >= j.A && key <= j.Z) {
|
||||
return key - 36 // a-z range
|
||||
}
|
||||
// Key not mapped
|
||||
return -1
|
||||
}
|
||||
|
||||
return service
|
||||
}
|
||||
Reference in New Issue
Block a user