update scripts to reflect latest api changes

This commit is contained in:
Evgeny
2021-08-31 13:24:26 +03:00
parent 54577f95d2
commit 6516a81f1f
2 changed files with 101 additions and 80 deletions

View File

@@ -32,7 +32,6 @@ local rate = 0
function on_alarm() function on_alarm()
date = os.date("%Y-%m-%d") date = os.date("%Y-%m-%d")
get_rates(date) get_rates(date)
ui:prepare_context_menu({{"share-alt","Поделиться"},{"copy","Копировать"},{"redo","Перезагрузить"}})
end end
function get_rates(date) function get_rates(date)
@@ -78,6 +77,16 @@ function on_click(idx)
end end
end end
function on_long_click(idx)
item_idx = idx
ui:show_context_menu({
{"share-alt","Поделиться"},
{"copy","Копировать"},
{"redo","Перезагрузить"}
})
end
function on_dialog_action(data) function on_dialog_action(data)
if data == -1 then if data == -1 then
return return
@@ -131,7 +140,7 @@ function on_dialog_action(data)
get_rates(date) get_rates(date)
end end
function on_context_menu_click(item_idx, menu_idx) function on_context_menu_click(menu_idx)
if menu_idx == 2 then if menu_idx == 2 then
system:copy_to_clipboard(rate) system:copy_to_clipboard(rate)
elseif menu_idx == 1 then elseif menu_idx == 1 then

View File

@@ -17,107 +17,119 @@ local style = {"Icons", "Names"}
--variables-- --variables--
local dialog_id = "" local dialog_id = ""
local item_idx = 0
function on_resume() function on_resume()
if next(aio:get_args()) == nil then if next(aio:get_args()) == nil then
set_default_args() set_default_args()
end end
ui:set_folding_flag(true) ui:set_folding_flag(true)
ui:prepare_context_menu({{"sliders-v-square","Widgets"},{"pencil-alt","Style"},{"info","Info"}})
local buttons,colors = get_buttons() local buttons,colors = get_buttons()
ui:show_buttons(buttons, colors) ui:show_buttons(buttons, colors)
end end
function on_click(idx) function on_click(idx)
local buttons,colors = get_buttons() local buttons,colors = get_buttons()
local checkbox_idx = get_checkbox_idx() local checkbox_idx = get_checkbox_idx()
local widget = widgets[checkbox_idx[idx]] local widget = widgets[checkbox_idx[idx]]
if aio:is_widget_added(widget) then if aio:is_widget_added(widget) then
aio:remove_widget(widget) aio:remove_widget(widget)
colors[idx] = "#909090" colors[idx] = "#909090"
else else
aio:add_widget(widget) aio:add_widget(widget)
colors[idx] = "#1976d2" colors[idx] = "#1976d2"
end end
ui:show_buttons(buttons, colors) ui:show_buttons(buttons, colors)
end
function on_long_click(idx)
item_idx = idx
ui:show_context_menu({
{"sliders-v-square", "Widgets"},
{"pencil-alt", "Style"},
{"info", "Info"}
})
end
function on_context_menu_click(menu_idx)
if menu_idx == 1 then
dialog_id = "widgets"
ui:show_checkbox_dialog("Select widgets", names, get_checkbox_idx())
elseif menu_idx == 2 then
dialog_id = "style"
ui:show_radio_dialog("Select style", style, get_radio_idx())
elseif menu_idx == 3 then
dialog_id = "info"
ui:show_dialog("Widget", names[get_checkbox_idx()[item_idx]])
end
end end
function on_dialog_action(data) function on_dialog_action(data)
if data == -1 then if data == -1 then
return return
end end
if dialog_id == "widgets" then
local radio_idx = get_radio_idx()
local args = data
table.insert(args, radio_idx)
aio:set_args(args)
elseif dialog_id == "style" then
local args = get_checkbox_idx()
table.insert(args, data)
aio:set_args(args)
end
on_resume()
end
function on_context_menu_click(item_idx, menu_idx) if dialog_id == "widgets" then
if menu_idx == 1 then local radio_idx = get_radio_idx()
dialog_id = "widgets" local args = data
ui:show_checkbox_dialog("Select widgets", names, get_checkbox_idx()) table.insert(args, radio_idx)
elseif menu_idx == 2 then aio:set_args(args)
dialog_id = "style" elseif dialog_id == "style" then
ui:show_radio_dialog("Select style", style, get_radio_idx()) local args = get_checkbox_idx()
elseif menu_idx == 3 then table.insert(args, data)
dialog_id = "info" aio:set_args(args)
ui:show_dialog("Widget",names[get_checkbox_idx()[item_idx]]) end
end
on_resume()
end end
--utilities-- --utilities--
function set_default_args() function set_default_args()
local args = {} local args = {}
for i = 1, #widgets do for i = 1, #widgets do
table.insert(args, i) table.insert(args, i)
end end
table.insert(args, 1) table.insert(args, 1)
aio:set_args(args) aio:set_args(args)
end end
function get_checkbox_idx() function get_checkbox_idx()
local tab = aio:get_args() local tab = aio:get_args()
table.remove(tab, #tab) table.remove(tab, #tab)
for i = 1, #tab do for i = 1, #tab do
tab[i] = tonumber(tab[i]) tab[i] = tonumber(tab[i])
end end
return tab return tab
end end
function get_radio_idx() function get_radio_idx()
local tab = aio:get_args() local tab = aio:get_args()
return tonumber(tab[#tab]) return tonumber(tab[#tab])
end end
function get_buttons() function get_buttons()
local buttons,colors = {},{} local buttons,colors = {},{}
local checkbox_idx = get_checkbox_idx() local checkbox_idx = get_checkbox_idx()
local radio_idx = get_radio_idx() local radio_idx = get_radio_idx()
for i = 1, #checkbox_idx do
if radio_idx == 1 then for i = 1, #checkbox_idx do
table.insert(buttons, icons[checkbox_idx[i]]) if radio_idx == 1 then
elseif radio_idx == 2 then table.insert(buttons, icons[checkbox_idx[i]])
table.insert(buttons, names[checkbox_idx[i]]) elseif radio_idx == 2 then
end table.insert(buttons, names[checkbox_idx[i]])
if aio:is_widget_added(widgets[checkbox_idx[i]]) then end
table.insert(colors, "#1976d2") if aio:is_widget_added(widgets[checkbox_idx[i]]) then
else table.insert(colors, "#1976d2")
table.insert(colors, "#909090") else
end table.insert(colors, "#909090")
end end
return buttons,colors end
return buttons,colors
end end