From dd66de9bde725f6348ef48d5cb5eb936963a993c Mon Sep 17 00:00:00 2001 From: Drew Weymouth Date: Fri, 14 Jun 2024 08:52:44 -0700 Subject: [PATCH 1/8] fix crash when scrolling a list with a row focused --- ui/widgets/focuslist.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ui/widgets/focuslist.go b/ui/widgets/focuslist.go index 6dabac73..77c0d320 100644 --- a/ui/widgets/focuslist.go +++ b/ui/widgets/focuslist.go @@ -128,7 +128,10 @@ func (l *FocusListRowBase) SetItemID(id widget.ListItemID) { func (l *FocusListRowBase) EnsureUnfocused() { if l.Focused { - fyne.CurrentApp().Driver().CanvasForObject(l).Unfocus() + c := fyne.CurrentApp().Driver().CanvasForObject(l) + if c != nil { + c.Unfocus() + } } l.Focused = false } From 56e09869184b82fa73ec24ba0d5760748fc03fce Mon Sep 17 00:00:00 2001 From: Drew Weymouth Date: Sun, 16 Jun 2024 10:37:30 -0700 Subject: [PATCH 2/8] add ubuntu 24.04 workflow --- ...uild-ubuntu.yml => build-ubuntu-22.04.yml} | 4 +- .github/workflows/build-ubuntu-24.04.yml | 39 +++++++++++++++++++ 2 files changed, 41 insertions(+), 2 deletions(-) rename .github/workflows/{build-ubuntu.yml => build-ubuntu-22.04.yml} (94%) create mode 100644 .github/workflows/build-ubuntu-24.04.yml diff --git a/.github/workflows/build-ubuntu.yml b/.github/workflows/build-ubuntu-22.04.yml similarity index 94% rename from .github/workflows/build-ubuntu.yml rename to .github/workflows/build-ubuntu-22.04.yml index 840d0eb2..1b0c4c69 100644 --- a/.github/workflows/build-ubuntu.yml +++ b/.github/workflows/build-ubuntu-22.04.yml @@ -1,7 +1,7 @@ # This workflow will build a golang project # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go -name: Build Ubuntu +name: Build Ubuntu 22.04 on: push: @@ -11,7 +11,7 @@ on: jobs: build: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/build-ubuntu-24.04.yml b/.github/workflows/build-ubuntu-24.04.yml new file mode 100644 index 00000000..c19b6278 --- /dev/null +++ b/.github/workflows/build-ubuntu-24.04.yml @@ -0,0 +1,39 @@ +# This workflow will build a golang project +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go + +name: Build Ubuntu 24.04 + +on: + push: + pull_request: + branches: [ "main" ] + +jobs: + + build: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v3 + + - name: Set up Go + uses: actions/setup-go@v4 + with: + go-version: '1.21' + + - name: Install dependencies + run: sudo apt update && sudo apt install libmpv-dev gcc libegl1-mesa-dev xorg-dev + + - name: Build + run: go build + + - name: Install Fyne tool + run: go install fyne.io/fyne/v2/cmd/fyne@latest + + - name: Fyne package + run: make package_linux + + - name: Upload artifact + uses: actions/upload-artifact@v3 + with: + name: Supersonic_ubuntu_x64.tar.xz + path: Supersonic.tar.xz From dd0a4ea7743a77f5e383834478601e2cb783dffb Mon Sep 17 00:00:00 2001 From: Drew Weymouth Date: Sun, 16 Jun 2024 11:13:34 -0700 Subject: [PATCH 3/8] add libmpv clarification --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5a829902..91b5e56a 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ If you are running **Windows**, **Mac OS**, or a **Debian**-based Linux distro, **Apple Silicon (M1/M2) Macs:** You will have to remove the "quarantine bit" that Mac will automatically set, being an application downloaded from the internet. After copying the .app bundle to your Applications folder, in the terminal run `sudo xattr -r -d com.apple.quarantine /Applications/Supersonic.app` -**If you are on Linux** you must have libmpv installed on your system. On apt-based systems, run `sudo apt install libmpv1` if it is not already installed. The Windows and Mac release builds bundle the mpv dependencies. +**If you are on Linux** and using the build from the Releases page, you must have libmpv installed on your system. On apt-based systems, run `sudo apt install libmpv1` if it is not already installed. The Windows and Mac release builds bundle the mpv dependencies. ## Build instructions (Linux) From 70caad0a0eabe002aa3e42522d21e92c4ff45270 Mon Sep 17 00:00:00 2001 From: Drew Weymouth Date: Sun, 16 Jun 2024 11:15:44 -0700 Subject: [PATCH 4/8] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 91b5e56a..0c0633e6 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ If you are running **Windows**, **Mac OS**, or a **Debian**-based Linux distro, **Apple Silicon (M1/M2) Macs:** You will have to remove the "quarantine bit" that Mac will automatically set, being an application downloaded from the internet. After copying the .app bundle to your Applications folder, in the terminal run `sudo xattr -r -d com.apple.quarantine /Applications/Supersonic.app` -**If you are on Linux** and using the build from the Releases page, you must have libmpv installed on your system. On apt-based systems, run `sudo apt install libmpv1` if it is not already installed. The Windows and Mac release builds bundle the mpv dependencies. +**If you are on Linux** and using the build from the Releases page, you must have libmpv installed on your system. On apt-based systems, run `sudo apt install libmpv1` if it is not already installed. The Windows and Mac release builds bundle the mpv dependencies. To install the Linux release build, extract the .tar.xz bundle and run `make user-install` or `sudo make install`. ## Build instructions (Linux) From 104ccc27c92e3df3501ba9e6068909a538f69e81 Mon Sep 17 00:00:00 2001 From: Rob Emery Date: Sun, 16 Jun 2024 21:13:18 +0000 Subject: [PATCH 5/8] Hostname is just like "github.com", the field is actually the URI of the subsonic server (i.e. https://github.com/subsonic/) --- ui/dialogs/addeditserverdialog.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/dialogs/addeditserverdialog.go b/ui/dialogs/addeditserverdialog.go index 7d41dda8..79535fe2 100644 --- a/ui/dialogs/addeditserverdialog.go +++ b/ui/dialogs/addeditserverdialog.go @@ -101,9 +101,9 @@ func NewAddEditServerDialog(title string, cancelable bool, prefillServer *backen serverTypeChoice, widget.NewLabel("Nickname"), nickField, - widget.NewLabel("Hostname"), + widget.NewLabel("Url"), hostField, - widget.NewLabel("Alt. Hostname"), + widget.NewLabel("Alt. Url"), altHostField, widget.NewLabel("Username"), userField, From b23198d8872a3c29cf88d4b808d7d1c88711b481 Mon Sep 17 00:00:00 2001 From: Drew Weymouth Date: Sun, 16 Jun 2024 14:26:30 -0700 Subject: [PATCH 6/8] capitalize URL --- ui/dialogs/addeditserverdialog.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/dialogs/addeditserverdialog.go b/ui/dialogs/addeditserverdialog.go index 79535fe2..7ad0ac1a 100644 --- a/ui/dialogs/addeditserverdialog.go +++ b/ui/dialogs/addeditserverdialog.go @@ -101,9 +101,9 @@ func NewAddEditServerDialog(title string, cancelable bool, prefillServer *backen serverTypeChoice, widget.NewLabel("Nickname"), nickField, - widget.NewLabel("Url"), + widget.NewLabel("URL"), hostField, - widget.NewLabel("Alt. Url"), + widget.NewLabel("Alt. URL"), altHostField, widget.NewLabel("Username"), userField, From 1ed561c17844537c6429b0e5c11f3f9d3cfe7e47 Mon Sep 17 00:00:00 2001 From: Drew Weymouth Date: Wed, 19 Jun 2024 07:45:39 -0700 Subject: [PATCH 7/8] don't crash if server returns nil saved play queue but no error --- backend/mediaprovider/subsonic/subsonicmediaprovider.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/backend/mediaprovider/subsonic/subsonicmediaprovider.go b/backend/mediaprovider/subsonic/subsonicmediaprovider.go index 32919abd..6d66c49b 100644 --- a/backend/mediaprovider/subsonic/subsonicmediaprovider.go +++ b/backend/mediaprovider/subsonic/subsonicmediaprovider.go @@ -411,7 +411,11 @@ func (s *subsonicMediaProvider) GetPlayQueue() (*mediaprovider.SavedPlayQueue, e if err != nil { return nil, err } + savedQueue := &mediaprovider.SavedPlayQueue{} + if pq == nil { + return savedQueue, nil + } savedQueue.Tracks = sharedutil.MapSlice(pq.Entries, toTrack) savedQueue.TrackPos = slices.IndexFunc(pq.Entries, func(e *subsonic.Child) bool { return e.ID == pq.Current From 96cbbf0e15f3407151ce30aeedb2c72da67ff96b Mon Sep 17 00:00:00 2001 From: Drew Weymouth Date: Thu, 20 Jun 2024 08:11:10 -0700 Subject: [PATCH 8/8] fix double-click queuing action in related tracklist --- ui/browsing/nowplayingpage.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/browsing/nowplayingpage.go b/ui/browsing/nowplayingpage.go index 1f12ec56..8a63fab3 100644 --- a/ui/browsing/nowplayingpage.go +++ b/ui/browsing/nowplayingpage.go @@ -166,7 +166,7 @@ func NewNowPlayingPage( a.relatedList.OnSetRating = a.queueList.OnSetRating a.relatedList.OnSetFavorite = a.queueList.OnSetFavorite a.relatedList.OnPlayItemAt = func(idx int) { - a.pm.LoadTracks([]*mediaprovider.Track{a.related[idx]}, backend.Replace, false) + a.pm.LoadTracks(a.related, backend.Replace, false) a.pm.PlayTrackAt(idx) } a.relatedList.OnAddToQueue = func(items []mediaprovider.MediaItem) {