Misc. minor fixes (#4080)

* Unbreak dropbear after #4077
* Move the Kindle SO check to init
* Various virtual keyboard fixes to eradicate the remaining refresh conflicts (i.e., tearing artifacts), no matter the user's settings. (re #4069, re #3130).
pull/4090/head
NiLuJe 6 years ago committed by GitHub
parent 5caabfb174
commit 464672108e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -16,22 +16,6 @@ local function kindleEnableWifi(toggle)
end end
end end
local Kindle = Generic:new{
model = "Kindle",
isKindle = yes,
}
function Kindle:initNetworkManager(NetworkMgr)
NetworkMgr.turnOnWifi = function()
kindleEnableWifi(1)
end
NetworkMgr.turnOffWifi = function()
kindleEnableWifi(0)
end
end
--[[ --[[
Test if a kindle device has Special Offers Test if a kindle device has Special Offers
--]] --]]
@ -49,6 +33,10 @@ local function isSpecialOffers()
end end
local is_so local is_so
local loaded_blanket_modules = lipc_handle:get_string_property("com.lab126.blanket", "load") local loaded_blanket_modules = lipc_handle:get_string_property("com.lab126.blanket", "load")
if not loaded_blanket_modules then
logger.warn("could not get lipc property")
return true
end
if string.find(loaded_blanket_modules, "ad_screensaver") then if string.find(loaded_blanket_modules, "ad_screensaver") then
is_so = true is_so = true
else else
@ -58,8 +46,25 @@ local function isSpecialOffers()
return is_so return is_so
end end
local Kindle = Generic:new{
model = "Kindle",
isKindle = yes,
-- NOTE: We can cheat by adding a platform-specific entry here, because the only code that will check for this is here.
isSpecialOffers = isSpecialOffers(),
}
function Kindle:initNetworkManager(NetworkMgr)
NetworkMgr.turnOnWifi = function()
kindleEnableWifi(1)
end
NetworkMgr.turnOffWifi = function()
kindleEnableWifi(0)
end
end
function Kindle:supportsScreensaver() function Kindle:supportsScreensaver()
if isSpecialOffers() then if self.isSpecialOffers then
return false return false
else else
return true return true
@ -619,7 +624,11 @@ end
function KindleTouch:exit() function KindleTouch:exit()
Generic.exit(self) Generic.exit(self)
if isSpecialOffers() then if self.isSpecialOffers then
-- Wakey wakey...
if os.getenv("AWESOME_STOPPED") == "yes" then
os.execute("killall -cont awesome")
end
-- fake a touch event -- fake a touch event
if self.touch_dev then if self.touch_dev then
local width, height = self.screen:getScreenWidth(), self.screen:getScreenHeight() local width, height = self.screen:getScreenWidth(), self.screen:getScreenHeight()

@ -27,6 +27,9 @@ local VirtualKey = InputContainer:new{
keyboard = nil, keyboard = nil,
callback = nil, callback = nil,
-- This is to inhibit the key's own refresh (useful to avoid conflicts on Layout changing keys)
skiptap = nil,
skiphold = nil,
width = nil, width = nil,
height = math.max(Screen:getWidth(), Screen:getHeight())*0.33, height = math.max(Screen:getWidth(), Screen:getHeight())*0.33,
@ -37,15 +40,20 @@ local VirtualKey = InputContainer:new{
function VirtualKey:init() function VirtualKey:init()
if self.keyboard.symbolmode_keys[self.label] ~= nil then if self.keyboard.symbolmode_keys[self.label] ~= nil then
self.callback = function () self.keyboard:setLayout("Sym") end self.callback = function () self.keyboard:setLayout("Sym") end
self.skiptap = true
elseif self.keyboard.shiftmode_keys[self.label] ~= nil then elseif self.keyboard.shiftmode_keys[self.label] ~= nil then
self.callback = function () self.keyboard:setLayout("Shift") end self.callback = function () self.keyboard:setLayout("Shift") end
self.skiptap = true
elseif self.keyboard.utf8mode_keys[self.label] ~= nil then elseif self.keyboard.utf8mode_keys[self.label] ~= nil then
self.callback = function () self.keyboard:setLayout("IM") end self.callback = function () self.keyboard:setLayout("IM") end
self.skiptap = true
elseif self.keyboard.umlautmode_keys[self.label] ~= nil then elseif self.keyboard.umlautmode_keys[self.label] ~= nil then
self.callback = function () self.keyboard:setLayout("Äéß") end self.callback = function () self.keyboard:setLayout("Äéß") end
self.skiptap = true
elseif self.label == "Backspace" then elseif self.label == "Backspace" then
self.callback = function () self.keyboard:delChar() end self.callback = function () self.keyboard:delChar() end
self.hold_callback = function () self.keyboard:clear() end self.hold_callback = function () self.keyboard:clear() end
--self.skiphold = true
elseif self.label =="" then elseif self.label =="" then
self.callback = function() self.keyboard:leftChar() end self.callback = function() self.keyboard:leftChar() end
elseif self.label == "" then elseif self.label == "" then
@ -113,13 +121,23 @@ function VirtualKey:init()
self.flash_keyboard = G_reader_settings:readSetting("flash_keyboard") ~= false self.flash_keyboard = G_reader_settings:readSetting("flash_keyboard") ~= false
end end
function VirtualKey:update_keyboard() function VirtualKey:update_keyboard(want_flash, want_fast)
-- NOTE: We could arguably use "fast" when inverted & "ui" when not, but it doesn't change much, -- NOTE: We mainly use "fast" when inverted & "ui" when not, with a cherry on top:
-- and doesn't help with the graphics quirks of repeated "fast" updates on some devices. -- we flash the *full* keyboard instead when we release a hold.
UIManager:setDirty(self.keyboard, function() if want_flash then
logger.dbg("update key region", self[1].dimen) UIManager:setDirty(self.keyboard, function()
return "fast", self[1].dimen return "flashui", self.keyboard[1][1].dimen
end) end)
else
local refresh_type = "ui"
if want_fast then
refresh_type = "fast"
end
UIManager:setDirty(self.keyboard, function()
logger.dbg("update key region", self[1].dimen)
return refresh_type, self[1].dimen
end)
end
end end
function VirtualKey:onFocus() function VirtualKey:onFocus()
@ -131,9 +149,9 @@ function VirtualKey:onUnfocus()
end end
function VirtualKey:onTapSelect() function VirtualKey:onTapSelect()
if self.flash_keyboard then if self.flash_keyboard and not self.skiptap then
self[1].invert = true self[1].invert = true
self:update_keyboard() self:update_keyboard(false, true)
if self.callback then if self.callback then
self.callback() self.callback()
end end
@ -147,13 +165,13 @@ function VirtualKey:onTapSelect()
end end
function VirtualKey:onHoldSelect() function VirtualKey:onHoldSelect()
if self.flash_keyboard then if self.flash_keyboard and not self.skiphold then
self[1].invert = true self[1].invert = true
self:update_keyboard() self:update_keyboard(false, true)
if self.hold_callback then if self.hold_callback then
self.hold_callback() self.hold_callback()
end end
UIManager:tickAfterNext(function() self:invert(false) end) UIManager:tickAfterNext(function() self:invert(false, true) end)
else else
if self.hold_callback then if self.hold_callback then
self.hold_callback() self.hold_callback()
@ -162,9 +180,9 @@ function VirtualKey:onHoldSelect()
return true return true
end end
function VirtualKey:invert(invert) function VirtualKey:invert(invert, hold)
self[1].invert = invert self[1].invert = invert
self:update_keyboard() self:update_keyboard(hold, false)
end end
local VirtualKeyboard = FocusManager:new{ local VirtualKeyboard = FocusManager:new{

@ -30,7 +30,7 @@ function SSH:init()
end end
function SSH:start() function SSH:start()
local cmd = string.format("%s %s %s %s%s %s %s %s", local cmd = string.format("%s %s %s %s%s %s",
"./dropbearmulti dropbear", "./dropbearmulti dropbear",
"-E", "-E",
"-R", "-R",
@ -141,8 +141,8 @@ function SSH:addToMainMenu(menu_items)
}, },
{ {
text = _("Stop SSH server"), text = _("Stop SSH server"),
callback = self.stop, callback = function() return self:stop() end,
enabled_func = self.isRunning, enabled_func = function() return self:isRunning() end,
}, },
{ {
text = _("Change SSH port"), text = _("Change SSH port"),

Loading…
Cancel
Save