Version 11.8.1

This commit is contained in:
Kylmakalle
2024-07-02 19:58:37 +03:00
parent b378b7b282
commit 58cc759146
777 changed files with 39158 additions and 2808 deletions

View File

@@ -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
}
}