Commit Graph
1015 Commits
Author SHA1 Message Date
Drew Weymouth 790fe8ea1e Merge pull request #339 from adamantike/misc/implement-iterator-approach-for-artists
misc: Implement Iterator approach for artists
2024-03-06 07:26:00 -08:00
Michael Manganiello d917efe801 fix: Handle sorting for accented strings 2024-03-06 00:55:46 -03:00
Michael Manganiello 2cb002dde0 misc: Implement Iterator approach for artists
First step towards improving sorting for Artists. Use the same iterator
approach as albums and tracks.
2024-03-06 00:54:16 -03:00
Drew Weymouth 50980e7d56 Merge pull request #340 from adamantike/misc/upgrade-go-1.21
misc: Upgrade Go to v1.21
2024-03-05 07:46:19 -08:00
Michael Manganiello 801967a530 misc: Upgrade Go to v1.21
Upgrade to 1.21 as 1.20 is now unmaintained.

Most changes are related to the new `slices` package from standard
library, which can replace some existing custom functions.
2024-03-05 09:49:10 -03:00
Drew Weymouth ea1b2f3284 Merge pull request #336 from adamantike/feat/add-share-option
feat: Add Share option for artists, albums, and tracks
2024-03-03 16:39:18 -08:00
Michael Manganiello a6fefc992d Refactor and temporarily disable sharing artists 2024-03-03 21:01:48 -03:00
Michael Manganiello d9bbe03e81 misc: Notify user of failed sharing using a dialog 2024-03-03 20:45:00 -03:00
Michael Manganiello 9d3725cb51 feat: Add Share option for artists, albums, and tracks
This feature is only available on the Subsonic media provider. Using a
Jellyfin server will make Supersonic hide the "Share" option.

* Artists: Option available in grid view and in Artist view.
* Albums: Option available in grid view and in Album view.
* Tracks: Option available in tracklist, when a single track is selected.
2024-03-03 20:44:58 -03:00
Drew Weymouth ee0e18e118 Merge pull request #338 from dweymouth/feature/fullscreenpage
Add new Now Playing page with large cover image and new queue list
2024-03-03 14:12:32 -08:00
Drew Weymouth cd31274a81 remove defunct NowPlayingPageConfig 2024-03-03 14:06:19 -08:00
Drew Weymouth 44abf3c434 add select all support to new NowPlaying page 2024-03-03 13:58:15 -08:00
Drew Weymouth e9142f9ebf add stub lyrics viewer component 2024-03-03 13:51:54 -08:00
Drew Weymouth eaef666b0c make sure to update displayed rating/favorite when changing from list 2024-03-03 13:48:45 -08:00
Drew Weymouth 67c5edbbde rm irrelevant comment 2024-03-03 11:50:07 -08:00
Drew Weymouth 151dbb9edf rename file 2024-03-03 11:48:27 -08:00
Drew Weymouth a86533b424 connect up PlayQueueList actions and remove old NowPlayingPage 2024-03-03 11:47:57 -08:00
Drew Weymouth d5aefad7c3 add context menu to PlayQueueList 2024-03-03 11:33:44 -08:00
Drew Weymouth aa58a50804 add status line to fullscreen page 2024-03-03 11:00:16 -08:00
Drew Weymouth d8f2172341 use fastest image scale mode for now playing cards 2024-03-03 10:42:09 -08:00
Drew Weymouth 9b72ff9d17 add OnPlayQueueChange hook 2024-03-03 10:38:12 -08:00
Drew Weymouth 013204727d fix album link bug 2024-03-03 10:19:14 -08:00
Drew Weymouth 1e010d5452 use fast scaling mode for play queue images 2024-03-02 17:31:08 -08:00
Drew Weymouth 825f4325ed pool fullscreenpage for reuse when navigating 2024-03-02 17:25:16 -08:00
Drew Weymouth 9f16e2ebd9 connect actions 2024-03-02 17:18:49 -08:00
Drew Weymouth a458f14327 don't crash in fullscreen page when stopping (next track = nil) 2024-03-02 17:10:32 -08:00
Drew Weymouth b8ab480294 fullscreen play queue renders correctly 2024-03-02 16:01:14 -08:00
Drew Weymouth a75222d381 more work 2024-03-02 13:34:09 -08:00
Drew Weymouth c2c65c3d76 beginning work on PlayQueueList 2024-03-02 12:29:07 -08:00
Drew Weymouth 18d0580424 extract some sharable utils out of tracklist in prep for playqueuelist 2024-03-02 10:04:47 -08:00
Drew Weymouth cbbebf6eb5 hook up rating and favorite actions 2024-03-02 09:28:35 -08:00
Drew Weymouth fee1dd66bb add FavoriteIcon and use in fullscreen page 2024-03-01 18:12:25 -08:00
Drew Weymouth f1e5c55461 more work on fullscreen page 2024-03-01 16:59:04 -08:00
Drew Weymouth 9ed2d8502b add GetFullSizeCoverArtAsync 2024-03-01 16:59:04 -08:00
Drew Weymouth 4023d9e76e add padding around large now playing card 2024-03-01 16:59:04 -08:00
Drew Weymouth 0c8914060e add CaptionedImage widget 2024-03-01 16:59:04 -08:00
Drew Weymouth c473c3ad23 some tweaks, still WIP 2024-03-01 16:59:04 -08:00
Drew Weymouth e719782437 beginning of work on fullscreen page 2024-03-01 16:59:04 -08:00
Drew Weymouth 1914821283 prepare for 0.9.1 release 2024-02-25 08:33:07 -08:00
Drew Weymouth 7367204892 update fyne for gridwrap nil fix 2024-02-25 08:16:03 -08:00
Drew Weymouth 6a9f488db0 Merge pull request #333 from adamantike/fix/mpris-broken-art-url-on-linux
fix: MPRIS broken cover art on Linux
2024-02-24 11:05:43 -08:00
Drew Weymouth 307fbdf0f4 Merge pull request #334 from adamantike/fix/mpris-sync-loop-mode
fix: Enable Loop mode sync for MPRIS
2024-02-24 11:04:57 -08:00
Michael Manganiello c7dfc9efb3 fix: Enable Loop mode sync for MPRIS
Loop mode changes were being correctly reflected in Supersonic, when
updated in the toolbar, but not the other way around. We were only
missing an `Options` changes emit when loop mode is changed in
Supersonic.
2024-02-24 15:17:13 -03:00
Michael Manganiello 21751221fc fix: MPRIS broken cover art on Linux
Problem:

