SwitchPlugin and BackgroundTaskPlugin with tests (#3137)

This commit is contained in:
Hzj_jie
2017-08-31 07:37:39 -07:00
committed by Frans de Jonge
parent 199b6aba51
commit 1ff46a67b4
5 changed files with 451 additions and 1 deletions

View File

@@ -0,0 +1,35 @@
--[[--
BackgroundTaskPlugin creates a plugin with a switch to enable or disable it and executes a
background task.
See spec/unit/background_task_plugin_spec.lua for the usage.
]]
local PluginShare = require("pluginshare")
local SwitchPlugin = require("ui/plugin/switch_plugin")
local BackgroundTaskPlugin = SwitchPlugin:extend()
function BackgroundTaskPlugin:_schedule(settings_id)
local enabled = function()
if not self.enabled then
return false
end
if settings_id ~= self.settings_id then
return false
end
return true
end
table.insert(PluginShare.backgroundJobs, {
when = self.when,
repeated = enabled,
executable = self.executable,
})
end
function BackgroundTaskPlugin:_start()
self:_schedule(self.settings_id)
end
return BackgroundTaskPlugin