@ -1,3 +1,4 @@
local InfoMessage = require ( " ui/widget/infomessage " )
local ConfirmBox = require ( " ui/widget/confirmbox " )
local UIManager = require ( " ui/uimanager " )
local Device = require ( " device " )
@ -83,10 +84,72 @@ function NetworkMgr:getWifiStatus()
return false
end
function NetworkMgr : setHTTPProxy ( proxy )
local http = require ( " socket.http " )
http.PROXY = proxy
if proxy then
G_reader_settings : saveSetting ( " http_proxy " , proxy )
G_reader_settings : saveSetting ( " http_proxy_enabled " , true )
else
G_reader_settings : saveSetting ( " http_proxy_enabled " , false )
end
end
function NetworkMgr : getWifiMenuTable ( )
return {
text = _ ( " Wifi connection " ) ,
enabled_func = function ( ) return Device : isKindle ( ) or Device : isKobo ( ) end ,
checked_func = function ( ) return NetworkMgr : getWifiStatus ( ) end ,
callback = function ( )
if NetworkMgr : getWifiStatus ( ) then
NetworkMgr : promptWifiOff ( )
else
NetworkMgr : promptWifiOn ( )
end
end
}
end
function NetworkMgr : getProxyMenuTable ( )
local proxy_enabled = function ( )
return G_reader_settings : readSetting ( " http_proxy_enabled " )
end
local proxy = function ( )
return G_reader_settings : readSetting ( " http_proxy " )
end
return {
text_func = function ( )
return _ ( " HTTP proxy " ) .. ( proxy_enabled ( ) and proxy ( ) or " " )
end ,
checked_func = function ( ) return proxy_enabled ( ) end ,
callback = function ( )
if not proxy_enabled ( ) and proxy ( ) then
NetworkMgr : setHTTPProxy ( proxy ( ) )
elseif proxy_enabled ( ) then
NetworkMgr : setHTTPProxy ( nil )
end
if not proxy ( ) then
UIManager : show ( InfoMessage : new {
text = _ ( " Tips: \n long press on this menu entry to configure HTTP proxy. " ) ,
} )
end
end ,
hold_input = {
title = _ ( " input proxy address " ) ,
type = " text " ,
hint = proxy ( ) or " " ,
callback = function ( input )
if input ~= " " then
NetworkMgr : setHTTPProxy ( input )
end
end ,
}
}
end
-- set network proxy if global variable NETWORK_PROXY is defined
if NETWORK_PROXY then
local http = require ( " socket.http " )
http.PROXY = NETWORK_PROXY
NetworkMgr : setHTTPProxy ( NETWORK_PROXY )
end
return NetworkMgr