key event map for Android

pull/638/head
chrox 10 years ago
parent 4eaf71bb01
commit 613c66aa73

@ -104,21 +104,31 @@ end
Device.isAndroid = util.isAndroid
function Device:hasNoKeyboard()
if self.has_no_keyboard ~= nil then return self.has_no_keyboard end
-- device has qwerty keyboard
function Device:hasKeyboard()
if self.has_keyboard ~= nil then return self.has_keyboard end
if not isAndroid then
local model = self:getModel()
self.has_no_keyboard = (model == "KindlePaperWhite") or (model == "KindlePaperWhite2")
or (model == "KindleTouch") or self:isKobo()
self.has_keyboard = (model == "Kindle2") or (model == "Kindle3")
or util.isEmulated()
else
self.has_no_keyboard = ffi.C.AConfiguration_getKeyboard(android.app.config)
~= ffi.C.ACONFIGURATION_KEYBOARD_QWERTY
self.has_keyboard = ffi.C.AConfiguration_getKeyboard(android.app.config)
== ffi.C.ACONFIGURATION_KEYBOARD_QWERTY
end
return self.has_no_keyboard
return self.has_keyboard
end
function Device:hasKeyboard()
return not self:hasNoKeyboard()
function Device:hasNoKeyboard()
return not self:hasKeyboard()
end
-- device has hardware keys for pagedown/pageup
function Device:hasKeys()
if self.has_keys ~= nil then return self.has_keys end
local model = self:getModel()
self.has_keys = (model ~= "KindlePaperWhite") and (model ~= "KindlePaperWhite2")
and (model ~= "KindleTouch") and not self:isKobo()
return self.has_keys
end
function Device:isTouchDevice()

@ -245,6 +245,35 @@ function Input:initKeyMap()
[78] = "RPgFwd", -- normal PageDown
[76] = "Del", -- Delete
}
self.android_event_map = {
[29] = "A", [30] = "B", [31] = "C", [32] = "D", [33] = "E", [34] = "F",
[35] = "G", [36] = "H", [37] = "I", [38] = "J", [39] = "K", [40] = "L",
[41] = "M", [42] = "N", [43] = "O", [44] = "P", [45] = "Q", [46] = "R",
[47] = "S", [48] = "T", [49] = "U", [50] = "V", [51] = "W", [52] = "X",
[53] = "Y", [54] = "Z", [ 7] = "0", [ 8] = "1", [ 9] = "2", [10] = "3",
[11] = "4", [12] = "5", [13] = "6", [14] = "7", [15] = "8", [16] = "9",
[4] = "Back", -- BACK
[19] = "Up", -- DPAD_UP
[20] = "Down", -- DPAD_UP
[21] = "Left", -- DPAD_LEFT
[22] = "Right", -- DPAD_RIGHT
[23] = "Press", -- DPAD_CENTER
[24] = "LPgBack", -- VOLUME_UP
[25] = "LPgFwd", -- VOLUME_DOWN
[56] = ".", -- PERIOD
[59] = "Shift", -- SHIFT_LEFT
[60] = "Shift", -- SHIFT_RIGHT
[62] = " ", -- SPACE
[63] = "Sym", -- SYM
[66] = "Enter", -- ENTER
[67] = "Del", -- DEL
[76] = "/", -- SLASH
[82] = "Menu", -- MENU
[84] = "Search",--SEARCH
[92] = "LPgBack", -- PAGE_UP
[93] = "LPgFwd", -- PAGE_DOWN
}
self.modifiers = {
Alt = false,
@ -426,6 +455,7 @@ function Input:init()
input.open("/dev/input/event1")
elseif util.isAndroid() then
DEBUG("Auto-detected Android")
self.event_map = self.android_event_map
self:adjustAndroidEventMap()
function Input:handleMiscEv(ev)
return Input:handleAndroidMiscEvent(ev)
@ -467,6 +497,9 @@ function Input:adjustKoboEventMap()
end
function Input:adjustAndroidEventMap()
self.event_map[104] = "LPgBack" -- T68 PageUp
self.event_map[109] = "LPgFwd" -- T68 PageDown
self.event_map[139] = "Menu" -- T68 Menu
end
function Input:setTimeout(cb, tv_out)

Loading…
Cancel
Save