After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 704257 - Visible content loading
Visible content loading
Status: RESOLVED FIXED
Product: gnome-music
Classification: Applications
Component: general
unspecified
Other Linux
: High normal
: 3.16
Assigned To: gnome-music-maint
gnome-music-maint
available
: 708063 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2013-07-15 14:41 UTC by Allan Day
Modified: 2015-02-28 15:12 UTC
See Also:
GNOME target: 3.16
GNOME version: ---



Description Allan Day 2013-07-15 14:41:46 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.
Comment 1 Vadim Rutkovsky 2013-07-17 12:26:17 UTC
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
Comment 2 Arnel Borja 2013-07-18 14:31:23 UTC
For albums view: https://bugzilla.gnome.org/show_bug.cgi?id=702565
Comment 3 Arnel Borja 2013-08-19 07:00:32 UTC
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.
Comment 4 Vadim Rutkovsky 2013-09-30 09:25:31 UTC
*** Bug 708063 has been marked as a duplicate of this bug. ***
Comment 5 Allan Day 2014-04-23 09:17:08 UTC
(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.
Comment 6 Vadim Rutkovsky 2014-04-23 09:25:28 UTC
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
Comment 7 Allan Day 2014-11-18 16:58:33 UTC
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.
Comment 8 Allan Day 2014-11-18 17:02:22 UTC
Setting this as a 3.16 target, as it is quite obvious and detracts from the initial out of the box experience.
Comment 9 Jakub Steiner 2014-11-20 13:57:30 UTC
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.
Comment 10 Vadim Rutkovsky 2015-01-07 11:47:23 UTC
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
Comment 11 Vadim Rutkovsky 2015-01-19 12:02:45 UTC
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
Comment 12 André Klapper 2015-02-22 21:14:37 UTC
(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?
Comment 13 Vadim Rutkovsky 2015-02-28 15:12:56 UTC
(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