From 2a280c9b4b3afdedf68f8b27b8ce8dad6ab9470f Mon Sep 17 00:00:00 2001 From: jacqueline Date: Tue, 30 Jul 2024 14:56:42 +1000 Subject: [PATCH] Start playback immediately when selecting a playlist --- lua/file_browser.lua | 121 ++++++++++++++++++++++--------------------- 1 file changed, 61 insertions(+), 60 deletions(-) diff --git a/lua/file_browser.lua b/lua/file_browser.lua index aed4aef8..f4f6f216 100644 --- a/lua/file_browser.lua +++ b/lua/file_browser.lua @@ -10,68 +10,69 @@ local theme = require("theme") local screen = require("screen") local filesystem = require("filesystem") -return screen:new{ - createUi = function(self) - self.root = lvgl.Object(nil, { - flex = { - flex_direction = "column", - flex_wrap = "wrap", - justify_content = "flex-start", - align_items = "flex-start", - align_content = "flex-start" - }, - w = lvgl.HOR_RES(), - h = lvgl.VER_RES() - }) - self.root:center() +return screen:new { + createUi = function(self) + self.root = lvgl.Object(nil, { + flex = { + flex_direction = "column", + flex_wrap = "wrap", + justify_content = "flex-start", + align_items = "flex-start", + align_content = "flex-start" + }, + w = lvgl.HOR_RES(), + h = lvgl.VER_RES() + }) + self.root:center() - self.status_bar = widgets.StatusBar(self, { - back_cb = backstack.pop, - title = self.title - }) + self.status_bar = widgets.StatusBar(self, { + back_cb = backstack.pop, + title = self.title + }) - local header = self.root:Object{ - flex = { - flex_direction = "column", - flex_wrap = "wrap", - justify_content = "flex-start", - align_items = "flex-start", - align_content = "flex-start" - }, - w = lvgl.HOR_RES(), - h = lvgl.SIZE_CONTENT, - pad_left = 4, - pad_right = 4, - pad_bottom = 2, - bg_opa = lvgl.OPA(100), - scrollbar_mode = lvgl.SCROLLBAR_MODE.OFF - } - theme.set_style(header, "header") + local header = self.root:Object { + flex = { + flex_direction = "column", + flex_wrap = "wrap", + justify_content = "flex-start", + align_items = "flex-start", + align_content = "flex-start" + }, + w = lvgl.HOR_RES(), + h = lvgl.SIZE_CONTENT, + pad_left = 4, + pad_right = 4, + pad_bottom = 2, + bg_opa = lvgl.OPA(100), + scrollbar_mode = lvgl.SCROLLBAR_MODE.OFF + } + theme.set_style(header, "header") - if self.breadcrumb then - header:Label{ - text = self.breadcrumb, - text_font = font.fusion_10 - } - end - - widgets.InfiniteList(self.root, self.iterator, { - callback = function(item) - return function() - local is_dir = item:is_directory() - if is_dir then - backstack.push(require("file_browser"):new{ - title = self.title, - iterator = filesystem.iterator(item:filepath()), - breadcrumb = item:filepath() - }) - end - if item:filepath():match("%.playlist$") then - queue.open_playlist(item:filepath()) - backstack.push(playing:new()) - end - end - end - }) + if self.breadcrumb then + header:Label { + text = self.breadcrumb, + text_font = font.fusion_10 + } end + + widgets.InfiniteList(self.root, self.iterator, { + callback = function(item) + return function() + local is_dir = item:is_directory() + if is_dir then + backstack.push(require("file_browser"):new { + title = self.title, + iterator = filesystem.iterator(item:filepath()), + breadcrumb = item:filepath() + }) + end + if item:filepath():match("%.playlist$") then + queue.open_playlist(item:filepath()) + playback.playing:set(true) + backstack.push(playing:new()) + end + end + end + }) + end }