Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Fix]Accepting call on another device will sync state with CallViewModel #640

Conversation

ipavlidakis
Copy link
Collaborator

🔗 Issue Links

Resolves https://linear.app/stream/issue/IOS-673/[support]user-accepts-ringing-call-in-one-device-in-app-incoming

📝 Summary

When a user accepts a ringing call from one device, on all their other devices correctly dismiss CallKit push notification but they do not update CallViewModel's internal state, resulting in the in-app incoming call to remain on screen.

🧪 Manual Testing Notes

  • Have a user login on two different devices (and keep the app in the foreground)
  • Have another user ring the user from the first step
  • Both devices should present CallKit push notification and in-app incoming call
  • Accept the call on one device
  • The other device, should dismiss CallKit push notification and in-app incoming call screen.

☑️ Contributor Checklist

  • I have signed the Stream CLA (required)
  • This change follows zero ⚠️ policy (required)
  • This change should receive manual QA
  • Changelog is updated with client-facing changes
  • New code is covered by unit tests
  • Comparison screenshots added for visual changes
  • Affected documentation updated (tutorial, CMS)

@ipavlidakis ipavlidakis added the bug Something isn't working label Jan 23, 2025
@ipavlidakis ipavlidakis self-assigned this Jan 23, 2025
@ipavlidakis ipavlidakis requested a review from a team as a code owner January 23, 2025 14:37
@Stream-SDK-Bot
Copy link
Collaborator

Stream-SDK-Bot commented Jan 23, 2025

SDK Size

title develop branch diff status
StreamVideo 7.38 MB 7.38 MB 0 KB 🟢
StreamVideoSwiftUI 2.07 MB 2.07 MB 0 KB 🟢
StreamVideoUIKit 2.21 MB 2.21 MB 0 KB 🟢
StreamWebRTC 9.85 MB 9.85 MB 0 KB 🟢

case .incoming where event.user?.id == streamVideo.user.id:
break
case let .incoming(incomingCall)
where event.callCid == callCid(from: incomingCall.id, callType: incomingCall.type) && event.user?.id == streamVideo.user
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I simply aligned the implementation with how we are doing it on reject

@ipavlidakis ipavlidakis enabled auto-merge (squash) January 24, 2025 11:07
@ipavlidakis ipavlidakis merged commit 838c507 into develop Jan 24, 2025
14 checks passed
@ipavlidakis ipavlidakis deleted the fix/accepting-call-on-another-device-dismisses-updates-callviewmodel-state branch January 24, 2025 11:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants