talk-android icon indicating copy to clipboard operation
talk-android copied to clipboard

No call indicator

Open schiessle opened this issue 10 months ago • 7 comments

Steps to reproduce

  1. Somene starts a group call
  2. Open the talk app
  3. 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

schiessle avatar Feb 28 '25 09:02 schiessle

@rapterjet2004 seems like your fix November is broken with one of the latest releases :(

schiessle avatar Feb 28 '25 09:02 schiessle

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.

schiessle avatar Feb 28 '25 10:02 schiessle

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 avatar Mar 11 '25 09:03 mahibi

@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.

schiessle avatar Mar 11 '25 14:03 schiessle

i could reproduce and have some ideas how to solve it. thanks for the hint!

mahibi avatar Mar 11 '25 14:03 mahibi

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 hasCall flag and also analyzing the call system messages is the best approach for the chatview?!

mahibi avatar Mar 11 '25 17:03 mahibi

  • Conversations list: We check for hasCall property and add a call indicator similar to web

Image

  • Chat view: Whenever the user joins the room, we get an updated room object. We check hasCall and canStartCall properties to enable or disable call buttons https://github.com/nextcloud/talk-ios/blob/ae4ce348ddb1476cb37143fccb5129a826a2dfcc/NextcloudTalk/ChatViewController.swift#L403-L406 We also check for the call_started system 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 set hasCall to true and 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.

Ivansss avatar Mar 17 '25 11:03 Ivansss