Desktop client is reloading while being in a call
How to use GitHub
- Please use the 👍 reaction to show that you are affected by the same issue.
- Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
- Subscribe to receive notifications on status change and new comments.
Steps to reproduce
- Yesterday I had a call with a coworker
- I started updating our instance
- After the update I saw the notification in the top right that it needed a reload
Expected behaviour
After ending the call the next click on "start call"/"join call" or another conversation reloads, just like in the web
Actual behaviour
It reloaded while I was still in the call, interrupting the experience.
Desktop client
----------------------------System report----------------------------
Nextcloud Talk Desktop version 0.12.0
- Built with Nextcloud Talk version 17.1.1
Connected to:
- Server address: https://cloud.nextcloud.com
- Nextcloud Server version 27.1.3
- Nextcloud Talk version 17.1.1
OS: Linux 6.5.0-10-generic (#10-Ubuntu SMP PREEMPT_DYNAMIC Fri Oct 13 13:49:38 UTC 2023)
----------------------------System report----------------------------
Server
Nextcloud version: 27.1.2, now 27.1.3
Talk app version: 17.1.1
After ending the call the next click on "start call"/"join call" or another conversation reloads, just like in the web
This behavior seems very unclear. A user has no clue what actions are allowed and what action will be performed on a click.
When I click "join a call" I want to either join it or see any message that explains what I haven't joined the call. The same with the conversations list.
It might be not so problematic on the web where reload current page on a link click is fine. But on desktop, a full restart of an application with all its windows doesn't seem so to me.
I think we can show some very visible notification with a reload button and maybe intercept some actions.
What is not clean for me — what actions we do and do not want to allow doing without a reload. Or what is the criteria of allowing an action with an updated server?
For example:
- Allowed:
- Being in the current call
- Messages, reactions, and etc. in the current call
- Receive notifications
- Not allowed:
- Open another conversation
- Join a call in the current conversation
- Receive updates in the conversations list
- I don't remember or undefined:
- Delete messages
- Mark conversation as read or unread
- Create a new conversation
- Join a new conversation
- Add participants
When I click "join a call" I want to either join it or see any message that explains what I haven't joined the call. The same with the conversations list.
In the browser the "join/start call" button is disabled when this is a case and telling you it needs a reload: https://github.com/nextcloud/spreed/blob/b9c0f8318519ce7421b76c42d3d69927d1230566/src/components/TopBar/CallButton.vue#L235-L242
Well basically everything but staying in the current state can be an issue. So when deleting a message, writing a message, making a reaction or something alike fails we should prompt for the pending reload. If they still work, fine by me. Switching a conversation and joining a call have to actively be intervened because the dirty mark could be that turn, stun, hpb, recording or other server settings where changed and you need to use another server for the calls, etc.
This happened to me multiple times yesterday when configuring the new beta features on our cloud in a coworking call.
In the meantime it's not even reloading anymore, but simply closing.