-
Notifications
You must be signed in to change notification settings - Fork 30
Implemented ring members in call view model #995
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
Draft
martinmitrevski
wants to merge
2
commits into
develop
Choose a base branch
from
ring-members-vm
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
+135
−5
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Generated by 🚫 Danger |
Public Interface public class Call: @unchecked Sendable, WSEventsSubscriber
- @discardableResult public func update(custom: [String: RawJSON]? = nil,settingsOverride: CallSettingsRequest? = nil,startsAt: Date? = nil)async throws -> UpdateCallResponse
+ @discardableResult public func ring(request: RingCallRequest)async throws -> RingCallResponse
- @discardableResult public func accept()async throws -> AcceptCallResponse
+ @discardableResult public func update(custom: [String: RawJSON]? = nil,settingsOverride: CallSettingsRequest? = nil,startsAt: Date? = nil)async throws -> UpdateCallResponse
- @discardableResult public func reject(reason: String? = nil)async throws -> RejectCallResponse
+ @discardableResult public func accept()async throws -> AcceptCallResponse
- @discardableResult public func block(user: User)async throws -> BlockUserResponse
+ @discardableResult public func reject(reason: String? = nil)async throws -> RejectCallResponse
- @discardableResult public func unblock(user: User)async throws -> UnblockUserResponse
+ @discardableResult public func block(user: User)async throws -> BlockUserResponse
- public func changeTrackVisibility(for participant: CallParticipant,isVisible: Bool)async
+ @discardableResult public func unblock(user: User)async throws -> UnblockUserResponse
- @discardableResult public func addMembers(members: [MemberRequest])async throws -> UpdateCallMembersResponse
+ public func changeTrackVisibility(for participant: CallParticipant,isVisible: Bool)async
- @discardableResult public func updateMembers(members: [MemberRequest])async throws -> UpdateCallMembersResponse
+ @discardableResult public func addMembers(members: [MemberRequest])async throws -> UpdateCallMembersResponse
- @discardableResult public func addMembers(ids: [String])async throws -> UpdateCallMembersResponse
+ @discardableResult public func updateMembers(members: [MemberRequest])async throws -> UpdateCallMembersResponse
- @discardableResult public func removeMembers(ids: [String])async throws -> UpdateCallMembersResponse
+ @discardableResult public func addMembers(ids: [String])async throws -> UpdateCallMembersResponse
- public func updateTrackSize(_ trackSize: CGSize,for participant: CallParticipant)async
+ @discardableResult public func removeMembers(ids: [String])async throws -> UpdateCallMembersResponse
- public func setVideoFilter(_ videoFilter: VideoFilter?)
+ public func updateTrackSize(_ trackSize: CGSize,for participant: CallParticipant)async
- public func setAudioFilter(_ audioFilter: AudioFilter?)
+ public func setVideoFilter(_ videoFilter: VideoFilter?)
- public func startScreensharing(type: ScreensharingType)async throws
+ public func setAudioFilter(_ audioFilter: AudioFilter?)
- public func stopScreensharing()async throws
+ public func startScreensharing(type: ScreensharingType)async throws
- public func eventPublisher(for event: WSEvent.Type)-> AnyPublisher<WSEvent, Never>
+ public func stopScreensharing()async throws
- public func subscribe()-> AsyncStream<VideoEvent>
+ public func eventPublisher(for event: WSEvent.Type)-> AnyPublisher<WSEvent, Never>
- public func subscribe(for event: WSEvent.Type)-> AsyncStream<WSEvent>
+ public func subscribe()-> AsyncStream<VideoEvent>
- public func leave()
+ public func subscribe(for event: WSEvent.Type)-> AsyncStream<WSEvent>
- public func startNoiseCancellation()async throws
+ public func leave()
- public func stopNoiseCancellation()async throws
+ public func startNoiseCancellation()async throws
- @MainActor public func currentUserCanRequestPermissions(_ permissions: [Permission])-> Bool
+ public func stopNoiseCancellation()async throws
- @discardableResult public func request(permissions: [Permission])async throws -> RequestPermissionResponse
+ @MainActor public func currentUserCanRequestPermissions(_ permissions: [Permission])-> Bool
- @MainActor public func currentUserHasCapability(_ capability: OwnCapability)-> Bool
+ @discardableResult public func request(permissions: [Permission])async throws -> RequestPermissionResponse
- @discardableResult public func grant(permissions: [Permission],for userId: String)async throws -> UpdateUserPermissionsResponse
+ @MainActor public func currentUserHasCapability(_ capability: OwnCapability)-> Bool
- @discardableResult public func grant(request: PermissionRequest)async throws -> UpdateUserPermissionsResponse
+ @discardableResult public func grant(permissions: [Permission],for userId: String)async throws -> UpdateUserPermissionsResponse
- @discardableResult public func revoke(permissions: [Permission],for userId: String)async throws -> UpdateUserPermissionsResponse
+ @discardableResult public func grant(request: PermissionRequest)async throws -> UpdateUserPermissionsResponse
- @discardableResult public func mute(userId: String,audio: Bool = true,video: Bool = true)async throws -> MuteUsersResponse
+ @discardableResult public func revoke(permissions: [Permission],for userId: String)async throws -> UpdateUserPermissionsResponse
- @discardableResult public func muteAllUsers(audio: Bool = true,video: Bool = true)async throws -> MuteUsersResponse
+ @discardableResult public func mute(userId: String,audio: Bool = true,video: Bool = true)async throws -> MuteUsersResponse
- @discardableResult public func end()async throws -> EndCallResponse
+ @discardableResult public func muteAllUsers(audio: Bool = true,video: Bool = true)async throws -> MuteUsersResponse
- @discardableResult public func blockUser(with userId: String)async throws -> BlockUserResponse
+ @discardableResult public func end()async throws -> EndCallResponse
- @discardableResult public func unblockUser(with userId: String)async throws -> UnblockUserResponse
+ @discardableResult public func blockUser(with userId: String)async throws -> BlockUserResponse
- @discardableResult public func goLive(startHls: Bool? = nil,startRecording: Bool? = nil,startRtmpBroadcasts: Bool? = nil,startTranscription: Bool? = nil)async throws -> GoLiveResponse
+ @discardableResult public func unblockUser(with userId: String)async throws -> UnblockUserResponse
- @discardableResult public func stopLive()async throws -> StopLiveResponse
+ @discardableResult public func goLive(startHls: Bool? = nil,startRecording: Bool? = nil,startRtmpBroadcasts: Bool? = nil,startTranscription: Bool? = nil)async throws -> GoLiveResponse
- public func stopLive(request: StopLiveRequest)async throws -> StopLiveResponse
+ @discardableResult public func stopLive()async throws -> StopLiveResponse
- @discardableResult public func startRecording()async throws -> StartRecordingResponse
+ public func stopLive(request: StopLiveRequest)async throws -> StopLiveResponse
- @discardableResult public func stopRecording()async throws -> StopRecordingResponse
+ @discardableResult public func startRecording()async throws -> StartRecordingResponse
- public func listRecordings()async throws -> [CallRecording]
+ @discardableResult public func stopRecording()async throws -> StopRecordingResponse
- @discardableResult public func startHLS()async throws -> StartHLSBroadcastingResponse
+ public func listRecordings()async throws -> [CallRecording]
- @discardableResult public func stopHLS()async throws -> StopHLSBroadcastingResponse
+ @discardableResult public func startHLS()async throws -> StartHLSBroadcastingResponse
- @discardableResult public func startRTMPBroadcast(request: StartRTMPBroadcastsRequest)async throws -> StartRTMPBroadcastsResponse
+ @discardableResult public func stopHLS()async throws -> StopHLSBroadcastingResponse
- @discardableResult public func stopRTMPBroadcasts(name: String)async throws -> StopRTMPBroadcastsResponse
+ @discardableResult public func startRTMPBroadcast(request: StartRTMPBroadcastsRequest)async throws -> StartRTMPBroadcastsResponse
- @discardableResult public func sendCustomEvent(_ data: [String: RawJSON])async throws -> SendEventResponse
+ @discardableResult public func stopRTMPBroadcasts(name: String)async throws -> StopRTMPBroadcastsResponse
- @discardableResult public func sendReaction(type: String,custom: [String: RawJSON]? = nil,emojiCode: String? = nil)async throws -> SendReactionResponse
+ @discardableResult public func sendCustomEvent(_ data: [String: RawJSON])async throws -> SendEventResponse
- public func queryMembers(filters: [String: RawJSON]? = nil,sort: [SortParamRequest] = [SortParamRequest.descending("created_at")],limit: Int = 25)async throws -> QueryMembersResponse
+ @discardableResult public func sendReaction(type: String,custom: [String: RawJSON]? = nil,emojiCode: String? = nil)async throws -> SendReactionResponse
- public func queryMembers(filters: [String: RawJSON]? = nil,sort: [SortParamRequest]? = nil,limit: Int = 25,next: String)async throws -> QueryMembersResponse
+ public func queryMembers(filters: [String: RawJSON]? = nil,sort: [SortParamRequest] = [SortParamRequest.descending("created_at")],limit: Int = 25)async throws -> QueryMembersResponse
- public func pin(sessionId: String)async throws
+ public func queryMembers(filters: [String: RawJSON]? = nil,sort: [SortParamRequest]? = nil,limit: Int = 25,next: String)async throws -> QueryMembersResponse
- public func unpin(sessionId: String)async throws
+ public func pin(sessionId: String)async throws
- public func pinForEveryone(userId: String,sessionId: String)async throws -> PinResponse
+ public func unpin(sessionId: String)async throws
- public func unpinForEveryone(userId: String,sessionId: String)async throws -> UnpinResponse
+ public func pinForEveryone(userId: String,sessionId: String)async throws -> PinResponse
- public func focus(at point: CGPoint)async throws
+ public func unpinForEveryone(userId: String,sessionId: String)async throws -> UnpinResponse
- public func addCapturePhotoOutput(_ capturePhotoOutput: AVCapturePhotoOutput)async throws
+ public func focus(at point: CGPoint)async throws
- public func removeCapturePhotoOutput(_ capturePhotoOutput: AVCapturePhotoOutput)async throws
+ public func addCapturePhotoOutput(_ capturePhotoOutput: AVCapturePhotoOutput)async throws
- @available(iOS 16.0, *) public func addVideoOutput(_ videoOutput: AVCaptureVideoDataOutput)async throws
+ public func removeCapturePhotoOutput(_ capturePhotoOutput: AVCapturePhotoOutput)async throws
- @available(iOS 16.0, *) public func removeVideoOutput(_ videoOutput: AVCaptureVideoDataOutput)async throws
+ @available(iOS 16.0, *) public func addVideoOutput(_ videoOutput: AVCaptureVideoDataOutput)async throws
- public func zoom(by factor: CGFloat)async throws
+ @available(iOS 16.0, *) public func removeVideoOutput(_ videoOutput: AVCaptureVideoDataOutput)async throws
- @discardableResult public func startTranscription(transcriptionExternalStorage: String? = nil)async throws -> StartTranscriptionResponse
+ public func zoom(by factor: CGFloat)async throws
- @discardableResult public func stopTranscription(stopClosedCaptions: Bool? = nil)async throws -> StopTranscriptionResponse
+ @discardableResult public func startTranscription(transcriptionExternalStorage: String? = nil)async throws -> StartTranscriptionResponse
- @discardableResult @MainActor public func collectUserFeedback(rating: Int,reason: String? = nil,custom: [String: RawJSON]? = nil)async throws -> CollectUserFeedbackResponse
+ @discardableResult public func stopTranscription(stopClosedCaptions: Bool? = nil)async throws -> StopTranscriptionResponse
- @MainActor public func updateParticipantsSorting(with sortComparators: [StreamSortComparator<CallParticipant>])
+ @discardableResult @MainActor public func collectUserFeedback(rating: Int,reason: String? = nil,custom: [String: RawJSON]? = nil)async throws -> CollectUserFeedbackResponse
- @MainActor public func setIncomingVideoQualitySettings(_ value: IncomingVideoQualitySettings)async
+ @MainActor public func updateParticipantsSorting(with sortComparators: [StreamSortComparator<CallParticipant>])
- public func setDisconnectionTimeout(_ timeout: TimeInterval)
+ @MainActor public func setIncomingVideoQualitySettings(_ value: IncomingVideoQualitySettings)async
- public func updatePublishOptions(preferredVideoCodec: VideoCodec,maxBitrate: Int = .maxBitrate)async
+ public func setDisconnectionTimeout(_ timeout: TimeInterval)
- @discardableResult public func startClosedCaptions(_ request: StartClosedCaptionsRequest = .init())async throws -> StartClosedCaptionsResponse
+ public func updatePublishOptions(preferredVideoCodec: VideoCodec,maxBitrate: Int = .maxBitrate)async
- @discardableResult public func stopClosedCaptions(stopTranscription: Bool? = nil)async throws -> StopClosedCaptionsResponse
+ @discardableResult public func startClosedCaptions(_ request: StartClosedCaptionsRequest = .init())async throws -> StartClosedCaptionsResponse
- @MainActor public func updateClosedCaptionsSettings(itemPresentationDuration: TimeInterval,maxVisibleItems: Int)async
+ @discardableResult public func stopClosedCaptions(stopTranscription: Bool? = nil)async throws -> StopClosedCaptionsResponse
- public func updateAudioSessionPolicy(_ policy: AudioSessionPolicy)async
+ @MainActor public func updateClosedCaptionsSettings(itemPresentationDuration: TimeInterval,maxVisibleItems: Int)async
- public func addProximityPolicy(_ policy: any ProximityPolicy)throws
+ public func updateAudioSessionPolicy(_ policy: AudioSessionPolicy)async
- public func removeProximityPolicy(_ policy: any ProximityPolicy)
+ public func addProximityPolicy(_ policy: any ProximityPolicy)throws
- public func enableClientCapabilities(_ capabilities: Set<ClientCapability>)async
+ public func removeProximityPolicy(_ policy: any ProximityPolicy)
- public func disableClientCapabilities(_ capabilities: Set<ClientCapability>)async
+ public func enableClientCapabilities(_ capabilities: Set<ClientCapability>)async
- public func kickUser(userId: String,block: Bool? = nil)async throws -> KickUserResponse
+ public func disableClientCapabilities(_ capabilities: Set<ClientCapability>)async
+ public func kickUser(userId: String,block: Bool? = nil)async throws -> KickUserResponse
@MainActor open class CallViewModel: ObservableObject
- public func enterLobby(callType: String,callId: String,members: [Member])
+ public func ring(callType: String,callId: String,members: [Member],video: Bool? = nil,showOutgoingScreen: Bool = false)
- public func acceptCall(callType: String,callId: String,customData: [String: RawJSON]? = nil)
+ public func joinAndRingCall(callType: String,callId: String,members: [Member],team: String? = nil,maxDuration: Int? = nil,maxParticipants: Int? = nil,startsAt: Date? = nil,customData: [String: RawJSON]? = nil,video: Bool? = nil)
- public func rejectCall(callType: String,callId: String)
+ public func enterLobby(callType: String,callId: String,members: [Member])
- public func changeTrackVisibility(for participant: CallParticipant,isVisible: Bool)
+ public func acceptCall(callType: String,callId: String,customData: [String: RawJSON]? = nil)
- public func updateTrackSize(_ trackSize: CGSize,for participant: CallParticipant)
+ public func rejectCall(callType: String,callId: String)
- public func startScreensharing(type: ScreensharingType)
+ public func changeTrackVisibility(for participant: CallParticipant,isVisible: Bool)
- public func stopScreensharing()
+ public func updateTrackSize(_ trackSize: CGSize,for participant: CallParticipant)
- public func hangUp()
+ public func startScreensharing(type: ScreensharingType)
- public func setVideoFilter(_ videoFilter: VideoFilter?)
+ public func stopScreensharing()
- public func update(participantsLayout: ParticipantsLayout)
+ public func hangUp()
- public func setActiveCall(_ call: Call?,file: StaticString = #file,function: StaticString = #function,line: UInt = #line)
+ public func setVideoFilter(_ videoFilter: VideoFilter?)
- public func update(participantsSortComparators: [StreamSortComparator<CallParticipant>])
+ public func update(participantsLayout: ParticipantsLayout)
+ public func setActiveCall(_ call: Call?,file: StaticString = #file,function: StaticString = #function,line: UInt = #line)
+ public func update(participantsSortComparators: [StreamSortComparator<CallParticipant>]) |
Collaborator
SDK Size
|
|
Collaborator
StreamVideo XCSize
|
Collaborator
StreamVideoSwiftUI XCSize
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.



🔗 Issue Links
Provide all JIRA tickets and/or GitHub issues related to this PR, if applicable.
🎯 Goal
Describe why we are making this change.
📝 Summary
Provide bullet points with the most important changes in the codebase.
🛠 Implementation
Provide a detailed description of the implementation and explain your decisions if you find them relevant.
🎨 Showcase
Add relevant screenshots and/or videos/gifs to easily see what this PR changes, if applicable.
imgimg🧪 Manual Testing Notes
Explain how this change can be tested manually, if applicable.
☑️ Contributor Checklist
🎁 Meme
Provide a funny gif or image that relates to your work on this pull request. (Optional)