diff --git a/frontend/apps/filemanager/filemanagermenu.lua b/frontend/apps/filemanager/filemanagermenu.lua index f6e881541..f36dc4dc8 100644 --- a/frontend/apps/filemanager/filemanagermenu.lua +++ b/frontend/apps/filemanager/filemanagermenu.lua @@ -97,67 +97,11 @@ function FileManagerMenu:setUpdateItemTable() end }) - -- TODO: refactor out redundant code between reader menu and filemanager menu - table.insert(self.tab_item_table.setting, { - text = _("Font size"), - sub_item_table = { - { - text = _("Auto"), - checked_func = function() - local dpi = G_reader_settings:readSetting("screen_dpi") - return dpi == nil - end, - callback = function() Screen:setDPI() end - }, - { - text = _("Small"), - checked_func = function() - local dpi = G_reader_settings:readSetting("screen_dpi") - return dpi and dpi <= 140 - end, - callback = function() Screen:setDPI(120) end - }, - { - text = _("Medium"), - checked_func = function() - local dpi = G_reader_settings:readSetting("screen_dpi") - return dpi and dpi > 140 and dpi <= 200 - end, - callback = function() Screen:setDPI(160) end - }, - { - text = _("Large"), - checked_func = function() - local dpi = G_reader_settings:readSetting("screen_dpi") - return dpi and dpi > 200 - end, - callback = function() Screen:setDPI(240) end - }, - } - }) + table.insert(self.tab_item_table.setting, Screen:getDPIMenuTable()) table.insert(self.tab_item_table.setting, Language:getLangMenuTable()) -- info tab - table.insert(self.tab_item_table.info, { - text = _("Check update"), - callback = function() - local ota_version = OTAManager:checkUpdate() - if ota_version == 0 then - UIManager:show(InfoMessage:new{ - text = _("Your koreader is updated."), - }) - elseif ota_version == nil then - UIManager:show(InfoMessage:new{ - text = _("OTA server is not available."), - }) - elseif ota_version then - UIManager:show(ConfirmBox:new{ - text = _("Do you want to update to version ")..ota_version.."?", - ok_callback = function() OTAManager:zsync() end - }) - end - end - }) + table.insert(self.tab_item_table.info, OTAManager:getOTAMenuTable()) table.insert(self.tab_item_table.info, { text = _("Version"), callback = function() diff --git a/frontend/apps/reader/modules/readermenu.lua b/frontend/apps/reader/modules/readermenu.lua index f0e3a1dcd..ba0d3252e 100644 --- a/frontend/apps/reader/modules/readermenu.lua +++ b/frontend/apps/reader/modules/readermenu.lua @@ -89,43 +89,7 @@ function ReaderMenu:setUpdateItemTable() G_reader_settings:saveSetting("night_mode", not night_mode) end }) - table.insert(self.tab_item_table.setting, { - text = _("Font size"), - sub_item_table = { - { - text = _("Auto"), - checked_func = function() - local dpi = G_reader_settings:readSetting("screen_dpi") - return dpi == nil - end, - callback = function() Screen:setDPI() end - }, - { - text = _("Small"), - checked_func = function() - local dpi = G_reader_settings:readSetting("screen_dpi") - return dpi and dpi <= 140 - end, - callback = function() Screen:setDPI(120) end - }, - { - text = _("Medium"), - checked_func = function() - local dpi = G_reader_settings:readSetting("screen_dpi") - return dpi and dpi > 140 and dpi <= 200 - end, - callback = function() Screen:setDPI(160) end - }, - { - text = _("Large"), - checked_func = function() - local dpi = G_reader_settings:readSetting("screen_dpi") - return dpi and dpi > 200 - end, - callback = function() Screen:setDPI(240) end - }, - } - }) + table.insert(self.tab_item_table.setting, Screen:getDPIMenuTable()) table.insert(self.tab_item_table.setting, self:genRefreshRateMenu()) table.insert(self.tab_item_table.setting, { text = _("Show advanced options"), @@ -138,26 +102,7 @@ function ReaderMenu:setUpdateItemTable() table.insert(self.tab_item_table.setting, Language:getLangMenuTable()) -- info tab - table.insert(self.tab_item_table.info, { - text = _("Check update"), - callback = function() - local ota_version = OTAManager:checkUpdate() - if ota_version == 0 then - UIManager:show(InfoMessage:new{ - text = _("Your koreader is updated."), - }) - elseif ota_version == nil then - UIManager:show(InfoMessage:new{ - text = _("OTA server is not available."), - }) - elseif ota_version then - UIManager:show(ConfirmBox:new{ - text = _("Do you want to update to version ")..ota_version.."?", - ok_callback = function() OTAManager:zsync() end - }) - end - end - }) + table.insert(self.tab_item_table.info, OTAManager:getOTAMenuTable()) table.insert(self.tab_item_table.info, { text = _("Version"), callback = function() diff --git a/frontend/ui/device/screen.lua b/frontend/ui/device/screen.lua index b3f3ae4c2..b87ffd790 100644 --- a/frontend/ui/device/screen.lua +++ b/frontend/ui/device/screen.lua @@ -1,7 +1,8 @@ local Blitbuffer = require("ffi/blitbuffer") local Geom = require("ui/geometry") -local DEBUG = require("dbg") local util = require("ffi/util") +local DEBUG = require("dbg") +local _ = require("gettext") -- Blitbuffer -- einkfb @@ -236,5 +237,45 @@ function Screen:restoreFromBB(bb) end end +function Screen:getDPIMenuTable() + return { + text = _("Font size"), + sub_item_table = { + { + text = _("Auto"), + checked_func = function() + local dpi = G_reader_settings:readSetting("screen_dpi") + return dpi == nil + end, + callback = function() Screen:setDPI() end + }, + { + text = _("Small"), + checked_func = function() + local dpi = G_reader_settings:readSetting("screen_dpi") + return dpi and dpi <= 140 + end, + callback = function() Screen:setDPI(120) end + }, + { + text = _("Medium"), + checked_func = function() + local dpi = G_reader_settings:readSetting("screen_dpi") + return dpi and dpi > 140 and dpi <= 200 + end, + callback = function() Screen:setDPI(160) end + }, + { + text = _("Large"), + checked_func = function() + local dpi = G_reader_settings:readSetting("screen_dpi") + return dpi and dpi > 200 + end, + callback = function() Screen:setDPI(240) end + }, + } + } +end + return Screen diff --git a/frontend/ui/otamanager.lua b/frontend/ui/otamanager.lua index c49edce50..4949affd5 100644 --- a/frontend/ui/otamanager.lua +++ b/frontend/ui/otamanager.lua @@ -1,5 +1,9 @@ +local InfoMessage = require("ui/widget/infomessage") +local ConfirmBox = require("ui/widget/confirmbox") +local UIManager = require("ui/uimanager") local Device = require("ui/device") local DEBUG = require("dbg") +local _ = require("gettext") local OTAManager = { ota_server = "http://vislab.bjmu.edu.cn/apps/koreader/ota/", @@ -78,11 +82,46 @@ end function OTAManager:zsync() if self:_buildLocalPackage() == 0 then return os.execute(string.format( - "./zsync -i %s -o %s -u %s %s &", + "./zsync -i %s -o %s -u %s %s", self.installed_package, self.updated_package, self.ota_server, "ota/" .. self:getZsyncFilename() )) end end +function OTAManager:getOTAMenuTable() + return { + text = _("Check update"), + callback = function() + local ota_version = OTAManager:checkUpdate() + if ota_version == 0 then + UIManager:show(InfoMessage:new{ + text = _("Your koreader is updated."), + }) + elseif ota_version == nil then + UIManager:show(InfoMessage:new{ + text = _("OTA server is not available."), + }) + elseif ota_version then + UIManager:show(ConfirmBox:new{ + text = _("Do you want to update to version ")..ota_version.."?", + ok_callback = function() + UIManager:show(InfoMessage:new{ + text = _("Downloading may take several minutes..."), + timeout = 3, + }) + UIManager:scheduleIn(1, function() + if OTAManager:zsync() == 0 then + UIManager:show(InfoMessage:new{ + text = _("Koreader will be updated on next restart."), + }) + end + end) + end + }) + end + end + } +end + return OTAManager diff --git a/kobo/koreader.sh b/kobo/koreader.sh index 68f28b7ce..451f838b6 100755 --- a/kobo/koreader.sh +++ b/kobo/koreader.sh @@ -8,7 +8,6 @@ KOREADER_DIR=/mnt/onboard/.kobo/koreader NEWUPDATE=${KOREADER_DIR}/ota/koreader.updated.tar if [ -f $NEWUPDATE ]; then # TODO: any graphic indication for the updating progress? - logmsg "Updating koreader . . ." cd /mnt/onboard/.kobo && tar xf $NEWUPDATE && rm $NEWUPDATE fi diff --git a/koreader-base b/koreader-base index 9d54e91f8..7bd19dfee 160000 --- a/koreader-base +++ b/koreader-base @@ -1 +1 @@ -Subproject commit 9d54e91f82090ad8d2a5f00f9db94b38c0afa4b7 +Subproject commit 7bd19dfee79f608911224c8195a08fb33c594d54 diff --git a/plugins/evernote.koplugin/main.lua b/plugins/evernote.koplugin/main.lua index 629cd96dc..69a8aa6ba 100644 --- a/plugins/evernote.koplugin/main.lua +++ b/plugins/evernote.koplugin/main.lua @@ -89,7 +89,7 @@ function EvernoteExporter:addToMainMenu(tab_item_table) end) UIManager:show(InfoMessage:new{ - text = _("This may take several seconds..."), + text = _("Exporting may take several seconds..."), timeout = 1, }) end @@ -105,7 +105,7 @@ function EvernoteExporter:addToMainMenu(tab_item_table) end) UIManager:show(InfoMessage:new{ - text = _("This may take several minutes..."), + text = _("Exporting may take several minutes..."), timeout = 1, }) end