GNOME Bugzilla – Bug 775239
Show indicator if there is prolonged waiting time when joining rooms
Last modified: 2017-11-15 10:30:42 UTC
Created attachment 340911 [details] mockup for integrating new room states to the sidebar. There is a variety of room states that we currently don't handle. Large rooms might take longer than expected to join. We currently show a spinner to indicate that we are connecting to the server, but there is no indication that Polari is working while we are in the intermediate state of joining rooms. Furthermore, some rooms are joined quicker than others. If we attempt to join a room and fail we also need to have some error handling in place so that attempts can be made to join the room again later. Lastly it is possible that a room can require a password in order to enter and this would be nice to handle as well. The attached mockup attempts to address these issues by adding new room states to the eventBox we use for displaying notifications in the sidebar. The mockup also illustrates how error handling and password handling could be handled with the use of infobars.
After talking to florian we decided to split this bug into several. I filed a bug 775256 to cover the error message issue. Bug 775250 covers showing a spinner in the userList button while joining a room. Bug 775256 covers displaying error messages if we fail to join a room. This bug will just focus on the problem that large rooms might take longer than expected to join for now.
Created attachment 341084 [details] [review] roomList: show indicator while channel is ensured After connecting to the network, rooms often take some time before they are joined. Show a "content-loading" symbol next to each room if the room takes more than 3 seconds to ensure.
Note to self: there is a bug currently in the patch. in some cases the indicator doesn't disapear once the room has been joined.
Created attachment 341089 [details] [review] roomList: show indicator while channel is ensured So turns out i forgot to check if the channel existed inside the timeout loop itself. If a channel came to existence in-between the check and the start of the timeout loop, the channel would end up with the content-loading indicator even though the room was joined. After connecting to the network, rooms often take some time before they are joined. Show a "content-loading" symbol next to each room if the room takes more than 3 seconds to ensure.
Created attachment 341175 [details] [review] roomList: show indicator while channel is ensured Another update: Realized that we probably want to cover the case where you join the room after you connected to the server as well. After connecting to the network, rooms often take some time before they are joined. Show a "content-loading" symbol next to each room if the room takes more than 3 seconds to ensure.
Created attachment 362454 [details] [review] roomList: Show indicator while channel is ensured Sorry this fell through the cracks. Overall looks good to me - if we still want this, I rebased the patch to master and fixed some minor issues (disconnect a signal, updated coding style, whitespace issues).
Review of attachment 362454 [details] [review]: ::: src/roomList.js @@ +93,3 @@ } + _getConnectionStatus() { This could be moved outside the class as a helper function and be shared instead of duplicating the code
Created attachment 363372 [details] [review] roomList: Show indicator while channel is ensured Rebased to master.
Attachment 363372 [details] pushed as e3b1682 - roomList: Show indicator while channel is ensured I ran the patch by Jakub and he likes it, so I merged it for 3.27.2: https://gitlab.gnome.org/GNOME/polari/merge_requests/19