Commit Graph
199 Commits
Author SHA1 Message Date
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
Michael Manganiello a8d1380b48 Change playing icon color for current track
Make the Play icon easier to spot within the playing queue, by using the
primary color for the current theme.

Fixes #184
2023-07-02 20:45:06 -07:00
Michael Manganiello a4f4151ebd Apply recommended fix 2023-07-02 22:06:23 -03:00
Michael Manganiello 0aa3fbbe1b Add MinSize method to TappableImage
This is being added, because testing the latest `develop` version for
`fyne` fails with the following error:

```
ui/widgets/imageplaceholder.go:48:3: cannot use i.imageDisp (variable of type *TappableImage) as fyne.CanvasObject value in argument to container.NewMax: *TappableImage does not implement fyne.CanvasObject (missing method MinSize)
ui/widgets/nowplayingcard.go:51:33: cannot use n.cover (variable of type *TappableImage) as fyne.CanvasObject value in argument to container.NewBorder: *TappableImage does not implement fyne.CanvasObject (missing method MinSize)
ui/widgets/tappablewrappers.go:64:21: cannot use t (variable of type *TappableImage) as fyne.Widget value in argument to t.ExtendBaseWidget: *TappableImage does not implement fyne.Widget (missing method MinSize)
```
2023-07-02 22:05:22 -03:00
Drew Weymouth 9d7bfc719e Merge pull request #206 from natilou/download-notification
Add notification when a download is completed
2023-06-21 20:57:34 -07:00
natilou 6318ce33e4 getting the album name from titleLabel and adding ellipsis after 'Download' option 2023-06-21 23:35:56 -03:00
natilou d59ed11647 Add notification when a download is completed
- fyne notication looks for the app icon to display it in the notication, so I setted the icon  in `main.go`.
- deleting points after "Download" option in grid view that I mistakenly leave it in a previous PR.
- adding the new paremeter `downloadName`

Screenshot:

Fixes #202
2023-06-21 14:17:15 -03:00
Michael Manganiello a40ba5eb79 Update icons to the new Repeat ones 2023-06-20 23:51:04 -03:00
Michael Manganiello 196f7f2cff Add functionality to repeat current track
This new Loop mode keeps reproducing the current track, unless it is
changed using the player controls to go to the next/previous track.

As in other applications, this is set by using the "Repeat" button,
which now goes from "Off" -> "Repeat All" -> "Repeat One".
2023-06-20 23:23:38 -03:00
Drew Weymouth ecffb81f72 make ListHeader color independently customizable 2023-06-20 18:33:41 -07:00
Drew Weymouth 74c0c01268 add ellipsis to Download menu item 2023-06-20 09:37:56 -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
Drew Weymouth a324177fef adjust layout of aux controls 2023-06-19 19:22:47 -07:00
Michael Manganiello 13f0692566 Move loop button to auxiliary controls, change button color on toggle 2023-06-18 22:45:09 -03:00
Michael Manganiello 2ab19f65e1 Add Loop functionality to player controls
Adding the Loop functionality, along with the Player changes to support
it, and a button to the player controls.

`Player` now has a `loopMode` attribute, which determines whether it
should loop. At the moment, only the following modes are supported:

* `LoopNone`: Disables loop.
* `LoopAll`: Enables loop for the entire playlist queue.

This has been designed as an enum, to support other modes in the future
(e.g. loop for the current track only).

