[Enhancement]Allow CallKitService to handle multiple calls
🎯 Goal
Simplify, verify and improve Calling state observation and reaction, from CallKit.
📝 Summary
The PR is improving the existing CallKitService by allowing it to handle multiple calls at the same time. This is quite important as while in a call, user may receive another incoming call. CallKitService should be able to reliably report each of those calls and differentiate user action on a call from the others.
🛠 Implementation
Calls are being received in a serial manner. For that purpose we are using a Stack implementation. The first entry on the stack will always be the latest call (active or ringing).
🎨 Showcase
https://github.com/GetStream/stream-video-swift/assets/472467/b6f06d61-ea0d-4549-b0a9-2848acc5c112
🧪 Manual Testing Notes
Explain how this change can be tested manually, if applicable.
☑️ Contributor Checklist
- [x] I have signed the Stream CLA (required)
- [x] This change follows zero ⚠️ policy (required)
- [x] This change should receive manual QA
- [ ] Changelog is updated with client-facing changes
- [x] New code is covered by unit tests
- [ ] Comparison screenshots added for visual changes
- [ ] Affected documentation updated (Docusaurus, tutorial, CMS)
Quality Gate passed
Issues
21 New issues
0 Accepted issues
Measures
0 Security Hotspots
63.4% Coverage on New Code
0.2% Duplication on New Code