element-ios/RiotSwiftUI/Modules/LocationSharing/LiveLocationSharingViewer/Service/LiveLocationSharingViewerSe...

30 lines
877 B
Swift

//
// Copyright 2021-2024 New Vector Ltd.
//
// SPDX-License-Identifier: AGPL-3.0-only
// Please see LICENSE in the repository root for full details.
//
import Combine
import CoreLocation
import Foundation
protocol LiveLocationSharingViewerServiceProtocol {
/// All shared users live location
var usersLiveLocation: [UserLiveLocation] { get }
/// Called when users live location are updated (new location, location stopped, ).
var didUpdateUsersLiveLocation: (([UserLiveLocation]) -> Void)? { get set }
func isCurrentUserId(_ userId: String) -> Bool
func startListeningLiveLocationUpdates()
func stopListeningLiveLocationUpdates()
/// Stop current user location sharing
func stopUserLiveLocationSharing(completion: @escaping (Result<Void, Error>) -> Void)
func requestAuthorizationIfNeeded() -> Bool
}