Commit Graph
579 Commits
Author SHA1 Message Date
Michael Manganiello 80d7cf0b65 fix: Avoid slices.Contains within tight loops
Having a `slices.Contains` check within a `for` loop has a complexity of
`O(n*m)`, with a worst case scenario of `O(n^2)` for when both
collections have the same size.

This is because `slices.Contains` internally runs just a regular loop,
checking for equality element by element.

Instead, this diff changes every occurence of this pattern to converting
the collection we compare against to a set, and then running a faster
lookup against it.
2024-03-17 13:21:51 -03:00
Drew Weymouth 3d61659d07 Fix #128: support mouse back/forward using custom added Fyne API 2024-03-13 09:07:52 -07:00
Drew Weymouth 3b5e5171b5 Fix #345: make sure to truncate playlist title, description, owner 2024-03-08 08:05:18 -08:00
Drew Weymouth 739b5eb64d save last active tab in Now Playing page 2024-03-06 19:48:55 -08:00
Drew Weymouth 1e377619b5 Merge branch 'main' into feature/lyrics 2024-03-06 09:46:44 -08:00
Drew Weymouth 129afcf4a8 update lyrics text style 2024-03-06 09:44:52 -08:00
Drew Weymouth b3bec2694b fetch lyrics async 2024-03-06 08:13:02 -08:00
Drew Weymouth 3fa52c73df add unsynced lyrics view (not tested yet) 2024-03-06 08:05:53 -08: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
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
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 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 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 daac2c8566 fix keyboard scrolling weirdness by updating Fyne fork 2024-02-22 17:25:46 -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
Drew Weymouth c6687aaa95 add (non-focused) keyboard scrolling to grid view pages 2024-02-18 09:10:01 -08:00
Drew Weymouth 74a8aea72c fix nil ptr crash when switching to favorite songs view 2024-02-18 09:00:13 -08:00
Drew Weymouth 268860b3ea Fix #327: show loading dots when search in progress but no results yet 2024-02-17 11:17:06 -08:00
Drew Weymouth fb7f51d3ef add focus traversal to genre list in album filter panel 2024-02-17 08:43:50 -08:00
Drew Weymouth a46b9559bf make sure to always update itemForID maps for focus traversal 2024-02-17 08:22:21 -08:00
Drew Weymouth bc113e404d add focus navigation to playlists list view 2024-02-16 09:15:49 -08:00
Drew Weymouth f789296944 refactor and add focus navigation to genres list 2024-02-16 08:33:24 -08:00
Drew Weymouth b97b029422 Updates #22: add focus arrow key navigation to tracklist 2024-02-15 17:56:53 -08:00