It depends on the `loop` functionality provided by MPV (using the
[`loop-playlist` option](https://mpv.io/manual/master/#options-loop-playlist)),
so no custom logic is needed to reset the currently playing index.
2023-06-18 22:43:03 -03:00
Drew Weymouth 701001121f add nil check around OnDownload call 2023-06-15 21:01:52 -07:00
natilou 15a63681de Implementing downloading multiple tracks into a single zip file, changing callback signature 2023-06-15 22:16:46 -03:00
natilou f190aaf732 Ability to download tracks
- Adding the option to download the selected track or tracks.
When the download is clicked it opens a dialog that lets you choose where
you want to save the track and the file name (by default
the file name is the track number, the track name and the extension, example "03 - my song.mp3")
If there are many tracks selected it will open one dialog for each track
- Next steps: download an album and a playlist using zip
2023-06-15 10:12:53 -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
Michael Manganiello 39b17abd7d Fix typo on NewTappableIcon function 2023-06-12 18:45:21 -07:00
Michael Manganiello c19edccf80 Temporarily add tappable behavior to seekbar slider until Fyne 2.4 (#188)
Same code as
https://github.com/dweymouth/supersonic/commit/a9cec173ddcd0999cfbe7f61ca15c01bd3c1cbce,
but for the volume slider.

Related issue: #95
2023-06-10 14:57:38 -07:00
Drew Weymouth b64dcdcc0b fix tracklist selection being maintained when sorting 2023-06-02 17:43:22 -07:00
Drew Weymouth 8b238fd239 fix missing icon in album grid cover placeholder 2023-06-02 08:38:22 -07:00
Drew Weymouth 1908b03e73 make sure placeholder image has Fastest scale mode if requested 2023-05-28 14:12:03 -07:00
Drew Weymouth 831f5f56c7 prevent clicking track row separator from resetting selection 2023-05-27 10:30:55 -07:00
Drew Weymouth 65f0fd8670 make primary link in GridViewItem bold 2023-05-24 11:18:58 -07:00
Drew Weymouth e95474d0d0 Merge branch 'main' into feature/sort-tracklist-cols 2023-05-24 09:18:59 -07:00
Drew Weymouth 572a2e511d reorder playlist tracks based on original sort and switch to unsorted view 2023-05-24 09:11:50 -07:00
Drew Weymouth c5b8e0e3f7 fix tap events for gridview 2023-05-23 19:03:44 -07:00
Drew Weymouth 90936c086d switch favorite artists view to grid 2023-05-23 18:35:34 -07:00
Drew Weymouth de7a16639e switch GridView to icon placeholder 2023-05-23 17:35:26 -07:00
Drew Weymouth 8bf9f20b8e add center alignment option to list columns 2023-05-23 14:24:02 -07:00
Drew Weymouth 71ce5043b7 refactor a bit and have tracklist respond to set sorting calls 2023-05-23 11:10:43 -07:00
Drew Weymouth 84e1f01a68 add saving of tracklist sort in browsing history - but need to handle it Tracklist widget still 2023-05-23 11:10:43 -07:00
Drew Weymouth 137e0334e0 add disabling of sorting where appropriate 2023-05-23 11:10:43 -07:00
Drew Weymouth 1f3559de43 add tracklist sorting logic 2023-05-23 11:10:43 -07:00
Drew Weymouth e434b55dda add tapped handler for changing column sort 2023-05-23 11:10:43 -07:00
Drew Weymouth 0d02c1fe9d layout fixes and upgrades, add list hdr sort icon 2023-05-23 11:10:43 -07:00
Drew Weymouth e8ab651d9d add genres to album filters panel 2023-05-18 18:10:09 -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 ce7822c89f oops: fix infinite recursion in TextRestrictedEntry 2023-05-18 13:11:51 -07:00
Drew Weymouth bf4dce6df4 add more restrictions to year entry field in album filters 2023-05-18 08:56:55 -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 85042fcbd4 begin the refactoring - doesnt compile 2023-05-14 19:31:04 -07:00
Drew Weymouth 2083af3935 add Shuffle context menu item to tracklist; unselect tracks on Favorites page by clicking outside 2023-05-13 16:47:15 -07:00
Drew Weymouth 35b2bcb261 add album filters to favorites page 2023-05-12 19:29:02 -07:00
Drew Weymouth 4730b74039 add album filters to genre page 2023-05-12 09:22:49 -07:00
Drew Weymouth 85701c568c add filter icon 2023-05-11 21:32:07 -07:00