Initial commit
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
local _ = require("gettext")
|
||||
local WidgetContainer = require("ui/widget/container/widgetcontainer")
|
||||
local UIManager = require("ui/uimanager")
|
||||
local InfoMessage = require("ui/widget/infomessage")
|
||||
local NetworkMgr = require("ui/network/manager")
|
||||
local Settings = require("settings")
|
||||
local Upload = require("upload")
|
||||
local const = require("./const")
|
||||
|
||||
local kovi = WidgetContainer:extend({ name="kovi", is_doc_only=false })
|
||||
function kovi:init() self.ui.menu:registerToMainMenu(self); self.settings=Settings:new() end
|
||||
|
||||
function kovi:showMessage(text) UIManager:show(InfoMessage:new({text=_(text),timeout=4})) end
|
||||
function kovi:pair()
|
||||
self.settings:showSetup(function(url,code)
|
||||
NetworkMgr:runWhenOnline(function()
|
||||
local ok,response=Upload.pair(url,code,self.settings)
|
||||
if ok then self:showMessage("kovi paired successfully.") else self:showMessage("Pairing failed: "..tostring(response and response.error or "unknown error")) end
|
||||
end)
|
||||
end)
|
||||
end
|
||||
function kovi:sync(silent)
|
||||
local url=self.settings:getServerURL(); local token=self.settings:getToken()
|
||||
if url=="" or not token then if not silent then self:showMessage("Pair this reader with kovi first.") end; return end
|
||||
NetworkMgr:runWhenOnline(function()
|
||||
local ok,response=Upload.sync(url,token)
|
||||
if not silent then
|
||||
if ok then self:showMessage(response and response.message or "kovi sync complete.")
|
||||
else self:showMessage("Sync failed: "..tostring(response and response.error or "server error")) end
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
function kovi:testConnection()
|
||||
local url=self.settings:getServerURL()
|
||||
if url=="" then self:showMessage("Configure the kovi server URL first."); return end
|
||||
NetworkMgr:runWhenOnline(function()
|
||||
local ok,response=Upload.diagnose(url)
|
||||
if ok then
|
||||
self:showMessage("kovi connection OK"..(response and response.version and (" · v"..tostring(response.version)) or "."))
|
||||
else
|
||||
self:showMessage("Connection test failed: "..tostring(response and response.error or "unknown error"))
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
function kovi:onSuspend() if self.settings:getSyncOnSuspend() then self:sync(true) end end
|
||||
function kovi:onPowerOff() if self.settings:getSyncOnSuspend() then self:sync(true) end end
|
||||
function kovi:addToMainMenu(menu_items)
|
||||
menu_items.kovi={text=_("kovi"),sorting_hint="tools",sub_item_table={
|
||||
{text=_("Sync now"),callback=function() self:sync(false) end,separator=true},
|
||||
{text=_("Pair / change server"),callback=function() self:pair() end},
|
||||
{text=_("Test server connection"),callback=function() self:testConnection() end},
|
||||
{text=_("Sync on suspend"),checked_func=function() return self.settings:getSyncOnSuspend() end,callback=function() self.settings:toggleSyncOnSuspend() end},
|
||||
{text=_("About kovi"),callback=function() self:showMessage("kovi secure sync plugin · v"..const.VERSION) end},
|
||||
}}
|
||||
end
|
||||
return kovi
|
||||
Reference in New Issue
Block a user