mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-24 07:05:35 +00:00
Support firebase auth
This commit is contained in:
@@ -71,6 +71,13 @@ public final class SharedAccountContextImpl: SharedAccountContext {
|
||||
private let apsNotificationToken: Signal<Data?, NoError>
|
||||
private let voipNotificationToken: Signal<Data?, NoError>
|
||||
|
||||
public let firebaseSecretStream: Signal<[String: String], NoError>
|
||||
|
||||
private let authorizationPushConfigurationValue = Promise<AuthorizationCodePushNotificationConfiguration?>(nil)
|
||||
public var authorizationPushConfiguration: Signal<AuthorizationCodePushNotificationConfiguration?, NoError> {
|
||||
return self.authorizationPushConfigurationValue.get()
|
||||
}
|
||||
|
||||
private var activeAccountsValue: (primary: AccountContext?, accounts: [(AccountRecordId, AccountContext, Int32)], currentAuth: UnauthorizedAccount?)?
|
||||
private let activeAccountsPromise = Promise<(primary: AccountContext?, accounts: [(AccountRecordId, AccountContext, Int32)], currentAuth: UnauthorizedAccount?)>()
|
||||
public var activeAccountContexts: Signal<(primary: AccountContext?, accounts: [(AccountRecordId, AccountContext, Int32)], currentAuth: UnauthorizedAccount?), NoError> {
|
||||
@@ -168,7 +175,7 @@ public final class SharedAccountContextImpl: SharedAccountContext {
|
||||
private var spotlightDataContext: SpotlightDataContext?
|
||||
private var widgetDataContext: WidgetDataContext?
|
||||
|
||||
public init(mainWindow: Window1?, sharedContainerPath: String, basePath: String, encryptionParameters: ValueBoxEncryptionParameters, accountManager: AccountManager<TelegramAccountManagerTypes>, appLockContext: AppLockContext, applicationBindings: TelegramApplicationBindings, initialPresentationDataAndSettings: InitialPresentationDataAndSettings, networkArguments: NetworkInitializationArguments, hasInAppPurchases: Bool, rootPath: String, legacyBasePath: String?, apsNotificationToken: Signal<Data?, NoError>, voipNotificationToken: Signal<Data?, NoError>, setNotificationCall: @escaping (PresentationCall?) -> Void, navigateToChat: @escaping (AccountRecordId, PeerId, MessageId?) -> Void, displayUpgradeProgress: @escaping (Float?) -> Void = { _ in }) {
|
||||
public init(mainWindow: Window1?, sharedContainerPath: String, basePath: String, encryptionParameters: ValueBoxEncryptionParameters, accountManager: AccountManager<TelegramAccountManagerTypes>, appLockContext: AppLockContext, applicationBindings: TelegramApplicationBindings, initialPresentationDataAndSettings: InitialPresentationDataAndSettings, networkArguments: NetworkInitializationArguments, hasInAppPurchases: Bool, rootPath: String, legacyBasePath: String?, apsNotificationToken: Signal<Data?, NoError>, voipNotificationToken: Signal<Data?, NoError>, firebaseSecretStream: Signal<[String: String], NoError>, setNotificationCall: @escaping (PresentationCall?) -> Void, navigateToChat: @escaping (AccountRecordId, PeerId, MessageId?) -> Void, displayUpgradeProgress: @escaping (Float?) -> Void = { _ in }) {
|
||||
assert(Queue.mainQueue().isCurrent())
|
||||
|
||||
precondition(!testHasInstance)
|
||||
@@ -190,6 +197,24 @@ public final class SharedAccountContextImpl: SharedAccountContext {
|
||||
|
||||
self.apsNotificationToken = apsNotificationToken
|
||||
self.voipNotificationToken = voipNotificationToken
|
||||
|
||||
self.firebaseSecretStream = firebaseSecretStream
|
||||
|
||||
self.authorizationPushConfigurationValue.set(apsNotificationToken |> map { data -> AuthorizationCodePushNotificationConfiguration? in
|
||||
guard let data else {
|
||||
return nil
|
||||
}
|
||||
let sandbox: Bool
|
||||
#if DEBUG
|
||||
sandbox = true
|
||||
#else
|
||||
sandbox = false
|
||||
#endif
|
||||
return AuthorizationCodePushNotificationConfiguration(
|
||||
token: hexString(data),
|
||||
isSandbox: sandbox
|
||||
)
|
||||
})
|
||||
|
||||
if applicationBindings.isMainApp {
|
||||
self.locationManager = DeviceLocationManager(queue: Queue.mainQueue())
|
||||
|
||||
Reference in New Issue
Block a user