-
Notifications
You must be signed in to change notification settings - Fork 133
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
✨ Redesign track list tile #829
Conversation
I played with this and noticed a couple issues:
|
Hey, thanks for giving it a try!
Also, the original plan was to add a download indicator on each track item. I'm not sure if I'll still do that, but either way it might be comfortable to have a provider for getting and updating the download status of items, including albums, etc. Similar to what you added for the favorite status. If you feel like it would be unnecessary or a bad idea, please let me know! |
Okay, I think I figured some of the issues out. I didn't notice that I still had two gesture detected that did the same thing, with only one being properly connected to the menu theme calculation. That was probably the reason why you saw the wrong theme being used, a simple race condition. Probably also the reason for the laggy menu opening, and might've otherwise negatively impacted performance. Font size if update and icon contrast is also fixed. So the only major issue left should be the fast scroller. |
ooo nice :) only visual suggestion I can think of is that having a like button everywhere seems a bit overkill, but does make sense when looking at an album/maybe searching |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The code looks good :D
fontSize: 16, | ||
height: 1.0), | ||
overflow: TextOverflow.ellipsis, | ||
maxLines: 2, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was aiming to fit two rows onto a tile instead of just one. I agree that it looks off. I'll think about it...
As for the card design, I think it's a bit busy, but I can't really think of an alternative idea right now |
Regarding a downloads provider, I'm not sure there's really anything I can do there. As you noted, reading is already cleanly exposed with the download status provider, so that only leaves updating. The guts of that are already packed into downloadsService.deleteDownload(stub: item) and DownloadDialog.show(context, item, viewId), so the remaining logic is pretty tied into the exact UI. Any changes that match the downloadbutton UI that exactly would probably be better off as more parameters in that class. Also, I noticed that if one song is playing, and then you play a new one with the different theme, the new song has the old theme for a second during the transition. I think we probably shouldn't animate theme transitions at all for the song tiles, because unlike the player screen components each tile only ever has one theme, it's own. |
@Komodo5197 sorry for not getting back earlier :)
Thanks for your thoughts about the provider stuff, I'll see how best to integrate it then. |
Now that I think about it, we should already be pre-caching the full resolution covers of upcoming tracks, so it is possible to get the full-resolution cover right-away 🙈 |
@UnnKrigul1 thanks for the input! I'll make some changes and upload some new screenshots soon :) |
I've made a few changes now and updated the screenshots in the description. Let me know what you think! |
Looking nice! I would decrease the margin between upper and lower text row to like 4px, but otherwise perfect. Thanks! |
@Uno-Muno I've tried, but afaik the only way to do that is to limit the available height or add paddings, both which reduce the height available to the text. I can't make the tile easily grow to be taller, and if I use paddings then the second line of long titles will be cut off. |
20aa4bc
to
9ddfb4f
Compare
- also removed old list tile code
- hopefully this doesn't have a huge performance impact...
- also gets rid of duplicate gesture detectors and fixes incorrect menu themes
- also wait with applying the theme until accent color is available
- doesn't work well with new track list tile - other apps also show the artist always (Spotify, YT Music)
- uses Finamp's blue as a fallback until the correct accent color has been calculated - avoids pulsing/flashing effect on theme change
- also adjusted download indicator icons and size
@Komodo5197 I've increased font size of the track title and reduced the opacity of the artist name, is this better? Also, any other comments before I merge this? |
Okay, I tried it out again:
|
|
Made a few changes. Better now? |
Most of the fixes seem good.
|
|
Let's talk about showing the current playlist for non-queue tracks some other time. The current logic requires a FinampQueueItem, which I don't want to "fake", so we need some other logic anyway. But right now I'm not sure what makes the most sense, showing the current playlist at the top only if the track is part of the playlist (seems a bit random/unpredictable if you're not accessing the track through the playlist or queue), or showing the playlist even if the track is not part of the playlist (to make it easier to build playlists). Either way, I'll merge this now so that I can test out the full release version today and push the release tonight... |
I was just thinking about the highlighted playlist as a replacement/alternative to the removal path. So all queue items would use their queue info to allow easy removal from the playlist used to add them, if possible. And then on playlist screen, using the favorite button would be an alternative way to remove songs from that playlist instead of long pressing, to match the player screen flow. But yeah, that would involve re-arranging all the arguments to everything a bit. |
I don't really understand your first point about the "removal from the playlist used to add them", could you explain? But making it more efficient to remove tracks from playlists is a separate issue I think. We need to improve the playlist management functionality anyway, to include renaming, reordering, and deleting playlists, and when we do this we can add buttons for more easily adding and removing tracks from playlists. |
The existing functionality of the add to playlist popup is that when opened on player screen, it looks at the queue item source and if it was a playlist, that playlist gets pushed up above the fold with the favorites button. This is intended to make it easier to remove the song from the currently playing playlist, as opposed to having to locate that playlist in the list of all playlists yourself or go through the song menu. I'm just thinking about getting that working in more scenarios now that the favorites/add to playlist button is present in more scenarios. The extension to any item in the queue seems very natural, as you can just feed in the relevant queue items. The "playlist used to add them" phrasing is just because the playlist in the queue item source isn't necessarily what's currently playing if you added multiple playlists to the queue. This makes sense, as the source has the correct playlist which is most relevant to the track in this context. And then this same behaviour of pushing a playlist up would make sense when opening the add to playlist menu on a track on the playlist screen, but this time showing the playlist whose screen you're on, because that's the relevant context playlist the user might want to remove the song from. This makes more consistent, as the same playlist removal flow that works on the player screen would also work on the playlist screen now that it has the same favorite button. But it would also take a bit more code fanangling than the queue would. |
Okay now I get it. I was actually surprised that this isn't yet the case on the playlist screen, and I agree that it would make a lot of sense here! We should probably change the API a bit. While just throwing in a |
Finally got around to redesign the track/song list tile to make it consistent, fit two lines of text and use a track-based accent color.
There's now also a favorite indicator / playlist selector button, just like in the design.
Some features, like the download indicator, are still missing. But those require some other changes and a finalized concept anyway, so I left them out for now.
I also updated the dismiss indicator and added text that describes what happens when dismissed, and allocated a dedicated space for the fast scroller instead of overlaying it
If this redesign doesn't have at least feature parity (all features that the old design had), please let me know!
TODO
old screenshots