diff --git a/frontend/apps/reader/modules/readerfooter.lua b/frontend/apps/reader/modules/readerfooter.lua index 330ea815f..6f8363926 100644 --- a/frontend/apps/reader/modules/readerfooter.lua +++ b/frontend/apps/reader/modules/readerfooter.lua @@ -212,7 +212,6 @@ function ReaderFooter:init() if self.settings.auto_refresh_time then self:setupAutoRefreshTime() end - self.average_time_per_page = nil end function ReaderFooter:setupAutoRefreshTime() @@ -500,10 +499,15 @@ function ReaderFooter:setTocMarkers() return true end +function ReaderFooter:getAvgTimePerPage() + return +end + function ReaderFooter:getDataFromStatistics(title, pages) local sec = 'na' - if self.average_time_per_page then - sec = util.secondsToClock(pages * self.average_time_per_page, true) + local average_time_per_page = self:getAvgTimePerPage() + if average_time_per_page then + sec = util.secondsToClock(pages * average_time_per_page, true) end return title .. sec end @@ -686,11 +690,6 @@ function ReaderFooter:onSuspend() end end -function ReaderFooter:onUpdateStats(avg_time_page) - self.average_time_per_page = avg_time_page - return true -end - function ReaderFooter:onFrontlightStateChanged() if self.settings.frontlight then self:updateFooter() diff --git a/plugins/statistics.koplugin/main.lua b/plugins/statistics.koplugin/main.lua index dd75ea7b0..6ceac139e 100755 --- a/plugins/statistics.koplugin/main.lua +++ b/plugins/statistics.koplugin/main.lua @@ -2,10 +2,10 @@ local BookStatusWidget = require("ui/widget/bookstatuswidget") local ConfirmBox = require("ui/widget/confirmbox") local DataStorage = require("datastorage") local DocSettings = require("docsettings") -local Event = require("ui/event") local InfoMessage = require("ui/widget/infomessage") local KeyValuePage = require("ui/widget/keyvaluepage") local MultiInputDialog = require("ui/widget/multiinputdialog") +local ReaderFooter = require("apps/reader/modules/readerfooter") local ReaderProgress = require("readerprogress") local ReadHistory = require("readhistory") local SQ3 = require("lua-ljsqlite3/init") @@ -99,6 +99,11 @@ function ReaderStatistics:init() BookStatusWidget.getStats = function() return self:getStatsBookStatus(self.id_curr_book, self.is_enabled) end + ReaderFooter.getAvgTimePerPage = function() + if self.is_enabled then + return self.avg_time + end + end end function ReaderStatistics:initData() @@ -125,10 +130,7 @@ function ReaderStatistics:initData() self.id_curr_book = self:getIdBookDB() self.total_read_pages, self.total_read_time = self:getPageTimeTotalStats(self.id_curr_book) if self.total_read_pages > 0 then - local avg_time = math.ceil(self.total_read_time / self.total_read_pages) - self.avg_time = avg_time - self.ui:handleEvent(Event:new("UpdateStats", avg_time)) - self.view.footer:updateFooter() + self.avg_time = math.ceil(self.total_read_time / self.total_read_pages) end end @@ -596,6 +598,9 @@ function ReaderStatistics:getStatisticEnabledMenuItem() self.pages_stats[self.start_current_period] = self.curr_page end self:saveSettings() + if not self:isDocless() then + self.view.footer:updateFooter() + end end, } end @@ -1268,16 +1273,8 @@ function ReaderStatistics:onPageUpdate(pageno) mem_read_pages = 0 mem_read_time = 0 end - -- send avg_time_page - local avg_time if self.total_read_pages > 0 or mem_read_pages > 0 then - avg_time = math.ceil((self.total_read_time + mem_read_time) / (self.total_read_pages + mem_read_pages)) - if self.avg_time ~= avg_time then - self.avg_time = avg_time - if avg_time > 0 then - self.ui:handleEvent(Event:new("UpdateStats", avg_time)) - end - end + self.avg_time = math.ceil((self.total_read_time + mem_read_time) / (self.total_read_pages + mem_read_pages)) end end