mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
Merge pull request #753 from chrox/master
code refactoring in menu tables
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Submodule koreader-base updated: 9d54e91f82...7bd19dfee7
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user