No call indicator
Steps to reproduce
- Somene starts a group call
- Open the talk app
- Go to the room
Expected behaviour
- see the on-going call status as implemented here: https://github.com/nextcloud/talk-android/pull/4423
- I just see the message that someone started a call, other joined, chat messages but no indicator the the call is running and I can join
- Also in the room list there is no indicator that there is a running call in the room. Also here I would expect that similar to the web the room is moved to the top and shows a "running call" indicator
Actual behaviour
No indicator at all that a call is running, neither in the room list nor in the room itself
Device brand and model
Galaxy S24 Ultra
Android version
14
Nextcloud Talk app version
21.0.0
Nextcloud server version
31.0.0.18
Talk version
No response
Custom Signaling server configured
None
Custom TURN server configured
None
Custom STUN server configured
None
Android logs
No response
Server log
Additional information
No response
@rapterjet2004 seems like your fix November is broken with one of the latest releases :(
Strange, I had the problem earlier today in the sales call and also the last week in some other calls.
Now i started a test call with myself from the browser and opened the Talk app and the call indicator was there 😕 But this was now a room just with myself where I started the call in the browser and than looked at the Android app.
But only in the room itself, not in the list of chat rooms.
I can't reproduce the missing call indicator inside the room. @rapterjet2004 could you also try to reproduce?
Regarding the call indicator in the conversations list: When being in the conversations list while the call comes in, the list is not updated. Only when opening the app during ringing or after a pull down to refresh the conversation is moved to top and "Incoming call" is shown as the last message.
So it should be implemented:
- to refresh the list when a call notification comes in (so conversation is at the top)
- to show an icon in the upper right of the conversation avatar as long the call is running (because when there are messages written in the chat during a call, "Incoming call" would not be shown as last message..). This is already done for the iOS app.
@mahibi Just now I have the same problem at our company call. No running call indicator, neither in the chat nor in the room list.
i could reproduce and have some ideas how to solve it. thanks for the hint!
maybe @SystemKeeper or @Ivansss can tell how it's done on iOS? (Also i see the handling is also not perfect for the iOS app when i tested.) Do you analyze the system messages for calls? This is how it's done currently on android (Problem: only the messages in the adapter are currently analyzed. In calls with many messages, it may happen that the call started system message is not contained anymore so the call indicator would not be shown. Also there seem to be bugs which call system messages are taken into account to identify the most recent call message)
Approach with hasCall
I guess checking hasCall in the conversation would make sense.
-
For conversation list screen: problem -> currently this list is not yet automatically updated, so the call info may be outdated without a refresh. But makes sense to implement it and also implement the automatic updating soon.
-
For the chatview: in the chatview the conversation is only loaded every 30s so there would be a delay to show the info when being already in the chatview and a call starts. Same when the call ends, then it would be shown a bit too long that the call is running. So maybe a combination of the conversations
hasCallflag and also analyzing the call system messages is the best approach for the chatview?!
- Conversations list:
We check for
hasCallproperty and add a call indicator similar to web
- Chat view:
Whenever the user joins the room, we get an updated room object.
We check
hasCallandcanStartCallproperties to enable or disable call buttons https://github.com/nextcloud/talk-ios/blob/ae4ce348ddb1476cb37143fccb5129a826a2dfcc/NextcloudTalk/ChatViewController.swift#L403-L406 We also check for thecall_startedsystem message, in case the call was not started when entering the room. https://github.com/nextcloud/talk-ios/blob/ae4ce348ddb1476cb37143fccb5129a826a2dfcc/NextcloudTalk/NCChatController.m#L451-L455 If we receive that system message, we sethasCalltotrueand the call buttons get enabled. We do not show any special indicator when a call is ongoing and the user is in the chat view.