Merge pull request #766 from chrox/master

add OTA settings for server mirrors and channels
pull/768/head v2014.08.07-nightly
NiLuJe 10 years ago
commit ba52b9274f

@ -72,7 +72,6 @@ function FileManagerMenu:setUpdateItemTable()
self.ui:toggleHiddenFiles()
end
})
table.insert(self.tab_item_table.setting, {
text = _("Start with last opened file"),
checked_func = function() return G_reader_settings:readSetting("open_last") end,
@ -82,12 +81,16 @@ function FileManagerMenu:setUpdateItemTable()
G_reader_settings:saveSetting("open_last", not open_last)
end
})
if Device:hasFrontlight() then
ReaderFrontLight:addToMainMenu(self.tab_item_table)
end
table.insert(self.tab_item_table.setting, UIManager:getRefreshMenuTable())
table.insert(self.tab_item_table.setting, {
text = _("Screen settings"),
sub_item_table = {
Screen:getDPIMenuTable(),
UIManager:getRefreshMenuTable(),
},
})
table.insert(self.tab_item_table.setting, {
text = _("Night mode"),
checked_func = function() return G_reader_settings:readSetting("night_mode") end,
@ -97,12 +100,12 @@ function FileManagerMenu:setUpdateItemTable()
G_reader_settings:saveSetting("night_mode", not night_mode)
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:getOTAMenuTable())
if Device:isKindle() or Device:isKobo() then
table.insert(self.tab_item_table.info, OTAManager:getOTAMenuTable())
end
table.insert(self.tab_item_table.info, {
text = _("Version"),
callback = function()

@ -80,15 +80,15 @@ function ReaderMenu:setUpdateItemTable()
end
-- setting tab
-- FIXME: it's curious that if this 'Screen' menu is placed after the Language
-- menu submenu in 'Screen' won't be shown. Probably a bug in the touchmenu module.
table.insert(self.tab_item_table.setting, {
text = _("Show advanced options"),
checked_func = function() return G_reader_settings:readSetting("show_advanced") end,
callback = function()
local show_advanced = G_reader_settings:readSetting("show_advanced") or false
G_reader_settings:saveSetting("show_advanced", not show_advanced)
end
text = _("Screen settings"),
sub_item_table = {
Screen:getDPIMenuTable(),
UIManager:getRefreshMenuTable(),
},
})
table.insert(self.tab_item_table.setting, UIManager:getRefreshMenuTable())
table.insert(self.tab_item_table.setting, {
text = _("Night mode"),
checked_func = function() return G_reader_settings:readSetting("night_mode") end,
@ -98,11 +98,20 @@ function ReaderMenu:setUpdateItemTable()
G_reader_settings:saveSetting("night_mode", not night_mode)
end
})
table.insert(self.tab_item_table.setting, Screen:getDPIMenuTable())
table.insert(self.tab_item_table.setting, Language:getLangMenuTable())
table.insert(self.tab_item_table.setting, {
text = _("Show advanced options"),
checked_func = function() return G_reader_settings:readSetting("show_advanced") end,
callback = function()
local show_advanced = G_reader_settings:readSetting("show_advanced") or false
G_reader_settings:saveSetting("show_advanced", not show_advanced)
end
})
-- info tab
table.insert(self.tab_item_table.info, OTAManager:getOTAMenuTable())
if Device:isKindle() or Device:isKobo() then
table.insert(self.tab_item_table.info, OTAManager:getOTAMenuTable())
end
table.insert(self.tab_item_table.info, {
text = _("Version"),
callback = function()

@ -644,7 +644,9 @@ function ReaderPaging:onGotoPageRel(diff)
elseif self.zoom_mode:find("width") then
y_pan_off = self.visible_area.h * diff
elseif self.zoom_mode:find("height") then
x_pan_off = self.visible_area.w * diff
-- negative x panning if writing direction is right to left
local direction = self.ui.document.configurable.writing_direction
x_pan_off = self.visible_area.w * diff * (direction == 1 and -1 or 1)
else
-- must be fit content or page zoom mode
if self.visible_area.w == self.page_area.w then

@ -459,11 +459,17 @@ function ReaderView:recalculate()
self.state.page,
self.state.zoom,
self.state.rotation)
-- starts from left top of page_area
self.visible_area.x = self.page_area.x
self.visible_area.y = self.page_area.y
-- reset our size
self.visible_area:setSizeTo(self.dimen)
if self.ui.document.configurable.writing_direction == 0 then
-- starts from left top of page_area
self.visible_area.x = self.page_area.x
self.visible_area.y = self.page_area.y
else
-- start from right top of page_area
self.visible_area.x = self.page_area.x + self.page_area.w - self.visible_area.w
self.visible_area.y = self.page_area.y
end
-- and recalculate it according to page size
self.visible_area:offsetWithin(self.page_area, 0, 0)
-- clear dim area

@ -195,7 +195,6 @@ local KoptOptions = {
toggle = {S.LTR, S.RTL, S.TBRTL},
values = {0, 1, 2},
default_value = 0,
advanced = true,
},
{
name = "quality",

@ -284,7 +284,7 @@ function Screen:getDPIMenuTable()
callback = function() setDPI(240) end
},
{
text = _("Custom DPI") .. ": " .. custom() or 160,
text = _("Custom DPI") .. ": " .. (custom() or 160),
checked_func = function()
local dpi, custom = dpi(), custom()
return custom and dpi == custom

@ -6,8 +6,14 @@ local DEBUG = require("dbg")
local _ = require("gettext")
local OTAManager = {
ota_server = "http://vislab.bjmu.edu.cn/apps/koreader/ota/",
ota_channel = "nightly", -- or "stable"
ota_servers = {
"http://vislab.bjmu.edu.cn/apps/koreader/ota/",
"http://koreader.ak-team.com/",
"http://hal9k.ifsc.usp.br/koreader/",
},
ota_channels = {
"nightly",
},
zsync_template = "koreader-%s-latest-%s.zsync",
installed_package = "ota/koreader.installed.tar",
package_indexfile = "ota/package.index",
@ -24,13 +30,22 @@ function OTAManager:getOTAModel()
end
end
function OTAManager:getOTAServer()
return G_reader_settings:readSetting("ota_server") or self.ota_servers[1]
end
function OTAManager:setOTAServer(server)
DEBUG("Set OTA server:", server)
G_reader_settings:saveSetting("ota_server", server)
end
function OTAManager:getOTAChannel()
return self.ota_channel
return G_reader_settings:readSetting("ota_channel") or self.ota_channels[1]
end
function OTAManager:setOTAChannel(channel)
-- channel should be "nightly" or "stable"
self.ota_channel = channel
DEBUG("Set OTA channel:", channel)
G_reader_settings:saveSetting("ota_channel", channel)
end
function OTAManager:getZsyncFilename()
@ -42,7 +57,7 @@ function OTAManager:checkUpdate()
local ltn12 = require("ltn12")
local zsync_file = self:getZsyncFilename()
local ota_zsync_file = self.ota_server .. zsync_file
local ota_zsync_file = self:getOTAServer() .. zsync_file
local local_zsync_file = "ota/" .. zsync_file
-- download zsync file from OTA server
local r, c, h = http.request{
@ -84,43 +99,87 @@ function OTAManager:zsync()
return os.execute(string.format(
"./zsync -i %s -o %s -u %s %s",
self.installed_package, self.updated_package,
self.ota_server, "ota/" .. self:getZsyncFilename()
self:getOTAServer(), "ota/" .. self:getZsyncFilename()
))
end
end
function OTAManager:genServerList()
local servers = {}
for _, server in ipairs(self.ota_servers) do
local server_item = {
text = server,
checked_func = function() return self:getOTAServer() == server end,
callback = function() self:setOTAServer(server) end
}
table.insert(servers, server_item)
end
return servers
end
function OTAManager:genChannelList()
local channels = {}
for _, channel in ipairs(self.ota_channels) do
local channel_item = {
text = channel,
checked_func = function() return self:getOTAChannel() == channel end,
callback = function() self:setOTAChannel(channel) end
}
table.insert(channels, channel_item)
end
return channels
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()
text = _("OTA update"),
sub_item_table = {
{
text = _("Check update"),
callback = function()
local ota_version = OTAManager:checkUpdate()
if ota_version == 0 then
UIManager:show(InfoMessage:new{
text = _("Downloading may take several minutes..."),
timeout = 3,
text = _("Your koreader is updated."),
})
UIManager:scheduleIn(1, function()
if OTAManager:zsync() == 0 then
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 = _("Koreader will be updated on next restart."),
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
end
end
},
{
text = _("Settings"),
sub_item_table = {
{
text = _("OTA server"),
sub_item_table = self:genServerList()
},
{
text = _("OTA channel"),
sub_item_table = self:genChannelList()
},
}
},
}
}
end

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://github.com/koreader/koreader-base/issues\n"
"POT-Creation-Date: 2014-08-05 04:19+0000\n"
"POT-Creation-Date: 2014-08-06 12:31+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -100,7 +100,7 @@ msgid ""
"Change font"
msgstr ""
#: frontend/ui/otamanager.lua:94
#: frontend/ui/otamanager.lua:138
msgid ""
"Check update"
msgstr ""
@ -185,7 +185,7 @@ msgid ""
"Do you want to Turn on Wifi?"
msgstr ""
#: frontend/ui/otamanager.lua:107
#: frontend/ui/otamanager.lua:151
msgid ""
"Do you want to update to version "
msgstr ""
@ -195,12 +195,12 @@ msgid ""
"Document Language"
msgstr ""
#: frontend/apps/reader/modules/readermenu.lua:150
#: frontend/apps/reader/modules/readermenu.lua:159
msgid ""
"Document menu"
msgstr ""
#: frontend/ui/otamanager.lua:110
#: frontend/ui/otamanager.lua:154
msgid ""
"Downloading may take several minutes..."
msgstr ""
@ -283,7 +283,7 @@ msgid ""
"File does not exist"
msgstr ""
#: frontend/apps/filemanager/filemanagermenu.lua:147
#: frontend/apps/filemanager/filemanagermenu.lua:150
msgid ""
"File manager menu"
msgstr ""
@ -348,8 +348,8 @@ msgid ""
"Go to Page or Location"
msgstr ""
#: frontend/apps/filemanager/filemanagermenu.lua:115
#: frontend/apps/reader/modules/readermenu.lua:115
#: frontend/apps/filemanager/filemanagermenu.lua:118
#: frontend/apps/reader/modules/readermenu.lua:124
msgid ""
"Help"
msgstr ""
@ -405,7 +405,7 @@ msgid ""
"Koreader Notes"
msgstr ""
#: frontend/ui/otamanager.lua:116
#: frontend/ui/otamanager.lua:160
msgid ""
"Koreader will be updated on next restart."
msgstr ""
@ -476,7 +476,7 @@ msgid ""
"More"
msgstr ""
#: frontend/apps/filemanager/filemanagermenu.lua:92
#: frontend/apps/filemanager/filemanagermenu.lua:95
#: frontend/apps/reader/modules/readermenu.lua:93
msgid ""
"Night mode"
@ -504,11 +504,26 @@ msgid ""
"OK"
msgstr ""
#: frontend/ui/otamanager.lua:103
#: frontend/ui/otamanager.lua:177
msgid ""
"OTA channel"
msgstr ""
#: frontend/ui/otamanager.lua:173
msgid ""
"OTA server"
msgstr ""
#: frontend/ui/otamanager.lua:147
msgid ""
"OTA server is not available."
msgstr ""
#: frontend/ui/otamanager.lua:135
msgid ""
"OTA update"
msgstr ""
#: frontend/apps/reader/modules/readertypeset.lua:150
msgid ""
"Off"
@ -549,8 +564,8 @@ msgid ""
"Paste"
msgstr ""
#: frontend/apps/filemanager/filemanagermenu.lua:118
#: frontend/apps/reader/modules/readermenu.lua:118
#: frontend/apps/filemanager/filemanagermenu.lua:121
#: frontend/apps/reader/modules/readermenu.lua:127
msgid ""
"Please report bugs to \n"
"https://github.com/koreader/koreader/issues"
@ -611,6 +626,12 @@ msgid ""
"Screen Mode"
msgstr ""
#: frontend/apps/filemanager/filemanagermenu.lua:88
#: frontend/apps/reader/modules/readermenu.lua:86
msgid ""
"Screen settings"
msgstr ""
#: frontend/ui/data/strings.lua:8
msgid ""
"Scroll Mode"
@ -651,12 +672,17 @@ msgid ""
"Set render style"
msgstr ""
#: frontend/ui/otamanager.lua:170
msgid ""
"Settings"
msgstr ""
#: frontend/apps/reader/modules/readerhighlight.lua:322
msgid ""
"Share"
msgstr ""
#: frontend/apps/reader/modules/readermenu.lua:84
#: frontend/apps/reader/modules/readermenu.lua:103
msgid ""
"Show advanced options"
msgstr ""
@ -676,7 +702,7 @@ msgid ""
"Small"
msgstr ""
#: frontend/apps/filemanager/filemanagermenu.lua:77
#: frontend/apps/filemanager/filemanagermenu.lua:76
msgid ""
"Start with last opened file"
msgstr ""
@ -751,8 +777,8 @@ msgid ""
"Underscore"
msgstr ""
#: frontend/apps/filemanager/filemanagermenu.lua:107
#: frontend/apps/reader/modules/readermenu.lua:107
#: frontend/apps/filemanager/filemanagermenu.lua:110
#: frontend/apps/reader/modules/readermenu.lua:116
msgid ""
"Version"
msgstr ""
@ -787,7 +813,7 @@ msgid ""
"Yinxiang"
msgstr ""
#: frontend/ui/otamanager.lua:99
#: frontend/ui/otamanager.lua:143
msgid ""
"Your koreader is updated."
msgstr ""

Loading…
Cancel
Save