mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-24 07:05:35 +00:00
Version 11.8.1
This commit is contained in:
@@ -1,3 +1,9 @@
|
||||
// MARK: Swiftgram
|
||||
import SGIAP
|
||||
import SGPayWall
|
||||
import SGProUI
|
||||
import SGSimpleSettings
|
||||
//
|
||||
import Foundation
|
||||
import UIKit
|
||||
import AsyncDisplayKit
|
||||
@@ -246,6 +252,14 @@ public final class SharedAccountContextImpl: SharedAccountContext {
|
||||
return self.immediateExperimentalUISettingsValue.with { $0 }
|
||||
}
|
||||
private var experimentalUISettingsDisposable: Disposable?
|
||||
|
||||
// MARK: Swiftgram
|
||||
private var immediateSGStatusValue = Atomic<SGStatus>(value: SGStatus.default)
|
||||
public var immediateSGStatus: SGStatus {
|
||||
return self.immediateSGStatusValue.with { $0 }
|
||||
}
|
||||
private var sgStatusDisposable: Disposable?
|
||||
public var SGIAP: SGIAPManager?
|
||||
|
||||
public var presentGlobalController: (ViewController, Any?) -> Void = { _, _ in }
|
||||
public var presentCrossfadeController: () -> Void = {}
|
||||
@@ -474,6 +488,18 @@ public final class SharedAccountContextImpl: SharedAccountContext {
|
||||
let _ = immediateExperimentalUISettingsValue.swap(settings)
|
||||
}
|
||||
})
|
||||
// MARK: Swiftgram
|
||||
let immediateSGStatusValue = self.immediateSGStatusValue
|
||||
self.sgStatusDisposable = (self.accountManager.sharedData(keys: [ApplicationSpecificSharedDataKeys.sgStatus])
|
||||
|> deliverOnMainQueue).start(next: { sharedData in
|
||||
if let settings = sharedData.entries[ApplicationSpecificSharedDataKeys.sgStatus]?.get(SGStatus.self) {
|
||||
let _ = immediateSGStatusValue.swap(settings)
|
||||
SGSimpleSettings.shared.ephemeralStatus = settings.status
|
||||
SGSimpleSettings.shared.status = settings.status
|
||||
}
|
||||
})
|
||||
self.initSGIAP(isMainApp: applicationBindings.isMainApp)
|
||||
//
|
||||
|
||||
let _ = self.contactDataManager?.personNameDisplayOrder().start(next: { order in
|
||||
let _ = updateContactSettingsInteractively(accountManager: accountManager, { settings in
|
||||
@@ -3565,3 +3591,51 @@ private func useFlatModalCallsPresentation(context: AccountContext) -> Bool {
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
|
||||
|
||||
// MARK: Swiftgram
|
||||
extension SharedAccountContextImpl {
|
||||
func initSGIAP(isMainApp: Bool) {
|
||||
if isMainApp {
|
||||
self.SGIAP = SGIAPManager()
|
||||
} else {
|
||||
self.SGIAP = nil
|
||||
}
|
||||
}
|
||||
|
||||
public func makeSGProController(context: AccountContext) -> ViewController {
|
||||
let controller = sgProController(context: context)
|
||||
return controller
|
||||
}
|
||||
|
||||
public func makeSGPayWallController(context: AccountContext) -> ViewController? {
|
||||
guard #available(iOS 13.0, *) else {
|
||||
return nil
|
||||
}
|
||||
guard let sgIAP = self.SGIAP else {
|
||||
return nil
|
||||
}
|
||||
|
||||
let statusSignal = self.accountManager.sharedData(keys: [ApplicationSpecificSharedDataKeys.sgStatus])
|
||||
|> map { sharedData -> Int64 in
|
||||
let sgStatus = sharedData.entries[ApplicationSpecificSharedDataKeys.sgStatus]?.get(SGStatus.self) ?? SGStatus.default
|
||||
return sgStatus.status
|
||||
}
|
||||
|
||||
let proController = self.makeSGProController(context: context)
|
||||
let payWallController = sgPayWallController(statusSignal: statusSignal, replacementController: proController, presentationData: self.currentPresentationData.with { $0 }, SGIAPManager: sgIAP, openUrl: self.applicationBindings.openUrl, paymentsEnabled: context.currentAppConfiguration.with { $0 }.sgWebSettings.global.paymentsEnabled)
|
||||
return payWallController
|
||||
}
|
||||
|
||||
public func makeSGUpdateIOSController() -> ViewController {
|
||||
let presentationData = self.currentPresentationData.with { $0 }
|
||||
let controller = UndoOverlayController(
|
||||
presentationData: presentationData,
|
||||
content: .info(title: nil, text: "Common.UpdateOS".i18n(presentationData.strings.baseLanguageCode), timeout: nil, customUndoText: nil),
|
||||
elevatedLayout: false,
|
||||
action: { _ in return false }
|
||||
)
|
||||
return controller
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user