From dadac304dd930ddf4c5aebcc069c5d9f881b2b60 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Thu, 21 Mar 2024 11:51:48 +1100 Subject: Add very basic usb msc ui --- lua/settings.lua | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) (limited to 'lua/settings.lua') diff --git a/lua/settings.lua b/lua/settings.lua index 9d9ccf2d..e9e9d370 100644 --- a/lua/settings.lua +++ b/lua/settings.lua @@ -275,6 +275,53 @@ 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 usb = require("usb") + 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 = true +} + local DatabaseSettings = screen:new { createUi = function(self) self.menu = SettingsScreen("Database") @@ -352,6 +399,9 @@ return screen:new { submenu("Display", DisplaySettings) submenu("Input Method", InputSettings) + section("USB") + submenu("Storage", MassStorageSettings) + section("System") submenu("Database", DatabaseSettings) submenu("Firmware", FirmwareSettings) -- cgit v1.2.3 From cddfc2fbf77fbc5b6e6484a86b119b771bc480af Mon Sep 17 00:00:00 2001 From: jacqueline Date: Thu, 21 Mar 2024 13:02:00 +1100 Subject: Dont allow quitting the msc screen when msc is enabled --- lua/settings.lua | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'lua/settings.lua') diff --git a/lua/settings.lua b/lua/settings.lua index e9e9d370..fe36fe02 100644 --- a/lua/settings.lua +++ b/lua/settings.lua @@ -8,6 +8,7 @@ local controls = require("controls") local bluetooth = require("bluetooth") local database = require("database") local screen = require("screen") +local usb = require("usb") local function SettingsScreen(title) local menu = widgets.MenuScreen { @@ -301,7 +302,6 @@ local MassStorageSettings = screen:new { enable_container:Label { text = "Enable", flex_grow = 1 } local enable_sw = enable_container:Switch {} - local usb = require("usb") local bind_switch = function() if usb.msc_enabled:get() then enable_sw:add_state(lvgl.STATE.CHECKED) @@ -319,7 +319,9 @@ local MassStorageSettings = screen:new { usb.msc_enabled:bind(bind_switch), } end, - canPop = true + canPop = function() + return not usb.msc_enabled:get() + end } local DatabaseSettings = screen:new { -- cgit v1.2.3