Design pattern for synchronization status
Currently, GNOME apps provide no feedback about data being synchronized, which means that there is no feedback in several cases that would need it, like:
- web service is down: content is not synced and might even be lost in some cases
- synchronization has been performed, but many minutes ago: example for Calendar events not appearing
- synchronization failed because of an internal error (403, 500 etc.): user should be able to know the reason
Basically, it would be essential for all GNOME apps to give feedback about the synchronization status, like:
- status: offline, online, error, syncing, disabled (e.g. for future "power saving modes", metered connections...) etc.
- when last synchronization occurred: maybe not exposed by default, but visible on click/tooltip etc.; using relative times, like "5 minutes ago", might work better
- detailed error information on request (implemented e.g. on click on the state)
- force synchronization: useful in several cases, especially given how many apps have long synchronization intervals
An idea would be a simple, unobtrusive circle with a color code (e.g. green = working, red = error, gray = disabled...) and a popover with details on synchronization on click. Alternatively a Nautilus-like solution might work, but takes more space.
In the meanwhile, making sure any change in the status is not distracting (e.g. slowly transitioning between the above colors instead of just changing them) is also essential, a point where most apps, especially older ones like Skype, failed.
Something on the headerbar color scheme (e.g. normal color, but darker gray and offline icon on error/offline/etc.) would also be nice and somewhat innovative, though it would be up to the theme to provide this service correctly (and most themes would not).