alternative optimize

This commit is contained in:
kepler155c@gmail.com 2019-11-09 22:56:36 -07:00
parent 8a5d30a441
commit c9fd7efc26
1 changed files with 27 additions and 43 deletions

View File

@ -4,12 +4,6 @@ local Util = require('opus.util')
local function getConfig()
return Config.load('alternate', {
default = {
shell = 'sys/apps/shell.lua',
lua = 'sys/apps/Lua.lua',
files = 'sys/apps/Files.lua',
},
choices = {
shell = {
'sys/apps/shell.lua',
'rom/programs/shell',
@ -21,42 +15,32 @@ local function getConfig()
files = {
'sys/apps/Files.lua',
}
}
})
end
local Alt = { }
function Alt.get(key)
return getConfig().default[key]
return getConfig()[key][1]
end
function Alt.set(key, value)
Alt.addChoice(key, value)
local config = getConfig()
config.default[key] = value
Array.removeByValue(config[key], value)
table.insert(config[key], 1, value)
Config.update('alternate', config)
end
function Alt.remove(key, value)
local config = getConfig()
Array.removeByValue(config.choices[key], value)
if config.default[key] == value then
config.default[key] = config.choices[key][1]
end
Array.removeByValue(config[key], value)
Config.update('alternate', config)
end
function Alt.addChoice(key, value)
function Alt.add(key, value)
local config = getConfig()
if not config.choices[key] then
config.choices[key] = { }
end
if not Util.contains(config.choices[key], value) then
table.insert(config.choices[key], value)
if not Util.contains(config[key], value) then
table.insert(config[key], value)
Config.update('alternate', config)
end
end