[Discussion] How to show error states

We talked about showing error states in another way than toasts for a while but we never discussed how to show this visually. So here are some ideas:

Idea #1: Add text below the title:



Idea #2: Put it in the menu and show a red icon on the menu if there was an error connecting


inside the menu, have an item “:exclamation:Status”

While there is no network, I wouldn’t put any warning sign there because otherwise users would wonder what is wrong. And while there is network, we are not connected and there was no error (i.e. we are currently connecting or the network is flaky) we could put a rotating circle there, just as we do for pending messages.

Idea #3: Replace the title

instead of writing “Delta Chat” there, we could also write sth. else. This would be the easiest to implement by far, the problem is: As the text is so big, we can’t write much text there.

4 Likes

I like idea #1 mainly images 1 and 2.

Idea #2 means more taps (in “three dots” menu and then in menu item) I would avoid this option.

Just thoughts, good master Hocuri. It would be good if mail account in use (small) would be displayed there. (Maybe also good place to display notification of status of other email accounts there, if such is possible), and maybe “contact-request”-note

1 Like

i’d say both #1 and #2 are fine, depends a bit how hard that is to implement, #2 might be a bit tricky, but that would be my favorite, also because of it is clearer where to access the “status” if there is no error (see next paragraph).

in general, the idea is to have a “Status” option in the main menu, that shows the errors, if there are some, but is also useful when there are no errors (“connected since”, “number of messages delivered last week”, sth. like that). The idea is that the status page comes from core as a html - this way, we can easily improve and enhance that without always thinking about at least 3 ui-implementations.

for the subtitle, it is probably better for the beginning not to try to put too many concrete connection information there, sth. as “Waiting for network”, “trying to connect” etc. has issues on its own.

as a first iteration i would just go for a “has connection error” state with the values yes/no.

1 Like

I like the second idea :+1:

1 Like

The 3 images were meant to belong together :slight_smile: but of course we can realize images 1 and 2 but modify what happens on error (image 3)

I think 3 states (Connected, Not connected, error) would be nice, so that the user can be sure DC is connected. If we only have 2 states (error/no error) then the user won’t know if we are connected or DC is still trying to build up a connection.

If we make an FFI with two 2 states and then switch to 3 later, this will be another FFI or a breaking change, so I think we should do it from the beginning.

Doing:

if core says "connected": everyting fine, do nothing
else if there is no network: "Waiting for network..."
else if core says "error": "! Not connected" (or red exclamation mark, if we go for idea #2)
else "Connecting..." (or rotating dotted circle, as we have it for pending msgs, if we go for idea #2)

sounds pretty straightforward and not too much work for me.

BTW we can decide for a way to show the error state (e.g. my idea #1 to #3) independently of how many error states to show: If we decide for Idea #2 and 3-state just put a rotating dotted circle (as for pending messages) instead of "Connecting..."

+1

I also like the idea of a Status, which opens a page displaying your provider, whether it is connected or not etc., some troubleshooting information. And a badge hinting to look there, both on the “three dots” like an and on the menu item, to guide user where to look.

This would be really useful, especially when we have true multi-account support. I would even remove the “Delta Chat” title completely and replace it with avatar and username, and open profile editing page when clicked.

3 Likes

@link2xt that sounds like a really useful UX improvement +1

@Hocuri I also think it would be good to have more states for the status, knowing if the app is actually connected is some old users request:
Make connection status more visible

sure.

with “issues on its own” i was thinking more about how core can differ between “connection error” and “not connected now, but probably in a few seconds”. this “no network” is known to be tricky, in flaky situations, this may change several times a second.

however, i would probably be find with more states in the ui, depends a bit what the core can provide reliably with reasonable effort. we will see what we can get actually :slight_smile: