nextcloud / desktop

💻 Desktop sync client for Nextcloud
https://nextcloud.com/install/#install-clients
GNU General Public License v2.0
3.05k stars 801 forks source link

[Bug]: system-tray icon poorly distinguishes between offline and all-synced. #6196

Open paulmillar opened 1 year ago

paulmillar commented 1 year ago

⚠️ Before submitting, please verify the following: ⚠️

Bug description

When running, the Nextcloud desktop client shows a small icon in the KDE task bar, showing the outline of a cloud symbol with a small circle in the lower-right corner. This icon changes, depending on the status of the client; in particular, the small circle changes depending on the current status. For example, when the client is "offline" then the circle shows three dots on a grey background, and when the client is "logged in" and everything is synced then the small circle is green with a white tick symbol.

There are circumstances where the sync client was previously "online", but has become "offline" autonomously (i.e., not as a result of user interaction). From my experience, this can happen if the sync client fails to connect to the server (due to DNS resolving problems) or the access token has somehow expired. Under both these circumstances, the user manually logging in resolves the problem.

If the user believes the sync client is working correctly and the client goes "offline" autonomously (for whatever reason) then the user is left with the false impression that their work is being kept in-sync with the desktop. If the user is relying on the sync client working correctly then this false impression is very problematic.

Currently, there is no explicit warning (e.g., a pop-up dialogue) that indicates that the sync client has changed (autonomously) from online to offline, due to a problem. Instead, this information (that the sync client is now offline) is relayed by a change in the taskbar icon.

The problem is that the change in the icon is too subtle to be obvious, unless someone looked very closely. (I've failed to notice this change on multiple occasions).

One relatively simple fix for this would be to make the different icons (offline, online-and-synced, ...) more distinct.

Another possible enhancement would be to distinguish between two offline states: offline-because-of-user and offline-because-of-a-problem. The icon for offline-because-of-a-problem could then be much more attention-grabbing, featuring typical warning colours (e.g., red / orange / yellow), because this is likely something the user would like to know about.

One might argue that sync-clients going offline autonomously is an indication of some other fault; that fault should be fixed. However, I think fixing the icon to make the offline status more prominent would be a relatively easy to do, with a significant benefit.

Steps to reproduce

The trigger was somehow randomly triggered, so I have given a few examples of how to trigger this behaviour.

Method 1: suspend and resume laptop:

  1. Have laptop connected to WIFI, with sync client running, with green tick icon (state "last sync successful.")
  2. Suspend laptop (e.g., close lid).
  3. Resume laptop (e.g., open lid).

You may need to repeat this several times to trigger the problem, as it seems to be a race-condition, perhaps with the sync-client attempting to DNS-resolve the server and the network not yet fully established.

Method 2: trigger a bad sync problem.

  1. On a laptop, disconnect from WIFI AP.
  2. Left-click on the sync-client icon, select "Sync now"; the icon turns red, indicating a sync problem.
  3. Reconnect to WIFI AP.
  4. The sync-client icon now turns grey/offline. Mouse hover over the icon shows "Network error Host not found".

Method 3: revoke device token

  1. Log into server's web interface
  2. Select user profile icon (top-right corner)
  3. Select "Security" from left menu-bar
  4. Under "Devices & sessions" section, identify the sync-client
  5. Select the "..." icon to open up the device-specific actions.
  6. Select "Revoke"
  7. Select the sync-client icon from the KDE task bar.
  8. Select the "Sync now" button.

Expected behavior

I would expect the offline icon to be much more distinct from the "online and everything's working" icon.

It might be helpful if the red circle icon was used to indicate that the client is offline (i.e., no syncing will take place) and that this happened because of some error was encountered (i.e., not because the user chose to put the client into offline mode). ...

Which files are affected by this bug

a PDF presentation that was not synced when expected.

Operating system

Linux

Which version of the operating system you are running.

Debian GNU/Linux 12 (bookworm)

Package

Distro package manager

Nextcloud Server version

You tell me. The server web interface doesn't seem to provide this information.

Nextcloud Desktop Client version

3.7.3-1

Is this bug present after an update or on a fresh install?

Fresh desktop client install

Are you using the Nextcloud Server Encryption module?

Encryption is Disabled

Are you using an external user-backend?

Nextcloud Server logs

I am not running the Nextcloud server, so do not have access to the log files.

Additional info

No response

paulmillar commented 1 year ago

This is the requested debug archive, taken when triggering the problem using method 3 (see above) by revoking the sync-client's token:

method-3.zip

vectorjohn commented 8 months ago

The entire system tray icon concept needs to be redone. System tray icons can't show you an abstract symbol that means "synced" because many running apps may be "synced", and so you can't tell what it means. It's just a random picture of a checkmark or whatever.

The icon needs to represent "Nextcloud", not the state of nextcloud. Optionally it could also have a picture indicating the state, but the icon itself needs to represent Nextcloud.

This is an accessibility / usability bug. The systray icon should be the Nextcloud logo on every system.

paulmillar commented 8 months ago

For reference, here's part of my system tray: image

Just as a comparison, the green icon next to the nextCloud icon is from Skype. It uses a red dot to indicate unread messages. The red dot goes away when all messages are read. This provides a simple binary indication of the internal state of the software (there are unread messages vs no unread messages).

A similar approach could be taken by nextCloud. The logo is always shown, but there may be an overlay symbol (a warning triangle, for example). The overlay symbol's presence identifying where there is (or is not) currently a problem. If there is no problem then only the nextCloud logo is shown.

Visually, it should be relatively easy to distinguish between these two states. The user would need to investigate to understand the nature of the problem (sync/conflict problem, unable to connect, etc ...). The nextCloud system tray icon could help; e.g., right-click brings up the context menu, which briefly describes the error.