Use koreader_xpointer for GotoXPointer, fallback to percentage
This commit is contained in:
@@ -792,8 +792,11 @@ function Bookhoard:syncToProgress(progress, percentage)
|
||||
logger.dbg("Bookhoard: sync to progress", progress, percentage)
|
||||
if self.ui.document.info.has_pages then
|
||||
self.ui:handleEvent(Event:new("GotoPage", tonumber(progress)))
|
||||
else
|
||||
elseif progress and progress:match("^/body/") then
|
||||
self.ui:handleEvent(Event:new("GotoXPointer", progress))
|
||||
elseif percentage then
|
||||
self.ui.document:gotoPercent(percentage * 100)
|
||||
self.ui:handleEvent(Event:new("UpdatePos"))
|
||||
end
|
||||
end
|
||||
|
||||
@@ -960,29 +963,31 @@ function Bookhoard:_doGetProgress(interactive)
|
||||
|
||||
local self_older = server_percentage > percentage
|
||||
|
||||
local nav_target = progress.koreader_xpointer or progress.epubcfi or progress.page
|
||||
|
||||
if self_older then
|
||||
if self.settings.sync_forward == SYNC_STRATEGY.SILENT then
|
||||
self:syncToProgress(progress.epubcfi or progress.page, server_percentage)
|
||||
self:syncToProgress(nav_target, server_percentage)
|
||||
self:_showSyncedMessage()
|
||||
elseif self.settings.sync_forward == SYNC_STRATEGY.PROMPT then
|
||||
UIManager:show(ConfirmBox:new{
|
||||
text = T(_("Sync to newer location %1%% from server?"),
|
||||
Math.round(server_percentage * 100)),
|
||||
ok_callback = function()
|
||||
self:syncToProgress(progress.epubcfi or progress.page, server_percentage)
|
||||
self:syncToProgress(nav_target, server_percentage)
|
||||
end,
|
||||
})
|
||||
end
|
||||
else
|
||||
if self.settings.sync_backward == SYNC_STRATEGY.SILENT then
|
||||
self:syncToProgress(progress.epubcfi or progress.page, server_percentage)
|
||||
self:syncToProgress(nav_target, server_percentage)
|
||||
self:_showSyncedMessage()
|
||||
elseif self.settings.sync_backward == SYNC_STRATEGY.PROMPT then
|
||||
UIManager:show(ConfirmBox:new{
|
||||
text = T(_("Sync to previous location %1%% from server?"),
|
||||
Math.round(server_percentage * 100)),
|
||||
ok_callback = function()
|
||||
self:syncToProgress(progress.epubcfi or progress.page, server_percentage)
|
||||
self:syncToProgress(nav_target, server_percentage)
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user