Refactoring readerfooter statistics - TB and TC (#3223)

pull/3227/head
Robert 7 years ago committed by Frans de Jonge
parent 5ea7c703e0
commit 2c3936ddb4

@ -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()

@ -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

Loading…
Cancel
Save