summaryrefslogtreecommitdiff
path: root/lua/settings.lua
diff options
context:
space:
mode:
authorailurux <ailuruxx@gmail.com>2024-03-28 16:17:39 +1100
committerailurux <ailuruxx@gmail.com>2024-03-28 16:17:39 +1100
commitc8e67cbd80b53a4e889ce0485546042d5490918c (patch)
treef06314fef2bb9afaf04b924355b34f5277d69241 /lua/settings.lua
parentf1c8866b815a92aeda3133fd27051ce7c873cc57 (diff)
parent35a822fe602cdc9e3a3482df3913ea33af6fc8c2 (diff)
downloadtangara-fw-c8e67cbd80b53a4e889ce0485546042d5490918c.tar.gz
Merge branch 'main' into themes
Diffstat (limited to 'lua/settings.lua')
-rw-r--r--lua/settings.lua52
1 files changed, 52 insertions, 0 deletions
diff --git a/lua/settings.lua b/lua/settings.lua
index c9103de3..d19a6180 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 screen = require("screen")
+local usb = require("usb")
local function SettingsScreen(title)
local menu = widgets.MenuScreen {
@@ -277,6 +278,54 @@ local InputSettings = screen:new {
end
}
+local MassStorageSettings = screen:new {
+ createUi = function(self)
+ self.menu = SettingsScreen("USB Storage")
+ local version = require("version").samd()
+ if tonumber(version) < 2 then
+ self.menu.content:Label {
+ w = lvgl.PCT(100),
+ text = "Usb Mass Storage requires a SAMD21 firmware version >=2."
+ }
+ return
+ end
+
+ local enable_container = self.menu.content:Object {
+ flex = {
+ flex_direction = "row",
+ justify_content = "flex-start",
+ align_items = "content",
+ align_content = "flex-start",
+ },
+ w = lvgl.PCT(100),
+ h = lvgl.SIZE_CONTENT,
+ pad_bottom = 1,
+ }
+ enable_container:Label { text = "Enable", flex_grow = 1 }
+ local enable_sw = enable_container:Switch {}
+
+ local bind_switch = function()
+ if usb.msc_enabled:get() then
+ enable_sw:add_state(lvgl.STATE.CHECKED)
+ else
+ enable_sw:clear_state(lvgl.STATE.CHECKED)
+ end
+ end
+
+ enable_sw:onevent(lvgl.EVENT.VALUE_CHANGED, function()
+ usb.msc_enabled:set(enable_sw:enabled())
+ bind_switch()
+ end)
+
+ self.bindings = {
+ usb.msc_enabled:bind(bind_switch),
+ }
+ end,
+ canPop = function()
+ return not usb.msc_enabled:get()
+ end
+}
+
local DatabaseSettings = screen:new {
createUi = function(self)
self.menu = SettingsScreen("Database")
@@ -358,6 +407,9 @@ return screen:new {
submenu("Display", DisplaySettings)
submenu("Input Method", InputSettings)
+ section("USB")
+ submenu("Storage", MassStorageSettings)
+
section("System")
submenu("Database", DatabaseSettings)
submenu("Firmware", FirmwareSettings)