Skip to content

Conversation

@ipavlidakis
Copy link
Contributor

🔗 Issue Links

Resolves https://linear.app/stream/issue/IOS-1308/featureallow-calls-to-not-be-shown-in-recents

🎯 Goal

Allow CallKit calls to skip Recents.

☑️ 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 self-assigned this Dec 10, 2025
@ipavlidakis ipavlidakis requested a review from a team as a code owner December 10, 2025 13:47
@ipavlidakis ipavlidakis added the enhancement New feature or request label Dec 10, 2025
@github-actions
Copy link

Public Interface

 open class CallKitAdapter  
-   open var callSettings: CallSettings?
+   open var includesCallsInRecents: Bool
-   public var availabilityPolicy: CallKitAvailabilityPolicy
+   open var callSettings: CallSettings?
-   public var streamVideo: StreamVideo?
+   public var availabilityPolicy: CallKitAvailabilityPolicy
-   
+   public var streamVideo: StreamVideo?
- 
+   
-   public init()
+ 
-   
+   public init()
- 
+   
-   open func registerForIncomingCalls()
+ 
-   open func unregisterForIncomingCalls()
+   open func registerForIncomingCalls()
+   open func unregisterForIncomingCalls()

 open class CallKitService: NSObject, CXProviderDelegate, @unchecked Sendable  
-   open var missingPermissionPolicy: CallKitMissingPermissionPolicy
+   open var includesCallsInRecents: Bool
-   open internal lazy var callController
+   open var missingPermissionPolicy: CallKitMissingPermissionPolicy
-   open internal lazy var callProvider
+   open internal lazy var callController
-   
+   open internal lazy var callProvider
- 
+   
-   override public init()
+ 
-   
+   override public init()
- 
+   
-   open func reportIncomingCall(_ cid: String,localizedCallerName: String,callerId: String,hasVideo: Bool = false,completion: @Sendable @escaping (Error?) -> Void)
+ 
-   open func callAccepted(_ response: CallAcceptedEvent)
+   open func reportIncomingCall(_ cid: String,localizedCallerName: String,callerId: String,hasVideo: Bool = false,completion: @Sendable @escaping (Error?) -> Void)
-   open func callRejected(_ response: CallRejectedEvent)
+   open func callAccepted(_ response: CallAcceptedEvent)
-   open func callEnded(_ cId: String,ringingTimedOut: Bool)
+   open func callRejected(_ response: CallRejectedEvent)
-   open func callParticipantLeft(_ response: CallSessionParticipantLeftEvent)
+   open func callEnded(_ cId: String,ringingTimedOut: Bool)
-   open func providerDidReset(_ provider: CXProvider)
+   open func callParticipantLeft(_ response: CallSessionParticipantLeftEvent)
-   open func provider(_ provider: CXProvider,didActivate audioSession: AVAudioSession)
+   open func providerDidReset(_ provider: CXProvider)
-   public func provider(_ provider: CXProvider,didDeactivate audioSession: AVAudioSession)
+   open func provider(_ provider: CXProvider,didActivate audioSession: AVAudioSession)
-   open func provider(_ provider: CXProvider,perform action: CXAnswerCallAction)
+   public func provider(_ provider: CXProvider,didDeactivate audioSession: AVAudioSession)
-   open func provider(_ provider: CXProvider,perform action: CXEndCallAction)
+   open func provider(_ provider: CXProvider,perform action: CXAnswerCallAction)
-   open func provider(_ provider: CXProvider,perform action: CXSetMutedCallAction)
+   open func provider(_ provider: CXProvider,perform action: CXEndCallAction)
-   open func requestTransaction(_ action: CXAction)async throws 
+   open func provider(_ provider: CXProvider,perform action: CXSetMutedCallAction)
-   open func checkIfCallWasHandled(callState: GetCallResponse)-> Bool
+   open func requestTransaction(_ action: CXAction)async throws 
-   open func setUpRingingTimer(for callState: GetCallResponse)
+   open func checkIfCallWasHandled(callState: GetCallResponse)-> Bool
-   open func didUpdate(_ streamVideo: StreamVideo?)
+   open func setUpRingingTimer(for callState: GetCallResponse)
+   open func didUpdate(_ streamVideo: StreamVideo?)

@sonarqubecloud
Copy link

@ipavlidakis ipavlidakis merged commit dd7de08 into develop Dec 11, 2025
3 of 5 checks passed
@ipavlidakis ipavlidakis deleted the iliaspavlidakis/ios-1308-featureallow-calls-to-not-be-shown-in-recents branch December 11, 2025 09:53
@Stream-SDK-Bot
Copy link
Collaborator

SDK Size

title develop branch diff status
StreamVideo 8.98 MB 8.98 MB 0 KB 🟢
StreamVideoSwiftUI 2.38 MB 2.38 MB 0 KB 🟢
StreamVideoUIKit 2.5 MB 2.5 MB 0 KB 🟢
StreamWebRTC 11.02 MB 11.02 MB 0 KB 🟢

@Stream-SDK-Bot
Copy link
Collaborator

StreamVideo XCSize

Object Diff (bytes)
CallKitAdapter.o +684
CallKitService.o +462

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants