From c140f5aa167229bb3b3bdb58c60c77d6711e1f62 Mon Sep 17 00:00:00 2001 From: chrox Date: Fri, 1 Aug 2014 17:36:42 +0800 Subject: [PATCH 1/4] remove miss-added logmsg in kobo startup script --- kobo/koreader.sh | 1 - 1 file changed, 1 deletion(-) 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 From a7fc4cccdec4608a75655de2f7c2c9473b018f75 Mon Sep 17 00:00:00 2001 From: chrox Date: Fri, 1 Aug 2014 21:59:59 +0800 Subject: [PATCH 2/4] refactoring: generate check update menu entry table in OTAManager --- frontend/apps/filemanager/filemanagermenu.lua | 21 +--------- frontend/apps/reader/modules/readermenu.lua | 21 +--------- frontend/ui/otamanager.lua | 41 ++++++++++++++++++- koreader-base | 2 +- 4 files changed, 43 insertions(+), 42 deletions(-) diff --git a/frontend/apps/filemanager/filemanagermenu.lua b/frontend/apps/filemanager/filemanagermenu.lua index f6e881541..b2c5adc17 100644 --- a/frontend/apps/filemanager/filemanagermenu.lua +++ b/frontend/apps/filemanager/filemanagermenu.lua @@ -138,26 +138,7 @@ function FileManagerMenu: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:genMenuEntry()) 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..c5e571808 100644 --- a/frontend/apps/reader/modules/readermenu.lua +++ b/frontend/apps/reader/modules/readermenu.lua @@ -138,26 +138,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:genMenuEntry()) table.insert(self.tab_item_table.info, { text = _("Version"), callback = function() diff --git a/frontend/ui/otamanager.lua b/frontend/ui/otamanager.lua index c49edce50..10a48769e 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:genMenuEntry() + 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/koreader-base b/koreader-base index 9d54e91f8..7bd19dfee 160000 --- a/koreader-base +++ b/koreader-base @@ -1 +1 @@ -Subproject commit 9d54e91f82090ad8d2a5f00f9db94b38c0afa4b7 +Subproject commit 7bd19dfee79f608911224c8195a08fb33c594d54 From 880e5499fb6ddf7fde7ea520048225c7fe13326e Mon Sep 17 00:00:00 2001 From: chrox Date: Fri, 1 Aug 2014 22:01:57 +0800 Subject: [PATCH 3/4] more informative notification --- plugins/evernote.koplugin/main.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 From 403b9f7ce6edb7b72511bdf288c753de684bf0ce Mon Sep 17 00:00:00 2001 From: chrox Date: Fri, 1 Aug 2014 22:23:08 +0800 Subject: [PATCH 4/4] refactoring: use getXxMenuTable to remove redundant code in menus --- frontend/apps/filemanager/filemanagermenu.lua | 41 +----------------- frontend/apps/reader/modules/readermenu.lua | 40 +---------------- frontend/ui/device/screen.lua | 43 ++++++++++++++++++- frontend/ui/otamanager.lua | 2 +- 4 files changed, 47 insertions(+), 79 deletions(-) diff --git a/frontend/apps/filemanager/filemanagermenu.lua b/frontend/apps/filemanager/filemanagermenu.lua index b2c5adc17..f36dc4dc8 100644 --- a/frontend/apps/filemanager/filemanagermenu.lua +++ b/frontend/apps/filemanager/filemanagermenu.lua @@ -97,48 +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, OTAManager:genMenuEntry()) + 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 c5e571808..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,7 +102,7 @@ function ReaderMenu:setUpdateItemTable() table.insert(self.tab_item_table.setting, Language:getLangMenuTable()) -- info tab - table.insert(self.tab_item_table.info, OTAManager:genMenuEntry()) + 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 10a48769e..4949affd5 100644 --- a/frontend/ui/otamanager.lua +++ b/frontend/ui/otamanager.lua @@ -89,7 +89,7 @@ function OTAManager:zsync() end end -function OTAManager:genMenuEntry() +function OTAManager:getOTAMenuTable() return { text = _("Check update"), callback = function()