Commit Graph
38 Commits
Author SHA1 Message Date
Michael Manganiello 66658b1401 misc: Migrate Artists page to GridView
Remove custom page implementation for Artists, and instead rely on the
generic `GridView` approach. This also simplifies adding new
sorting/filtering options as next improvements.

The new `ArtistFilter` is a dummy implementation without any real
filters at the moment.

Also, the `go-jellyfin` upgrade is needed to correctly display the album
count for each artist.
2024-03-30 12:42:48 -03:00
Michael Manganiello a220243279 misc: Decouple Grid view from Albums
The Grid view and related components were highly coupled to Albums,
including the filter button that is currently used only for album
filtering.

As part of the migration of Artists to Grid view, this is the smallest
possible change to convert many of the existing code to
generics/interfaces that will allow different media to be displayed and
filtered by using Grid views.

The main changes in this diff are:

* Introduction of generics for Media types (`M`) and Filter options
  (`F`), which can be later extended to other entities besides Albums.
* Complete decoupling of `GridViewPage` and related components from
  Albums (making these pages also generic).
* Refactoring of Subsonic/Jellyfin specific code to understand these new
  generics when dealing with filtering logic.
2024-03-11 00:44:20 -03:00
Michael Manganiello a6fefc992d Refactor and temporarily disable sharing artists 2024-03-03 21:01:48 -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 daac2c8566 fix keyboard scrolling weirdness by updating Fyne fork 2024-02-22 17:25:46 -08:00
Drew Weymouth 8d038ced64 unfocus grid view items when tapping between them 2024-02-18 09:19:37 -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 a46b9559bf make sure to always update itemForID maps for focus traversal 2024-02-17 08:22:21 -08:00
Drew Weymouth 0cc497efde reset itemForIndex map properly in GridView 2024-02-15 17:21:18 -08:00
Drew Weymouth 93863ad753 fix nil itemForIndex map in initialization of GridView from state 2024-02-15 17:09:43 -08:00
Drew Weymouth 7943b17199 fix regression with not updating grid view items occasionally 2024-02-02 08:55:38 -08:00
Drew Weymouth 7e8a4d6d37 Updates #22: add focus arrow key navigation to grid view 2024-02-02 08:44:52 -08:00
Drew Weymouth e4342ac135 Add icons to menu items 2024-01-06 16:24:23 -08:00
Drew Weymouth 7d7d315d74 refactor: move ImageLoader to ui/util 2023-11-05 14:30:57 -08:00
Drew Weymouth e10b751a4f some work on the quick search dialog + image load refactoring 2023-11-05 14:07:52 -08:00
Drew Weymouth b24321ee40 use disabled list to avoid builtin focus handling 2023-11-02 19:24:52 -07:00
Drew Weymouth af95d150e8 switch to GridWrap widget in Fyne instead of Fyne-x 2023-11-02 19:08:54 -07:00
Drew Weymouth 4f002574c2 handle multiple artists properly in UI 2023-10-22 11:40:06 -07:00
Drew Weymouth cf09912474 fix bug where album card on artist page would occasionally show artist name instead of year 2023-08-02 15:32:30 -06:00
Drew Weymouth a53a270730 limit concurrent image fetches from server 2023-08-01 17:21:38 -07:00
Drew Weymouth 4febad12b7 fix regression with shuffle context menu on gridview 2023-07-14 16:54:53 -07:00
Drew Weymouth 2239023e0f move grid view context menu to GridView instead of GridViewItem for reuse 2023-07-12 17:18:54 -07:00
Drew Weymouth 203070328c reuse grid view across several pages 2023-07-09 14:14:23 -07:00
Drew Weymouth 1c771b0832 reuse grid view for searching on albums page 2023-07-08 15:18:37 -07:00
Drew Weymouth 5622554842 move gridview mutex out of state 2023-07-08 11:58:22 -07:00
natilou 0dfbe685e1 Ability to download from grid
- Adding the option to download the album or tracks in grid view from Artist and Album pages.
2023-06-20 12:35:59 -03:00
Michael Manganiello 7b15fe95e4 Use GridWrap from fyne-x
With https://github.com/fyne-io/fyne-x/pull/56 merged, the local
implementation can be removed to rely on the upstream version.
2023-06-14 22:08:01 -07:00
Drew Weymouth 8b238fd239 fix missing icon in album grid cover placeholder 2023-06-02 08:38:22 -07:00
Drew Weymouth de7a16639e switch GridView to icon placeholder 2023-05-23 17:35:26 -07:00
Drew Weymouth 8f4f13733a Fix #161: ensure gridview doesn't have concurrent fetch tasks on reset 2023-05-18 17:35:52 -07:00
Drew Weymouth fd106560d0 more refactoring - compiles now but not extensively tested 2023-05-14 20:50:06 -07:00
Drew Weymouth b2dce99714 fix race condition index out of bound crash in gridview 2023-05-11 16:43:10 -07:00
Drew Weymouth 2ef0282c0b update module import paths 2023-05-07 09:53:34 -07:00
Drew Weymouth 073de9499e move GridWrap widget out of Fyne fork 2023-05-04 17:14:44 -07:00
Drew Weymouth 76657b5c1c Fix #136: add context menu to album and playlist grid views 2023-05-02 17:50:35 -07:00
Drew Weymouth 9b1349b0ac add grid view option to playlists page 2023-04-28 19:28:20 -07:00
Drew Weymouth 753e7f9bcc refactor 2: use generic model for grid view 2023-04-28 17:25:57 -07:00
Drew Weymouth cf4540eb32 refactor 1: renaming 2023-04-28 16:50:35 -07:00