Merge branch 'main' into themes
This commit is contained in:
+6
-6
@@ -8,12 +8,12 @@ local screen = require("screen")
|
||||
local theme = require("theme")
|
||||
|
||||
local img = {
|
||||
play = "//lua/img/play.png",
|
||||
pause = "//lua/img/pause.png",
|
||||
next = "//lua/img/next.png",
|
||||
prev = "//lua/img/prev.png",
|
||||
shuffle = "//lua/img/shuffle.png",
|
||||
repeat_src = "//lua/img/repeat.png", -- repeat is a reserved word
|
||||
play = lvgl.ImgData("//lua/img/play.png"),
|
||||
pause = lvgl.ImgData("//lua/img/pause.png"),
|
||||
next = lvgl.ImgData("//lua/img/next.png"),
|
||||
prev = lvgl.ImgData("//lua/img/prev.png"),
|
||||
shuffle = lvgl.ImgData("//lua/img/shuffle.png"),
|
||||
repeat_src = lvgl.ImgData("//lua/img/repeat.png"), -- repeat is a reserved word
|
||||
}
|
||||
|
||||
local is_now_playing_shown = false
|
||||
|
||||
@@ -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)
|
||||
|
||||
+26
-17
@@ -7,6 +7,20 @@ local styles = require("styles")
|
||||
local database = require("database")
|
||||
local theme = require("theme")
|
||||
|
||||
local img = {
|
||||
db = lvgl.ImgData("//lua/img/db.png"),
|
||||
chg = lvgl.ImgData("//lua/img/bat/chg.png"),
|
||||
bat_100 = lvgl.ImgData("//lua/img/bat/100.png"),
|
||||
bat_80 = lvgl.ImgData("//lua/img/bat/80.png"),
|
||||
bat_60 = lvgl.ImgData("//lua/img/bat/60.png"),
|
||||
bat_40 = lvgl.ImgData("//lua/img/bat/40.png"),
|
||||
bat_20 = lvgl.ImgData("//lua/img/bat/20.png"),
|
||||
bat_0 = lvgl.ImgData("//lua/img/bat/0.png"),
|
||||
bat_0chg = lvgl.ImgData("//lua/img/bat/0chg.png"),
|
||||
bt_conn = lvgl.ImgData("//lua/assets/bt_conn.png"),
|
||||
bt = lvgl.ImgData("//lua/assets/bt.png")
|
||||
}
|
||||
|
||||
local widgets = {}
|
||||
|
||||
function widgets.MenuScreen(opts)
|
||||
@@ -91,16 +105,11 @@ function widgets.StatusBar(parent, opts)
|
||||
status_bar.title:set { text = opts.title }
|
||||
end
|
||||
|
||||
status_bar.db_updating = status_bar.root:Image {
|
||||
src = "//lua/img/db.png"
|
||||
}
|
||||
status_bar.db_updating = status_bar.root:Image { src = img.db }
|
||||
theme.set_style(status_bar.db_updating, "database_indicator")
|
||||
|
||||
status_bar.bluetooth = status_bar.root:Image {}
|
||||
status_bar.battery = status_bar.root:Image {}
|
||||
status_bar.chg = status_bar.battery:Image {
|
||||
src = "//lua/img/bat/chg.png"
|
||||
}
|
||||
status_bar.chg = status_bar.battery:Image { src = img.chg }
|
||||
status_bar.chg:center()
|
||||
|
||||
local is_charging = nil
|
||||
@@ -110,20 +119,20 @@ function widgets.StatusBar(parent, opts)
|
||||
if is_charging == nil or percent == nil then return end
|
||||
local src
|
||||
if percent >= 95 then
|
||||
src = "100.png"
|
||||
src = img.bat_100
|
||||
elseif percent >= 75 then
|
||||
src = "80.png"
|
||||
src = img.bat_80
|
||||
elseif percent >= 55 then
|
||||
src = "60.png"
|
||||
src = img.bat_60
|
||||
elseif percent >= 35 then
|
||||
src = "40.png"
|
||||
src = img.bat_40
|
||||
elseif percent >= 15 then
|
||||
src = "20.png"
|
||||
src = img.bat_20
|
||||
else
|
||||
if is_charging then
|
||||
src = "0chg.png"
|
||||
src = img.bat_0chg
|
||||
else
|
||||
src = "0.png"
|
||||
src = img.bat_0
|
||||
end
|
||||
end
|
||||
if is_charging then
|
||||
@@ -131,7 +140,7 @@ function widgets.StatusBar(parent, opts)
|
||||
else
|
||||
status_bar.chg:add_flag(lvgl.FLAG.HIDDEN)
|
||||
end
|
||||
status_bar.battery:set_src("//lua/img/bat/" .. src)
|
||||
status_bar.battery:set_src(src)
|
||||
end
|
||||
|
||||
status_bar.bindings = {
|
||||
@@ -159,9 +168,9 @@ function widgets.StatusBar(parent, opts)
|
||||
end),
|
||||
bluetooth.connected:bind(function(connected)
|
||||
if connected then
|
||||
status_bar.bluetooth:set_src("//lua/assets/bt_conn.png")
|
||||
status_bar.bluetooth:set_src(img.bt_conn)
|
||||
else
|
||||
status_bar.bluetooth:set_src("//lua/assets/bt.png")
|
||||
status_bar.bluetooth:set_src(img.bt)
|
||||
end
|
||||
end),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user