From d4254e52660d9b2b0e79d56b9ca9564144b32407 Mon Sep 17 00:00:00 2001 From: Qingping Hou Date: Mon, 29 Feb 2016 23:13:32 -0800 Subject: [PATCH] fix: unschedule auto refresh footer task on document close --- frontend/apps/reader/modules/readerfooter.lua | 26 +++++++------------ 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/frontend/apps/reader/modules/readerfooter.lua b/frontend/apps/reader/modules/readerfooter.lua index 5fb328b07..fa5730279 100644 --- a/frontend/apps/reader/modules/readerfooter.lua +++ b/frontend/apps/reader/modules/readerfooter.lua @@ -17,7 +17,6 @@ local Font = require("ui/font") local _ = require("gettext") local util = require("util") -local auto_refresh_scheduled = false local ReaderFooter = InputContainer:new{ mode = 1, @@ -158,8 +157,16 @@ function ReaderFooter:init() end self.mode = G_reader_settings:readSetting("reader_footer_mode") or self.mode self:applyFooterMode() - if self.settings.auto_refresh_time and not auto_refresh_scheduled then - self:autoRefreshTime() + if self.settings.auto_refresh_time then + self.autoRefreshTime = function() + self:updateFooterPage() + UIManager:setDirty(self.view.dialog, "ui", self[1][1][1].dimen) + UIManager:scheduleIn(61 - tonumber(os.date("%S")), self.autoRefreshTime) + end + UIManager:scheduleIn(61 - tonumber(os.date("%S")), self.autoRefreshTime) + self.onCloseDocument = function() + UIManager:unschedule(self.autoRefreshTime) + end end end @@ -213,19 +220,6 @@ function ReaderFooter:addToMainMenu(tab_item_table) }) end -function ReaderFooter:autoRefreshTime() - if self.settings.auto_refresh_time then - UIManager:scheduleIn(61 - tonumber(os.date("%S")) , function() - self:autoRefreshTime() - self:updateFooterPage() - UIManager:setDirty(self.view.dialog, "ui", self[1][1][1].dimen) - end) - auto_refresh_scheduled = true - else - auto_refresh_scheduled = false - end -end - function ReaderFooter:getBatteryInfo() local powerd = Device:getPowerDevice() return "B:" .. (powerd:isCharging() and "+" or "") .. powerd:getCapacity() .. "%"