Add quick USB MSC access to the main menu

custom
jacqueline 7 months ago
parent 9aa77ec5ad
commit 111085b857
  1. 1
      lua/images.lua
  2. BIN
      lua/img/usb.png
  3. 20
      lua/main_menu.lua
  4. 50
      lua/settings.lua

@ -16,6 +16,7 @@ local img = {
files = lvgl.ImgData("//lua/img/files.png"), files = lvgl.ImgData("//lua/img/files.png"),
settings = lvgl.ImgData("//lua/img/settings.png"), settings = lvgl.ImgData("//lua/img/settings.png"),
chevron = lvgl.ImgData("//lua/img/chevron.png"), chevron = lvgl.ImgData("//lua/img/chevron.png"),
usb = lvgl.ImgData("//lua/img/usb.png"),
} }
return img return img

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

@ -147,6 +147,24 @@ return widgets.MenuScreen:new {
-- queue_btn:Image { src = img.queue } -- queue_btn:Image { src = img.queue }
-- theme.set_subject(queue_btn, "icon_enabled") -- theme.set_subject(queue_btn, "icon_enabled")
local usb_btn = bottom_bar:Button {}
usb_btn:onClicked(function()
backstack.push(require("settings").MassStorageSettings:new())
end)
usb_btn:Image { src = img.usb }
widgets.Description(usb_btn, "USB Settings")
theme.set_subject(usb_btn, "menu_icon")
self.bindings = self.bindings + {
require("power").plugged_in:bind(function(attached)
if (attached) then
usb_btn:clear_flag(lvgl.FLAG.HIDDEN)
else
usb_btn:add_flag(lvgl.FLAG.HIDDEN)
end
end)
}
local files_btn = bottom_bar:Button {} local files_btn = bottom_bar:Button {}
files_btn:onClicked(function() files_btn:onClicked(function()
backstack.push(require("file_browser"):new { backstack.push(require("file_browser"):new {
@ -160,7 +178,7 @@ return widgets.MenuScreen:new {
local settings_btn = bottom_bar:Button {} local settings_btn = bottom_bar:Button {}
settings_btn:onClicked(function() settings_btn:onClicked(function()
backstack.push(require("settings"):new()) backstack.push(require("settings").Root:new())
end) end)
settings_btn:Image { src = img.settings } settings_btn:Image { src = img.settings }
widgets.Description(settings_btn, "Settings") widgets.Description(settings_btn, "Settings")

@ -14,6 +14,8 @@ local font = require("font")
local main_menu = require("main_menu") local main_menu = require("main_menu")
local img = require("images") local img = require("images")
local settings = {}
local SettingsScreen = widgets.MenuScreen:new { local SettingsScreen = widgets.MenuScreen:new {
show_back = true, show_back = true,
create_ui = function(self) create_ui = function(self)
@ -60,7 +62,7 @@ local BluetoothPairing = SettingsScreen:new {
on_hide = function() bluetooth.discovering:set(false) end, on_hide = function() bluetooth.discovering:set(false) end,
} }
local BluetoothSettings = SettingsScreen:new { settings.BluetoothSettings = SettingsScreen:new {
title = "Bluetooth", title = "Bluetooth",
create_ui = function(self) create_ui = function(self)
SettingsScreen.create_ui(self) SettingsScreen.create_ui(self)
@ -202,7 +204,7 @@ local BluetoothSettings = SettingsScreen:new {
end end
} }
local HeadphonesSettings = SettingsScreen:new { settings.HeadphonesSettings = SettingsScreen:new {
title = "Headphones", title = "Headphones",
create_ui = function(self) create_ui = function(self)
SettingsScreen.create_ui(self) SettingsScreen.create_ui(self)
@ -266,7 +268,7 @@ local HeadphonesSettings = SettingsScreen:new {
end end
} }
local DisplaySettings = SettingsScreen:new { settings.DisplaySettings = SettingsScreen:new {
title = "Display", title = "Display",
create_ui = function(self) create_ui = function(self)
SettingsScreen.create_ui(self) SettingsScreen.create_ui(self)
@ -303,7 +305,7 @@ local DisplaySettings = SettingsScreen:new {
end end
} }
local ThemeSettings = SettingsScreen:new { settings.ThemeSettings = SettingsScreen:new {
title = "Theme", title = "Theme",
create_ui = function(self) create_ui = function(self)
SettingsScreen.create_ui(self) SettingsScreen.create_ui(self)
@ -365,7 +367,7 @@ local ThemeSettings = SettingsScreen:new {
end end
} }
local InputSettings = SettingsScreen:new { settings.InputSettings = SettingsScreen:new {
title = "Input Method", title = "Input Method",
create_ui = function(self) create_ui = function(self)
SettingsScreen.create_ui(self) SettingsScreen.create_ui(self)
@ -425,7 +427,7 @@ local InputSettings = SettingsScreen:new {
end end
} }
local MassStorageSettings = SettingsScreen:new { settings.MassStorageSettings = SettingsScreen:new {
title = "USB Storage", title = "USB Storage",
create_ui = function(self) create_ui = function(self)
SettingsScreen.create_ui(self) SettingsScreen.create_ui(self)
@ -490,7 +492,7 @@ local MassStorageSettings = SettingsScreen:new {
end end
} }
local DatabaseSettings = SettingsScreen:new { settings.DatabaseSettings = SettingsScreen:new {
title = "Database", title = "Database",
create_ui = function(self) create_ui = function(self)
SettingsScreen.create_ui(self) SettingsScreen.create_ui(self)
@ -550,7 +552,7 @@ local DatabaseSettings = SettingsScreen:new {
end end
} }
local PowerSettings = SettingsScreen:new { settings.PowerSettings = SettingsScreen:new {
title = "Power", title = "Power",
create_ui = function(self) create_ui = function(self)
SettingsScreen.create_ui(self) SettingsScreen.create_ui(self)
@ -635,7 +637,7 @@ local SamdConfirmation = SettingsScreen:new {
end end
} }
local FirmwareSettings = SettingsScreen:new { settings.FirmwareSettings = SettingsScreen:new {
title = "Firmware", title = "Firmware",
create_ui = function(self) create_ui = function(self)
SettingsScreen.create_ui(self) SettingsScreen.create_ui(self)
@ -666,7 +668,7 @@ local FirmwareSettings = SettingsScreen:new {
end end
} }
local LicensesScreen = SettingsScreen:new { settings.LicensesScreen = SettingsScreen:new {
title = "Licenses", title = "Licenses",
create_ui = function(self) create_ui = function(self)
SettingsScreen.create_ui(self) SettingsScreen.create_ui(self)
@ -703,7 +705,7 @@ local FccStatementScreen = SettingsScreen:new {
end end
} }
local RegulatoryScreen = SettingsScreen:new { settings.RegulatoryScreen = SettingsScreen:new {
title = "Regulatory", title = "Regulatory",
create_ui = function(self) create_ui = function(self)
SettingsScreen.create_ui(self) SettingsScreen.create_ui(self)
@ -775,7 +777,7 @@ local RegulatoryScreen = SettingsScreen:new {
end end
} }
return widgets.MenuScreen:new { settings.Root = widgets.MenuScreen:new {
show_back = true, show_back = true,
title = "Settings", title = "Settings",
create_ui = function(self) create_ui = function(self)
@ -803,24 +805,26 @@ return widgets.MenuScreen:new {
end end
section("Audio") section("Audio")
submenu("Bluetooth", BluetoothSettings) submenu("Bluetooth", settings.BluetoothSettings)
submenu("Headphones", HeadphonesSettings) submenu("Headphones", settings.HeadphonesSettings)
section("Interface") section("Interface")
submenu("Display", DisplaySettings) submenu("Display", settings.DisplaySettings)
submenu("Theme", ThemeSettings) submenu("Theme", settings.ThemeSettings)
submenu("Input Method", InputSettings) submenu("Input Method", settings.InputSettings)
section("USB") section("USB")
submenu("Storage", MassStorageSettings) submenu("Storage", settings.MassStorageSettings)
section("System") section("System")
submenu("Database", DatabaseSettings) submenu("Database", settings.DatabaseSettings)
submenu("Power", PowerSettings) submenu("Power", settings.PowerSettings)
section("About") section("About")
submenu("Firmware", FirmwareSettings) submenu("Firmware", settings.FirmwareSettings)
submenu("Licenses", LicensesScreen) submenu("Licenses", settings.LicensesScreen)
submenu("Regulatory", RegulatoryScreen) submenu("Regulatory", settings.RegulatoryScreen)
end end
} }
return settings

Loading…
Cancel
Save