mirror of
https://github.com/koreader/koreader
synced 2024-10-31 21:20:20 +00:00
7f53ddacbe
For now pillow activityIndicator is used to draw animated waiting icon at the upper left corner of the screen. So pillow service should be enabled to use this feature, but eventually we should implement an activity indicator that is independent of native system.
44 lines
1.3 KiB
Lua
44 lines
1.3 KiB
Lua
require "ui/device"
|
|
|
|
ReaderActivityIndicator = EventListener:new{}
|
|
|
|
function ReaderActivityIndicator:init()
|
|
local dev_mod = Device:getModel()
|
|
if dev_mod == "KindlePaperWhite" or dev_mod == "KindleTouch" then
|
|
require "liblipclua"
|
|
self.lipc_handle = lipc.init("com.github.koreader.activityindicator")
|
|
end
|
|
end
|
|
|
|
function ReaderActivityIndicator:onStartActivityIndicator()
|
|
if self.lipc_handle then
|
|
-- check if activity indicator is needed
|
|
if self.document.configurable.text_wrap == 1 then
|
|
-- start indicator depends on pillow being enabled
|
|
self.lipc_handle:set_string_property(
|
|
"com.lab126.pillow", "activityIndicator",
|
|
'{"activityIndicator":{ \
|
|
"action":"start","timeout":10000, \
|
|
"clientId":"com.github.koreader.activityindicator", \
|
|
"priority":true}}')
|
|
self.indicator_started = true
|
|
end
|
|
end
|
|
return true
|
|
end
|
|
|
|
function ReaderActivityIndicator:onStopActivityIndicator()
|
|
if self.lipc_handle and self.indicator_started then
|
|
-- stop indicator depends on pillow being enabled
|
|
self.lipc_handle:set_string_property(
|
|
"com.lab126.pillow", "activityIndicator",
|
|
'{"activityIndicator":{ \
|
|
"action":"stop","timeout":10000, \
|
|
"clientId":"com.github.koreader.activityindicator", \
|
|
"priority":true}}')
|
|
self.indicator_started = false
|
|
util.usleep(1000000)
|
|
end
|
|
return true
|
|
end
|