diff options
| author | jacqueline <me@jacqueline.id.au> | 2024-07-12 14:40:54 +1000 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2024-07-12 14:40:54 +1000 |
| commit | f78de39a750d58bfe883a789aa6cc4b0a5d9b9e7 (patch) | |
| tree | bd7c20afd43745a0648aa36b83f8414f0fe5ba42 /lua/settings.lua | |
| parent | a3eb2dd9dc2399ce9c22cd3b07f482f080976440 (diff) | |
| download | tangara-fw-f78de39a750d58bfe883a789aa6cc4b0a5d9b9e7.tar.gz | |
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.
Diffstat (limited to 'lua/settings.lua')
| -rw-r--r-- | lua/settings.lua | 46 |
1 files changed, 33 insertions, 13 deletions
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 } |
