Kindle: Make ReaderActivityIndicator a stub (#7002)

And only actually flesh it out and register it in the very few cases
where it can actually do something (i.e., old FW 5.x with KPV).
This commit is contained in:
NiLuJe
2020-12-18 18:26:58 +01:00
committed by GitHub
parent 04a980649f
commit 17356bbb2a
3 changed files with 45 additions and 16 deletions

View File

@@ -1,16 +1,43 @@
local EventListener = require("ui/widget/eventlistener")
-- Start with a empty stub, because 99.9% of users won't actually need this.
local ReaderActivityIndicator = {}
function ReaderActivityIndicator:isStub() return true end
function ReaderActivityIndicator:init() end
function ReaderActivityIndicator:onStartActivityIndicator() end
function ReaderActivityIndicator:onStopActivityIndicator() end
function ReaderActivityIndicator:coda() end
-- Now, if we're on Kindle, and we haven't actually murdered Pillow, see what we can do...
local Device = require("device")
if Device:isKindle() then
if os.getenv("PILLOW_HARD_DISABLED") or os.getenv("PILLOW_SOFT_DISABLED") then
-- Pillow is dead, bye!
return ReaderActivityIndicator
end
if not Device:isTouchDevice() then
-- No lipc, bye!
return ReaderActivityIndicator
end
else
-- Not on Kindle, bye!
return ReaderActivityIndicator
end
-- Okay, if we're here, it's basically because we're running on a Kindle on FW 5.x under KPV
local EventListener = require("ui/widget/eventlistener")
local util = require("ffi/util")
-- lipc
local ReaderActivityIndicator = EventListener:new{}
function ReaderActivityIndicator:isStub() return false end
ReaderActivityIndicator = EventListener:new{}
function ReaderActivityIndicator:init()
local dev_mod = Device.model
if dev_mod == "KindlePaperWhite" or dev_mod == "KindlePaperWhite2" or dev_mod == "KindleVoyage" or dev_mod == "KindleBasic" or dev_mod == "KindlePaperWhite3" or dev_mod == "KindleOasis" or dev_mod == "KindleBasic2" or dev_mod == "KindleTouch" then
if (pcall(require, "liblipclua")) then
self.lipc_handle = lipc.init("com.github.koreader.activityindicator")
end
if (pcall(require, "liblipclua")) then
self.lipc_handle = lipc.init("com.github.koreader.activityindicator")
end
end