When changing tracks, the toolbar display on Linux sometimes misses the
track cover art, and displays a placeholder instead.

Solution:

Copy same callback as the one used for MacOS, which calls
`GetCoverArtUrl` first, to avoid missing cover arts.
2024-02-24 15:04:03 -03:00
Drew Weymouth 95aad16d16 Merge pull request #332 from adamantike/fix/mpris-broken-seek
fix: MPRIS Seek functionality on Linux
2024-02-24 08:57:12 -08:00
Michael Manganiello 56c78aad0c fix: MPRIS Seek functionality on Linux
Problem:

The operating system toolbar's component to control Supersonic playback
had its Seek functionality broken on Linux. When playing a song, seeking
for a different position from Supersonic worked as expected, but seeking
from the toolbar did nothing to the current track.

I found that the underlying reason was in `MPRISHandler.SetPosition`, as
the `if m.curTrackPath == trackId` always returned false.

`m.curTrackPath` was the right value, but `trackId` was wrong: On the
first song being played for a tracklist, `trackId` when trying to seek
was set to `/org/mpris/MediaPlayer2/TrackList/NoTrack`. When moving to
the next song, `trackId` then became the Track ID of the previously
played song.

Solution:

Changing the call to `OnTitle()` is enough to fix the issue, as the
MPRIS `Metadata()` generation depends on the value of `m.curTrackPath`.
Because it was being called before changing its value, the received
`trackId` was always off.
2024-02-24 13:26:04 -03:00
Drew Weymouth daac2c8566 fix keyboard scrolling weirdness by updating Fyne fork 2024-02-22 17:25:46 -08:00
Drew Weymouth 7b1ec1fe74 Update README.md planned features 2024-02-19 08:20:57 -08:00
Drew Weymouth a7309b08ca add keyboard scrolling to list views 2024-02-18 13:26:15 -08:00
Drew Weymouth 8d038ced64 unfocus grid view items when tapping between them 2024-02-18 09:19:37 -08:00