Merge pull request #753 from chrox/master

code refactoring in menu tables
pull/759/head
NiLuJe 10 years ago
commit dd64e6e12d

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

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

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

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

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

@ -1 +1 @@
Subproject commit 9d54e91f82090ad8d2a5f00f9db94b38c0afa4b7
Subproject commit 7bd19dfee79f608911224c8195a08fb33c594d54

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

Loading…
Cancel
Save