From 3ad3452d1aa7a18245e8cf86bf9981d8ec19d501 Mon Sep 17 00:00:00 2001 From: Hzj_jie Date: Sun, 2 Apr 2017 14:46:19 -0700 Subject: [PATCH] System Stat plugin (#2699) --- .../ui/elements/filemanager_menu_order.lua | 1 + frontend/ui/elements/reader_menu_order.lua | 1 + frontend/ui/uimanager.lua | 6 +- plugins/batterystat.koplugin/main.lua | 9 ++- plugins/systemstat.koplugin/main.lua | 79 +++++++++++++++++++ 5 files changed, 89 insertions(+), 7 deletions(-) create mode 100644 plugins/systemstat.koplugin/main.lua diff --git a/frontend/ui/elements/filemanager_menu_order.lua b/frontend/ui/elements/filemanager_menu_order.lua index 30f428ffb..2b6db2dd7 100644 --- a/frontend/ui/elements/filemanager_menu_order.lua +++ b/frontend/ui/elements/filemanager_menu_order.lua @@ -56,6 +56,7 @@ local order = { "ota_update", -- if Device:isKindle() or Device:isKobo() or Device:isPocketBook() or Device:isAndroid() "version", "help", + "system_statistics", "----------------------------", "exit", }, diff --git a/frontend/ui/elements/reader_menu_order.lua b/frontend/ui/elements/reader_menu_order.lua index 1fbed45f6..8726422a3 100644 --- a/frontend/ui/elements/reader_menu_order.lua +++ b/frontend/ui/elements/reader_menu_order.lua @@ -70,6 +70,7 @@ local order = { "ota_update", -- if Device:isKindle() or Device:isKobo() or Device:isPocketBook() or Device:isAndroid() "version", "help", + "system_statistics", "----------------------------", "exit", }, diff --git a/frontend/ui/uimanager.lua b/frontend/ui/uimanager.lua index 18181a5f4..ac27fcc22 100644 --- a/frontend/ui/uimanager.lua +++ b/frontend/ui/uimanager.lua @@ -747,7 +747,7 @@ function UIManager:_initAutoSuspend() if isAutoSuspendEnabled() then self.auto_suspend_action = function() - local now = util.gettime() + local now = os.time() -- Do not repeat auto suspend procedure after suspend. if self.last_action_sec + self.auto_suspend_sec <= now then self.event_handlers["Suspend"]() @@ -759,7 +759,7 @@ function UIManager:_initAutoSuspend() end function UIManager:_startAutoSuspend() - self.last_action_sec = util.gettime() + self.last_action_sec = os.time() self:nextTick(self.auto_suspend_action) end dbg:guard(UIManager, '_startAutoSuspend', @@ -772,7 +772,7 @@ function UIManager:_initAutoSuspend() end function UIManager:_resetAutoSuspendTimer() - self.last_action_sec = util.gettime() + self.last_action_sec = os.time() end self:_startAutoSuspend() diff --git a/plugins/batterystat.koplugin/main.lua b/plugins/batterystat.koplugin/main.lua index 1f18f8905..3e024866f 100644 --- a/plugins/batterystat.koplugin/main.lua +++ b/plugins/batterystat.koplugin/main.lua @@ -91,7 +91,6 @@ function Usage:dumpCharging(kv_pairs) end local BatteryStat = { - name = "batterstat", settings = LuaSettings:open(DataStorage:getSettingsDir() .. "/batterstat.lua"), dump_file = util.realpath(DataStorage:getDataDir()) .. "/batterystat.log", debugging = false, @@ -201,7 +200,7 @@ function BatteryStat:onNotCharging() self:accumulate() end -function BatteryStat:onCallback() +function BatteryStat:showStatistics() self:initCurrentState() self:accumulate() local kv_pairs = self:dump() @@ -245,7 +244,9 @@ end BatteryStat:init() -local BatteryStatWidget = WidgetContainer:new() +local BatteryStatWidget = WidgetContainer:new{ + name = "batterystat", +} function BatteryStatWidget:init() self.ui.menu:registerToMainMenu(self) @@ -255,7 +256,7 @@ function BatteryStatWidget:addToMainMenu(menu_items) menu_items.battery_statistics = { text = _("Battery statistics"), callback = function() - BatteryStat:onCallback() + BatteryStat:showStatistics() end, } end diff --git a/plugins/systemstat.koplugin/main.lua b/plugins/systemstat.koplugin/main.lua new file mode 100644 index 000000000..2252ee668 --- /dev/null +++ b/plugins/systemstat.koplugin/main.lua @@ -0,0 +1,79 @@ + +local KeyValuePage = require("ui/widget/keyvaluepage") +local UIManager = require("ui/uimanager") +local WidgetContainer = require("ui/widget/container/widgetcontainer") +local _ = require("gettext") + +local SystemStat = { + start_sec = os.time(), + wakeup_count = 0, + sleep_count = 0, + charge_count = 0, + discharge_count = 0, +} + +function SystemStat:onSuspend() + self.sleep_count = self.sleep_count + 1 +end + +function SystemStat:onResume() + self.wakeup_count = self.wakeup_count + 1 +end + +function SystemStat:onCharging() + self.charge_count = self.charge_count + 1 +end + +function SystemStat:onNotCharging() + self.discharge_count = self.discharge_count + 1 +end + +function SystemStat:showStatistics() + local kv_pairs = { + {_("KOReader Started at"), os.date("%c", self.start_sec)}, + {_("Up hours"), string.format("%.2f", os.difftime(os.time(), self.start_sec) / 60 / 60)}, + {_("Number of wake-ups"), self.wakeup_count}, + {_("Number of sleeps"), self.sleep_count}, + {_("Number of charge cycles"), self.charge_count}, + {_("Number of discharge cycles"), self.discharge_count}, + } + UIManager:show(KeyValuePage:new{ + title = _("System statistics"), + kv_pairs = kv_pairs, + }) +end + +local SystemStatWidget = WidgetContainer:new{ + name = "systemstat", +} + +function SystemStatWidget:init() + self.ui.menu:registerToMainMenu(self) +end + +function SystemStatWidget:addToMainMenu(menu_items) + menu_items.system_statistics = { + text = _("System statistics"), + callback = function() + SystemStat:showStatistics() + end, + } +end + +function SystemStatWidget:onSuspend() + SystemStat:onSuspend() +end + +function SystemStatWidget:onResume() + SystemStat:onResume() +end + +function SystemStatWidget:onCharging() + SystemStat:onCharging() +end + +function SystemStatWidget:onNotCharging() + SystemStat:onNotCharging() +end + +return SystemStatWidget