From a3eb2dd9dc2399ce9c22cd3b07f482f080976440 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Thu, 11 Jul 2024 15:11:28 +1000 Subject: WIP improve bluetooth api and settings screen --- lua/settings.lua | 105 +++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 83 insertions(+), 22 deletions(-) (limited to 'lua/settings.lua') diff --git a/lua/settings.lua b/lua/settings.lua index cb7f65e0..0691f2d1 100644 --- a/lua/settings.lua +++ b/lua/settings.lua @@ -30,10 +30,37 @@ local SettingsScreen = widgets.MenuScreen:new { end } +local BluetoothPairing = SettingsScreen:new { + title = "Nearby Devices", + createUi = function(self) + SettingsScreen.createUi(self) + + local devices = self.content:List { + w = lvgl.PCT(100), + h = lvgl.SIZE_CONTENT, + } + + self.bindings = self.bindings + { + bluetooth.discovered_devices:bind(function(devs) + devices:clean() + for _, dev in pairs(devs) do + devices:add_btn(nil, dev.name):onClicked(function() + bluetooth.paired_device:set(dev) + end) + end + end) + } + end, + onShown = function() bluetooth.discovering:set(true) end, + onHidden = function() bluetooth.discovering:set(false) end, +} + local BluetoothSettings = SettingsScreen:new { title = "Bluetooth", createUi = function(self) SettingsScreen.createUi(self) + + -- Enable/Disable switch local enable_container = self.content:Object { flex = { flex_direction = "row", @@ -52,11 +79,43 @@ local BluetoothSettings = SettingsScreen:new { bluetooth.enabled:set(enabled) end) - theme.set_style(self.content:Label { - text = "Paired Device", - pad_bottom = 1, - }, "settings_title") + self.bindings = self.bindings + { + bluetooth.enabled:bind(function(en) + if en then + enable_sw:add_state(lvgl.STATE.CHECKED) + else + enable_sw:clear_state(lvgl.STATE.CHECKED) + end + end), + } + + -- Connection status + -- This is presented as a label on the field showing the currently paired + -- device. + + local paired_label = + self.content:Label { + text = "", + pad_bottom = 1, + } + theme.set_style(paired_label, "settings_title") + + self.bindings = self.bindings + { + bluetooth.connected:bind(function(conn) + if conn then + paired_label:set { text = "Connected to:" } + else + paired_label:set { text = "Paired with:" } + end + end), + bluetooth.connecting:bind(function(conn) + if conn then + paired_label:set { text = "Connecting to:" } + end + end), + } + -- The name of the currently paired device. local paired_container = self.content:Object { flex = { flex_direction = "row", @@ -78,24 +137,7 @@ local BluetoothSettings = SettingsScreen:new { bluetooth.paired_device:set() end) - theme.set_style(self.content:Label { - text = "Nearby Devices", - pad_bottom = 1, - }, "settings_title") - - local devices = self.content:List { - w = lvgl.PCT(100), - h = lvgl.SIZE_CONTENT, - } - self.bindings = self.bindings + { - bluetooth.enabled:bind(function(en) - if en then - enable_sw:add_state(lvgl.STATE.CHECKED) - else - enable_sw:clear_state(lvgl.STATE.CHECKED) - end - end), bluetooth.paired_device:bind(function(device) if device then paired_device:set { text = device.name } @@ -105,7 +147,20 @@ local BluetoothSettings = SettingsScreen:new { clear_paired:add_flag(lvgl.FLAG.HIDDEN) end end), - bluetooth.devices:bind(function(devs) + } + + theme.set_style(self.content:Label { + text = "Known Devices", + pad_bottom = 1, + }, "settings_title") + + local devices = self.content:List { + w = lvgl.PCT(100), + h = lvgl.SIZE_CONTENT, + } + + self.bindings = self.bindings + { + bluetooth.known_devices:bind(function(devs) devices:clean() for _, dev in pairs(devs) do devices:add_btn(nil, dev.name):onClicked(function() @@ -114,6 +169,12 @@ local BluetoothSettings = SettingsScreen:new { end end) } + + local pair_new = self.content:Button {} + pair_new:Label { text = "Pair new device" } + pair_new:onClicked(function() + backstack.push(BluetoothPairing:new()) + end) end } -- cgit v1.2.3 From f78de39a750d58bfe883a789aa6cc4b0a5d9b9e7 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Fri, 12 Jul 2024 14:40:54 +1000 Subject: Give Bluetooth settings a bit of a refresh It's now a bit more responsive to stuff happening, gives you more information, and remembers your previously paired devices for faster switching between them. --- lua/settings.lua | 46 +++++++++++++++++++++++++++++++++------------- 1 file changed, 33 insertions(+), 13 deletions(-) (limited to 'lua/settings.lua') diff --git a/lua/settings.lua b/lua/settings.lua index 0691f2d1..3751a12a 100644 --- a/lua/settings.lua +++ b/lua/settings.lua @@ -46,6 +46,7 @@ local BluetoothPairing = SettingsScreen:new { for _, dev in pairs(devs) do devices:add_btn(nil, dev.name):onClicked(function() bluetooth.paired_device:set(dev) + backstack.pop() end) end end) @@ -101,16 +102,15 @@ local BluetoothSettings = SettingsScreen:new { theme.set_style(paired_label, "settings_title") self.bindings = self.bindings + { - bluetooth.connected:bind(function(conn) - if conn then - paired_label:set { text = "Connected to:" } - else - paired_label:set { text = "Paired with:" } - end - end), bluetooth.connecting:bind(function(conn) if conn then paired_label:set { text = "Connecting to:" } + else + if bluetooth.connected:get() then + paired_label:set { text = "Connected to:" } + else + paired_label:set { text = "Paired with:" } + end end end), } @@ -159,22 +159,42 @@ local BluetoothSettings = SettingsScreen:new { h = lvgl.SIZE_CONTENT, } + -- 'Pair new device' button that goes to the discovery screen. + + local button_container = self.content:Object { + w = lvgl.PCT(100), + h = lvgl.SIZE_CONTENT, + flex = { + flex_direction = "row", + justify_content = "center", + align_items = "space-evenly", + align_content = "center", + }, + pad_top = 4, + pad_column = 4, + } + button_container:add_style(styles.list_item) + + local pair_new = button_container:Button {} + pair_new:Label { text = "Pair new device" } + pair_new:onClicked(function() + backstack.push(BluetoothPairing:new()) + end) + + self.bindings = self.bindings + { bluetooth.known_devices:bind(function(devs) + local group = lvgl.group.get_default() + group.remove_obj(pair_new) devices:clean() for _, dev in pairs(devs) do devices:add_btn(nil, dev.name):onClicked(function() bluetooth.paired_device:set(dev) end) end + group:add_obj(pair_new) end) } - - local pair_new = self.content:Button {} - pair_new:Label { text = "Pair new device" } - pair_new:onClicked(function() - backstack.push(BluetoothPairing:new()) - end) end } -- cgit v1.2.3 From 374bc5e734c230a1e9220d126eb401b478dcd571 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Wed, 17 Jul 2024 13:38:19 +1000 Subject: Add a screen for FCC and CE regulatory nonsense --- lua/settings.lua | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 103 insertions(+), 1 deletion(-) (limited to 'lua/settings.lua') diff --git a/lua/settings.lua b/lua/settings.lua index 3751a12a..761f6ff4 100644 --- a/lua/settings.lua +++ b/lua/settings.lua @@ -9,6 +9,7 @@ local bluetooth = require("bluetooth") local theme = require("theme") local database = require("database") local usb = require("usb") +local font = require("font") local SettingsScreen = widgets.MenuScreen:new { show_back = true, @@ -551,7 +552,107 @@ local LicensesScreen = SettingsScreen:new { title = "Licenses", createUi = function(self) SettingsScreen.createUi(self) - self.root = require("licenses")(self) + require("licenses")(self) + end +} + +local FccStatementScreen = SettingsScreen:new { + title = "FCC Statement", + createUi = function(self) + SettingsScreen.createUi(self) + + local text_part = function(text) + self.content:Label { + w = lvgl.PCT(100), + h = lvgl.SIZE_CONTENT, + text = text, + text_font = font.fusion_10, + long_mode = lvgl.LABEL.LONG_WRAP, + } + end + + text_part( + "This device complies with part 15 of the FCC Rules. Operation is subject to the following two conditions:") + text_part("(1) This device may not cause harmful interference, and") + text_part( + "(2) this device must accept any interference received, including interference that may cause undesired operation.") + + local scroller = self.content:Object { w = 1, h = 1 } + scroller:onevent(lvgl.EVENT.FOCUSED, function() + scroller:scroll_to_view(1); + end) + lvgl.group.get_default():add_obj(scroller) + end +} + +local RegulatoryScreen = SettingsScreen:new { + title = "Regulatory", + createUi = function(self) + SettingsScreen.createUi(self) + local version = require("version") + + local small_row = function(left, right) + local container = self.content:Object { + flex = { + flex_direction = "row", + justify_content = "flex-start", + align_items = "flex-start", + align_content = "flex-start" + }, + w = lvgl.PCT(100), + h = lvgl.SIZE_CONTENT + } + container:add_style(styles.list_item) + container:Label { + text = left, + flex_grow = 1, + text_font = font.fusion_10, + } + container:Label { + text = right, + text_font = font.fusion_10, + } + end + small_row("Manufacturer", "cool tech zone") + small_row("Product model", "CTZ-1") + small_row("FCC ID", "2BG33-CTZ1") + + local button_container = self.content:Object { + w = lvgl.PCT(100), + h = lvgl.SIZE_CONTENT, + flex = { + flex_direction = "row", + justify_content = "center", + align_items = "space-evenly", + align_content = "center", + }, + pad_top = 4, + pad_column = 4, + } + button_container:add_style(styles.list_item) + + local button = button_container:Button {} + button:Label { text = "FCC Statement" } + button:onClicked(function() + backstack.push(FccStatementScreen:new()) + end) + + local logo_container = self.content:Object { + w = lvgl.PCT(100), + h = lvgl.SIZE_CONTENT, + flex = { + flex_direction = "row", + justify_content = "center", + align_items = "center", + align_content = "center", + }, + pad_top = 4, + pad_column = 4, + } + button_container:add_style(styles.list_item) + + logo_container:Image { src = "//lua/img/ce.png" } + logo_container:Image { src = "//lua/img/weee.png" } end } @@ -597,5 +698,6 @@ return widgets.MenuScreen:new { submenu("Database", DatabaseSettings) submenu("Firmware", FirmwareSettings) submenu("Licenses", LicensesScreen) + submenu("Regulatory", RegulatoryScreen) end } -- cgit v1.2.3 From 7012e64a14841fb018289529d08e5542e33f2151 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Wed, 17 Jul 2024 14:13:03 +1000 Subject: Fix an error in the scroll sensitivity UI --- lua/settings.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lua/settings.lua') diff --git a/lua/settings.lua b/lua/settings.lua index 761f6ff4..49a826af 100644 --- a/lua/settings.lua +++ b/lua/settings.lua @@ -344,7 +344,7 @@ local InputSettings = SettingsScreen:new { controls.scheme:set(scheme) end) - theme.set_style(self.menu.content:Label { + theme.set_style(self.content:Label { text = "Scroll Sensitivity", }, "settings_title") -- cgit v1.2.3 From 0cc75366848e9205ac88884afcc128925024ccec Mon Sep 17 00:00:00 2001 From: jacqueline Date: Wed, 24 Jul 2024 15:29:45 +1000 Subject: Add a settings screen with power+battery info Mostly for debugging, but also u can toggle fast charging off and on now --- lua/settings.lua | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) (limited to 'lua/settings.lua') diff --git a/lua/settings.lua b/lua/settings.lua index 49a826af..79572ee9 100644 --- a/lua/settings.lua +++ b/lua/settings.lua @@ -485,6 +485,59 @@ local DatabaseSettings = SettingsScreen:new { end } +local PowerSettings = SettingsScreen:new { + title = "Power", + createUi = function(self) + SettingsScreen.createUi(self) + local power = require("power") + + local charge_pct = widgets.Row(self.content, "Charge").right + local charge_volts = widgets.Row(self.content, "Voltage").right + local charge_state = widgets.Row(self.content, "Status").right + + self.bindings = self.bindings + { + power.battery_pct:bind(function(pct) + charge_pct:set { text = string.format("%d%%", pct) } + end), + power.battery_millivolts:bind(function(mv) + charge_volts:set { text = string.format("%.2fV", mv / 1000) } + end), + power.charge_state:bind(function(state) + charge_state:set { text = state } + end), + } + + local fast_charge_container = self.content:Object { + flex = { + flex_direction = "row", + justify_content = "flex-start", + align_items = "center", + align_content = "flex-start", + }, + w = lvgl.PCT(100), + h = lvgl.SIZE_CONTENT, + pad_bottom = 4, + } + fast_charge_container:add_style(styles.list_item) + fast_charge_container:Label { text = "Fast Charging", flex_grow = 1 } + local fast_charge_sw = fast_charge_container:Switch {} + + fast_charge_sw:onevent(lvgl.EVENT.VALUE_CHANGED, function() + power.fast_charge:set(fast_charge_sw:enabled()) + end) + + self.bindings = self.bindings + { + power.fast_charge:bind(function(en) + if en then + fast_charge_sw:add_state(lvgl.STATE.CHECKED) + else + fast_charge_sw:clear_state(lvgl.STATE.CHECKED) + end + end), + } + end +} + local SamdConfirmation = SettingsScreen:new { title = "Are you sure?", createUi = function(self) @@ -696,6 +749,9 @@ return widgets.MenuScreen:new { section("System") submenu("Database", DatabaseSettings) + submenu("Power", PowerSettings) + + section("About") submenu("Firmware", FirmwareSettings) submenu("Licenses", LicensesScreen) submenu("Regulatory", RegulatoryScreen) -- cgit v1.2.3 From d719f9c5017ad8006c21b6d546a5d70e846e9502 Mon Sep 17 00:00:00 2001 From: ailurux Date: Mon, 12 Aug 2024 03:19:03 +0000 Subject: daniel/theme-setting (#87) - Themes can be loaded from disk and built-in - Themes can be selected in a new themes menu of the settings screen - Some touch-ups to existing themes - The saved theme is persisted in nvs Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/87 Reviewed-by: cooljqln Co-authored-by: ailurux Co-committed-by: ailurux --- lua/settings.lua | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) (limited to 'lua/settings.lua') diff --git a/lua/settings.lua b/lua/settings.lua index 79572ee9..3033b36e 100644 --- a/lua/settings.lua +++ b/lua/settings.lua @@ -7,9 +7,11 @@ local display = require("display") local controls = require("controls") local bluetooth = require("bluetooth") local theme = require("theme") +local filesystem = require("filesystem") local database = require("database") local usb = require("usb") local font = require("font") +local main_menu = require("main_menu") local SettingsScreen = widgets.MenuScreen:new { show_back = true, @@ -301,6 +303,64 @@ local DisplaySettings = SettingsScreen:new { end } +local ThemeSettings = SettingsScreen:new { + title = "Theme", + createUi = function(self) + SettingsScreen.createUi(self) + + theme.set_style(self.content:Label { + text = "Theme", + }, "settings_title") + + local themeOptions = {} + themeOptions["Dark"] = "/lua/theme_dark.lua" + themeOptions["Light"] = "/lua/theme_light.lua" + + -- Parse theme directory for more themes + local theme_dir_iter = filesystem.iterator("/.themes/") + for dir in theme_dir_iter do + local theme_name = tostring(dir):match("(.+).lua$") + themeOptions[theme_name] = "/sdcard/.themes/" .. theme_name .. ".lua" + end + + local saved_theme = theme.theme_filename(); + local saved_theme_name = saved_theme:match(".+/(.*).lua$") + + local options = "" + local idx = 0 + local selected_idx = -1 + for i, v in pairs(themeOptions) do + if (saved_theme == v) then + selected_idx = idx + end + if idx > 0 then + options = options .. "\n" + end + options = options .. i + idx = idx + 1 + end + + if (selected_idx == -1) then + options = options .. "\n" .. saved_theme_name + selected_idx = idx + end + + local theme_chooser = self.content:Dropdown { + options = options, + } + theme_chooser:set({selected = selected_idx}) + + theme_chooser:onevent(lvgl.EVENT.VALUE_CHANGED, function() + local option = theme_chooser:get('selected_str') + local selectedTheme = themeOptions[option] + if (selectedTheme) then + theme.load_theme(tostring(selectedTheme)) + backstack.reset(main_menu:new()) + end + end) + end +} + local InputSettings = SettingsScreen:new { title = "Input Method", createUi = function(self) @@ -742,6 +802,7 @@ return widgets.MenuScreen:new { section("Interface") submenu("Display", DisplaySettings) + submenu("Theme", ThemeSettings) submenu("Input Method", InputSettings) section("USB") -- cgit v1.2.3 From 0662bb037b94ffc50ee7ce313c348cbe6b7f6e4c Mon Sep 17 00:00:00 2001 From: ailurux Date: Thu, 15 Aug 2024 16:14:18 +1000 Subject: Some UI/themes tweaks --- lua/settings.lua | 3 --- 1 file changed, 3 deletions(-) (limited to 'lua/settings.lua') diff --git a/lua/settings.lua b/lua/settings.lua index 3033b36e..ff8a6e7f 100644 --- a/lua/settings.lua +++ b/lua/settings.lua @@ -227,7 +227,6 @@ local HeadphonesSettings = SettingsScreen:new { local balance = self.content:Slider { w = lvgl.PCT(100), - h = 5, range = { min = -100, max = 100 }, value = 0, } @@ -287,7 +286,6 @@ local DisplaySettings = SettingsScreen:new { local brightness = self.content:Slider { w = lvgl.PCT(100), - h = 5, range = { min = 0, max = 100 }, value = display.brightness:get(), } @@ -411,7 +409,6 @@ local InputSettings = SettingsScreen:new { local slider_scale = 4; -- Power steering local sensitivity = self.content:Slider { w = lvgl.PCT(90), - h = 5, range = { min = 0, max = 255 / slider_scale }, value = controls.scroll_sensitivity:get() / slider_scale, } -- cgit v1.2.3 From 3ed3f1dfeb7f83630f0e1d0633eaa5fbda9d37c7 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Fri, 16 Aug 2024 11:42:32 +1000 Subject: Add cool skeumorphic embossing --- lua/settings.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'lua/settings.lua') diff --git a/lua/settings.lua b/lua/settings.lua index ff8a6e7f..3e0817e4 100644 --- a/lua/settings.lua +++ b/lua/settings.lua @@ -496,11 +496,12 @@ local DatabaseSettings = SettingsScreen:new { flex = { flex_direction = "row", justify_content = "flex-start", - align_items = "flex-start", + align_items = "center", align_content = "flex-start", }, w = lvgl.PCT(100), h = lvgl.SIZE_CONTENT, + pad_bottom = 4, } auto_update_container:add_style(styles.list_item) auto_update_container:Label { text = "Auto update", flex_grow = 1 } -- cgit v1.2.3 From 91eaed4b37c7cda29103d3478df3e2c6356f8396 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Thu, 29 Aug 2024 15:52:34 +1000 Subject: use snake_case consistently in lua function names --- lua/settings.lua | 70 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 35 insertions(+), 35 deletions(-) (limited to 'lua/settings.lua') diff --git a/lua/settings.lua b/lua/settings.lua index 3e0817e4..31fb5945 100644 --- a/lua/settings.lua +++ b/lua/settings.lua @@ -15,8 +15,8 @@ local main_menu = require("main_menu") local SettingsScreen = widgets.MenuScreen:new { show_back = true, - createUi = function(self) - widgets.MenuScreen.createUi(self) + create_ui = function(self) + widgets.MenuScreen.create_ui(self) self.content = self.root:Object { flex = { flex_direction = "column", @@ -35,8 +35,8 @@ local SettingsScreen = widgets.MenuScreen:new { local BluetoothPairing = SettingsScreen:new { title = "Nearby Devices", - createUi = function(self) - SettingsScreen.createUi(self) + create_ui = function(self) + SettingsScreen.create_ui(self) local devices = self.content:List { w = lvgl.PCT(100), @@ -55,14 +55,14 @@ local BluetoothPairing = SettingsScreen:new { end) } end, - onShown = function() bluetooth.discovering:set(true) end, - onHidden = function() bluetooth.discovering:set(false) end, + on_show = function() bluetooth.discovering:set(true) end, + on_hide = function() bluetooth.discovering:set(false) end, } local BluetoothSettings = SettingsScreen:new { title = "Bluetooth", - createUi = function(self) - SettingsScreen.createUi(self) + create_ui = function(self) + SettingsScreen.create_ui(self) -- Enable/Disable switch local enable_container = self.content:Object { @@ -203,8 +203,8 @@ local BluetoothSettings = SettingsScreen:new { local HeadphonesSettings = SettingsScreen:new { title = "Headphones", - createUi = function(self) - SettingsScreen.createUi(self) + create_ui = function(self) + SettingsScreen.create_ui(self) theme.set_style(self.content:Label { text = "Maxiumum volume limit", @@ -266,8 +266,8 @@ local HeadphonesSettings = SettingsScreen:new { local DisplaySettings = SettingsScreen:new { title = "Display", - createUi = function(self) - SettingsScreen.createUi(self) + create_ui = function(self) + SettingsScreen.create_ui(self) local brightness_title = self.content:Object { flex = { @@ -303,8 +303,8 @@ local DisplaySettings = SettingsScreen:new { local ThemeSettings = SettingsScreen:new { title = "Theme", - createUi = function(self) - SettingsScreen.createUi(self) + create_ui = function(self) + SettingsScreen.create_ui(self) theme.set_style(self.content:Label { text = "Theme", @@ -361,8 +361,8 @@ local ThemeSettings = SettingsScreen:new { local InputSettings = SettingsScreen:new { title = "Input Method", - createUi = function(self) - SettingsScreen.createUi(self) + create_ui = function(self) + SettingsScreen.create_ui(self) theme.set_style(self.content:Label { text = "Control scheme", @@ -420,8 +420,8 @@ local InputSettings = SettingsScreen:new { local MassStorageSettings = SettingsScreen:new { title = "USB Storage", - createUi = function(self) - SettingsScreen.createUi(self) + create_ui = function(self) + SettingsScreen.create_ui(self) local version = require("version").samd() if tonumber(version) < 3 then @@ -478,15 +478,15 @@ local MassStorageSettings = SettingsScreen:new { end) } end, - canPop = function() + can_pop = function() return not usb.msc_enabled:get() end } local DatabaseSettings = SettingsScreen:new { title = "Database", - createUi = function(self) - SettingsScreen.createUi(self) + create_ui = function(self) + SettingsScreen.create_ui(self) local db = require("database") widgets.Row(self.content, "Schema version", db.version()) @@ -545,8 +545,8 @@ local DatabaseSettings = SettingsScreen:new { local PowerSettings = SettingsScreen:new { title = "Power", - createUi = function(self) - SettingsScreen.createUi(self) + create_ui = function(self) + SettingsScreen.create_ui(self) local power = require("power") local charge_pct = widgets.Row(self.content, "Charge").right @@ -598,8 +598,8 @@ local PowerSettings = SettingsScreen:new { local SamdConfirmation = SettingsScreen:new { title = "Are you sure?", - createUi = function(self) - SettingsScreen.createUi(self) + create_ui = function(self) + SettingsScreen.create_ui(self) self.content:Label { w = lvgl.PCT(100), text = "After selecting 'flash', copy the new UF2 file onto the USB drive that appears. The screen will be blank until the update is finished.", @@ -630,8 +630,8 @@ local SamdConfirmation = SettingsScreen:new { local FirmwareSettings = SettingsScreen:new { title = "Firmware", - createUi = function(self) - SettingsScreen.createUi(self) + create_ui = function(self) + SettingsScreen.create_ui(self) local version = require("version") widgets.Row(self.content, "ESP32", version.esp()) widgets.Row(self.content, "SAMD21", version.samd()) @@ -661,16 +661,16 @@ local FirmwareSettings = SettingsScreen:new { local LicensesScreen = SettingsScreen:new { title = "Licenses", - createUi = function(self) - SettingsScreen.createUi(self) + create_ui = function(self) + SettingsScreen.create_ui(self) require("licenses")(self) end } local FccStatementScreen = SettingsScreen:new { title = "FCC Statement", - createUi = function(self) - SettingsScreen.createUi(self) + create_ui = function(self) + SettingsScreen.create_ui(self) local text_part = function(text) self.content:Label { @@ -698,8 +698,8 @@ local FccStatementScreen = SettingsScreen:new { local RegulatoryScreen = SettingsScreen:new { title = "Regulatory", - createUi = function(self) - SettingsScreen.createUi(self) + create_ui = function(self) + SettingsScreen.create_ui(self) local version = require("version") local small_row = function(left, right) @@ -770,8 +770,8 @@ local RegulatoryScreen = SettingsScreen:new { return widgets.MenuScreen:new { show_back = true, title = "Settings", - createUi = function(self) - widgets.MenuScreen.createUi(self) + create_ui = function(self) + widgets.MenuScreen.create_ui(self) local list = self.root:List { w = lvgl.PCT(100), h = lvgl.PCT(100), -- cgit v1.2.3 From 20d5de38cc3b0c236e68b409ab1870dbb3812174 Mon Sep 17 00:00:00 2001 From: ailurux Date: Thu, 29 Aug 2024 16:08:11 +1000 Subject: Style regulatory icons so they are visible with the light theme --- lua/settings.lua | 1 + 1 file changed, 1 insertion(+) (limited to 'lua/settings.lua') diff --git a/lua/settings.lua b/lua/settings.lua index 31fb5945..934d32a2 100644 --- a/lua/settings.lua +++ b/lua/settings.lua @@ -760,6 +760,7 @@ local RegulatoryScreen = SettingsScreen:new { pad_top = 4, pad_column = 4, } + theme.set_style(logo_container, "regulatory_icons") button_container:add_style(styles.list_item) logo_container:Image { src = "//lua/img/ce.png" } -- cgit v1.2.3 From 45937ac6486a6258bd48359db93877f2633336d9 Mon Sep 17 00:00:00 2001 From: ailurux Date: Mon, 9 Sep 2024 00:24:08 +0000 Subject: High contrast theme + Icon Improvements (#100) Updated settings icon, rounded the circular play/pause icons, and addition of a new high contrast theme. Would be good to get feedback on the high contrast theme at this stage, as my intention is to use it as the basis for other 2-colour themes. One issue I'm aware of is the charge indicator when recoloured to black is not very legible on the black battery icon. I am planning on adding an additonal outline image that can be recoloured to the background colour to make it stand out more. Happy to fix that in a later PR or I can add it now but it will take a bit of work. Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/100 Co-authored-by: ailurux Co-committed-by: ailurux --- lua/settings.lua | 1 + 1 file changed, 1 insertion(+) (limited to 'lua/settings.lua') diff --git a/lua/settings.lua b/lua/settings.lua index 934d32a2..9b77274d 100644 --- a/lua/settings.lua +++ b/lua/settings.lua @@ -313,6 +313,7 @@ local ThemeSettings = SettingsScreen:new { local themeOptions = {} themeOptions["Dark"] = "/lua/theme_dark.lua" themeOptions["Light"] = "/lua/theme_light.lua" + themeOptions["High Contrast"] = "/lua/theme_hicon.lua" -- Parse theme directory for more themes local theme_dir_iter = filesystem.iterator("/.themes/") -- cgit v1.2.3