Skip to content

fix(call): do not ring for the push of the call the user is in - #6953

Open
ToteMeiSter wants to merge 1 commit into
nextcloud:masterfrom
ToteMeiSter:pr/call-own-call-push-no-ring-1
Open

ToteMeiSter wants to merge 1 commit into
nextcloud:masterfrom
ToteMeiSter:pr/call-own-call-push-no-ring-1

Conversation

@ToteMeiSter

Copy link
Copy Markdown
Contributor

A call push for the call the user already is in (for example after the other side rejoined) showed the full-screen incoming call and played the ringtone until the first answer of getPeersForCall removed it, and showed a missed call when that request failed.

Changes:

  • ApplicationWideCurrentRoomHolder.isInCallOfRoom(roomToken, userId): the app is in a call, and the current room and account match.
  • NotificationWorker: a TYPE_CALL push for that room and account is dropped before anything is shown. A push for another room or another account rings as before.

The account check is needed: a shared conversation has the same token for two accounts on the same server.

Fixes #6952

🖼️ Screenshots

🏚️ Before 🏡 After
Ringtone and full-screen incoming call during the own call No ring, no notification

🚧 TODO

  • Test on a device with the master build

🏁 Checklist

  • ⛑️ Tests (unit and/or integration) are included or not needed
  • 🔖 Capability is checked or not needed
  • 🔙 Backport requests are created or not needed: /backport to stable-xx.x
  • 📅 Milestone is set
  • 🌸 PR title is meaningful (if it should be in the changelog: is it meaningful to users?)

Tests: ApplicationWideCurrentRoomHolderTest, 4 cases (own call; other conversation; other account; room open but not in the call). Without the inCall check the last case fails.

🤖 AI (if applicable)

  • The content of this PR was partly or fully generated using AI

Trailers of the commit:

Assisted-by: Claude Code:claude-sonnet-5-5
Signed-off-by: Krainov Gleb <krajnov.g@kontentplus.ru>

🤖 Generated with Claude Code

A call push for the call the user already is in (for example after the
other side rejoined) showed the full-screen incoming call and played the
ringtone until the first answer of getPeersForCall removed it, and showed
a missed call when that request failed. Drop such a push before anything
is shown.

Assisted-by: Claude Code:claude-sonnet-5-5
Signed-off-by: Krainov Gleb <krajnov.g@kontentplus.ru>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

A call push for the call the user is already in rings over the call

1 participant