Commit Graph
63 Commits
Author SHA1 Message Date
Drew Weymouth 82d4546096 refactor tracklist to use MediaItem, even if it only contains tracks 2024-06-01 10:15:18 -07:00
Drew Weymouth 0a902aef9f refactoring continued - compiles now 2024-05-31 16:37:14 -07:00
Drew Weymouth f67a0c5fc1 in progress MediaItem refactor - does not build 2024-05-31 09:35:46 -07:00
Drew Weymouth b66baf5e77 slightly lengthen animation 2024-05-29 07:27:26 -07:00
Drew Weymouth 906c951cc9 use dynamic gradient as background of Now Playing page 2024-05-29 07:22:08 -07:00
Drew Weymouth 0a818ae7b5 set state properly when reusing NowPlayingPage in constructor 2024-05-27 08:23:28 -07:00
Drew Weymouth 874c13b8d5 don't clear state when saving NowPlayingPage to pool for faster reloading from history 2024-05-26 13:39:43 -07:00
Drew Weymouth edb6654bee use pre-existing page from widget pool in constructor if possible 2024-05-26 12:28:33 -07:00
Drew Weymouth db38e1a3f4 use empty lyric to clear widget during fetch 2024-05-26 07:38:44 -07:00
Drew Weymouth 17ede7a909 add loading dots for lyrics and related tabs 2024-05-25 19:09:41 -07:00
Drew Weymouth 3f8a2e1d1e add LrcLib as a fallback lyric provider 2024-05-25 16:56:41 -07:00
Drew Weymouth e55a13fbdd add Related tab to Now Playing page 2024-05-25 11:57:17 -07:00
Drew Weymouth 8caab9bd43 make sure to set lyrics nil when stopping 2024-05-25 10:48:20 -07:00
Drew Weymouth 4ba358ad23 only update lyrics when visible 2024-05-25 10:17:47 -07:00
Drew Weymouth e7b2b821f3 hook up seek for synced lyrics 2024-05-16 19:22:08 -07:00
Drew Weymouth e8d751bc2a first draft of synced lyrics integration, missing seek support 2024-05-16 18:32:13 -07:00
Drew Weymouth 3045fcf94e Fix refreshing of lyrics viewer on song change 2024-04-19 08:12:48 -07:00
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 739b5eb64d save last active tab in Now Playing page 2024-03-06 19:48:55 -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 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
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 a7309b08ca add keyboard scrolling to list views 2024-02-18 13:26:15 -08:00
Drew Weymouth e9d462e655 move player package into backend 2024-01-08 18:53:13 -08:00
Drew Weymouth e4342ac135 Add icons to menu items 2024-01-06 16:24:23 -08:00
Drew Weymouth 9c2f72d9f2 Fix #33: allow reordering of play queue 2024-01-06 14:22:18 -08:00
Drew Weymouth bcf95ba26c don't assume MPV player in now playing page 2023-12-19 08:23:12 -08:00
Drew Weymouth 55f9461410 Refactor pt. 1: move MPV player to own package and extract some types 2023-12-17 13:50:30 -08:00
Drew Weymouth e261eab4f3 Jellyfin does not support 5-star ratings - make it disableable 2023-11-14 09:05:02 -08:00
Drew Weymouth 91c6addd89 use plain label for Now Playing status line - we weren't doing any formatting 2023-11-05 09:22:51 -08:00
Drew Weymouth 64ec698202 few cleanups around handling track change callback 2023-08-04 23:39:14 -04:00
Drew Weymouth f75a5e27a5 clear tracks from tracklists before releasing to widget pool 2023-07-10 13:51:09 -07:00
Drew Weymouth d76fc41230 more pooling of widgets, rename and rework a few things 2023-07-07 17:11:03 -07:00
Drew Weymouth c6c33ecfed begin reuse of widgets across pages 2023-07-07 12:54:20 -07:00
Drew Weymouth 8bd5ca3894 avoid unnecessary status line refreshes 2023-06-05 09:08:02 -07:00
Drew Weymouth fedb9fd70d add status line with media info to bottom of now playing page 2023-06-05 08:55:35 -07:00
Drew Weymouth b64dcdcc0b fix tracklist selection being maintained when sorting 2023-06-02 17:43:22 -07:00
Drew Weymouth 1f3559de43 add tracklist sorting logic 2023-05-23 11:10:43 -07:00
Drew Weymouth f926ed3fb9 fix some bugs and restructure a bit more 2023-05-15 17:05:18 -07:00
Drew Weymouth fd106560d0 more refactoring - compiles now but not extensively tested 2023-05-14 20:50:06 -07:00
Drew Weymouth 2ef0282c0b update module import paths 2023-05-07 09:53:34 -07:00
Drew Weymouth 053474f669 make track title in bottom panel link to Now Playing page 2023-04-30 10:17:34 -07:00