Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions main.lua
Original file line number Diff line number Diff line change
Expand Up @@ -457,6 +457,34 @@ end

function Syncthing:init()
self.ui.menu:registerToMainMenu(self)
self.autostart = G_reader_settings:isTrue("syncthing_autostart")
self:registerEvents()
end

---------------------------------------------------------------------------
-- Autostart on network connect / disconnect
---------------------------------------------------------------------------

function Syncthing:registerEvents()
if self.autostart and self:hasBinary() then
self.onNetworkConnected = self._onNetworkConnected
self.onNetworkDisconnecting = self._onNetworkDisconnecting
else
self.onNetworkConnected = nil
self.onNetworkDisconnecting = nil
end
end

function Syncthing:_onNetworkConnected()
logger.dbg("Syncthing: network connected, autostarting")
if not self:isRunning() then
self:start()
end
end

function Syncthing:_onNetworkDisconnecting()
logger.dbg("Syncthing: network disconnecting, stopping")
self:stop()
end

function Syncthing:addToMainMenu(menu_items)
Expand Down Expand Up @@ -488,6 +516,20 @@ function Syncthing:addToMainMenu(menu_items)
end
end,
},
-- Autostart toggle
{
text = _("Start automatically on WiFi"),
checked_func = function() return self.autostart end,
enabled_func = function() return self:hasBinary() end,
callback = function()
self.autostart = not self.autostart
G_reader_settings:saveSetting("syncthing_autostart", self.autostart)
self:registerEvents()
if self.autostart and NetworkMgr:isOnline() and not self:isRunning() then
self:startAndNotify()
end
end,
},
-- Connection info
{
text = _("Connection info"),
Expand Down