GNOME Bugzilla – Bug 704257
Visible content loading
Last modified: 2015-02-28 15:12:56 UTC
Content and user interface elements appear at different times while browsing. It looks like the elements become visible as they are loaded. This is visible in quite a few places: * When I launch Music, the Album grid progressively fills up one album at a time (sometimes, I get one album, then a very noticeable pause, then the rest of the albums appear). * If I open an album, the tracks appear one at a time, so that the list fills down. This is particularly nasty because the duration column moves around as it is populated. * In the artist view, if I select an artist, the default artwork appears and then switches to the actual album art. Then the tracks for each album are introduced. This kind of behaviour isn't very nice. It looks distracting and feels unpolished. Ideally loading should be fast enough that there is no noticeable delay before content is displayed. If that's not possible, wait until everything is ready and then display it at the same moment.
Here's the proposed solution for each point: 1) The best solution would be initially prefill albums view with stubs for album art and updating their image when artwork is available arnel changed this behaviour, contact him for details 2) We should wait for grilo query to finish, but I'm not sure if grilo has some kind of signal 'no more tracks in this query'. A fallback solution - make a new query with a count of tracks for album and count adding tracks. After all tracks were added, show the widget. jasuarez might help with this. 3) Similar to point 2 - show artist albums only when they're really ready
For albums view: https://bugzilla.gnome.org/show_bug.cgi?id=702565
Maybe we could show a "Loading" view instead when we select an album in Albums view until all songs of the album is loaded? Also, maybe we could show it in Artists view too when a new artist is selected? I think this is how gnome-documents handles this. Also, maybe we could delay adding of the items in the views, like 5 albums at a time in Albums view. That would decrease the redraws too.
*** Bug 708063 has been marked as a duplicate of this bug. ***
(In reply to comment #3) > Maybe we could show a "Loading" view instead when we select an album in Albums > view until all songs of the album is loaded? Yes, that would work: you could either show a progress spinner in the middle of the view until it is ready, or over the portion of the view that will contain the track list. This is a sub-optimal solution of course - ideally it would be fast enough that we wouldn't need this. > Also, maybe we could show it in > Artists view too when a new artist is selected? I think this is how > gnome-documents handles this. Yep. > Also, maybe we could delay adding of the items in the views, like 5 albums at a > time in Albums view. That would decrease the redraws too. This is something that chunked loading is supposed to help with - see bug 699832.
Okay, some technical notes on this: display Loading screen (see gnome-documents) while remaining passed from grilo is not 0. Then we should show the view. Considering recent progress in albumart cache its gonna be pretty fast except for the first run. The speed also depends on the number of mistagged albums (we keep on trying to resolve them on each run) - probably we should have a blacklist for those
I'll try and specify how loading should work in the album view... First, the content grid should be visible as soon as the album view is visible, and it should include the album names and artwork right from the start [1]. If no album art is available, or it is in the process of being loaded, placeholders can be used instead of the album artwork. Like this: https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/music/music-albums-no-artwork.png This minimises the amount of movement in the UI, making it stable and non-distracting. Then, if it is necessary to progressively display the album art as it is loaded: 1. Try to load the artwork in the visible section of the view first. 2. Fade in the artwork, rather than having a sudden transition. [1] If this isn't possible, such as on first run, we could introduce an additional loading view - let me know if you need designs for that. It would be nice to try and avoid this though.
Setting this as a 3.16 target, as it is quite obvious and detracts from the initial out of the box experience.
I think we should make a distinction between "album art loading" and "album art not available"... For the former, we should be using content-loading-symbolic. The fading would be a great touch, indeed.
Current status: (In reply to comment #7) > I'll try and specify how loading should work in the album view... > > First, the content grid should be visible as soon as the album view is visible, This one is in progress - usually works okay, but sometimes grid takes some time to display, I'll investigate what's happening here. Artists albums are still in todo. > and it should include the album names and artwork right from the start [1]. If > no album art is available, or it is in the process of being loaded, > placeholders can be used instead of the album artwork. Done, we're using 'content-loading-symbolic' for artwork being fetched and 'folder-music-symbolic' for the missing covers. > 2. Fade in the artwork, rather than having a sudden transition. Allan, Jakub, what other apps use similar transitions for thumbnails? Couldn't find any simple example to start with > [1] If this isn't possible, such as on first run, we could introduce an > additional loading view - let me know if you need designs for that. It would be > nice to try and avoid this though. Messing with visible range of icons used to slow down Music a lot, probably we'll have to use GtkInfoBar - or implement chunked scrolling correctly
Pushed https://git.gnome.org/browse/gnome-music/commit/?id=d2b190d to master: this would make sure that albums on artists view are displayed only when they are ready. Remaining TODO: 1. Add GtkNotification when it takes too long 2. Refactor All Artist albums to make it blazing fast
(In reply to Vadim Rutkovsky from comment #11) > Remaining TODO: > 1. Add GtkNotification when it takes too long > 2. Refactor All Artist albums to make it blazing fast Vadim: Any plans (or capacity) to work on this for 3.16? Or is that post 3.16?
(In reply to André Klapper from comment #12) > (In reply to Vadim Rutkovsky from comment #11) > > Remaining TODO: > > 1. Add GtkNotification when it takes too long > > 2. Refactor All Artist albums to make it blazing fast > > Vadim: Any plans (or capacity) to work on this for 3.16? > Or is that post 3.16? This is now fixed in 3.16: 1) GtkNotification for loading, which takes longer than half a second, now displayed 2) All Artists is now 'fixed' with not being selected by default - Artists tab loads instantly, user has to select the artist manually