Fix history import

This commit is contained in:
Ali 2023-10-24 20:37:40 +04:00
parent f7eee308d8
commit fa04ffa85a
3 changed files with 565 additions and 471 deletions

View File

@ -2,6 +2,9 @@ import UIKit
import TelegramUI
import BuildConfig
import ShareExtensionContext
import SwiftSignalKit
import Postbox
import TelegramCore
@objc(ShareRootController)
class ShareRootController: UIViewController {
@ -46,7 +49,24 @@ class ShareRootController: UIViewController {
let appVersion = (Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String) ?? "unknown"
self.impl = ShareRootControllerImpl(initializationData: ShareRootControllerInitializationData(appBundleId: baseAppBundleId, appBuildType: buildConfig.isAppStoreBuild ? .public : .internal, appGroupPath: appGroupUrl.path, apiId: buildConfig.apiId, apiHash: buildConfig.apiHash, languagesCategory: languagesCategory, encryptionParameters: encryptionParameters, appVersion: appVersion, bundleData: buildConfig.bundleData(withAppToken: nil, signatureDict: nil), useBetaFeatures: !buildConfig.isAppStoreBuild), getExtensionContext: { [weak self] in
self.impl = ShareRootControllerImpl(initializationData: ShareRootControllerInitializationData(appBundleId: baseAppBundleId, appBuildType: buildConfig.isAppStoreBuild ? .public : .internal, appGroupPath: appGroupUrl.path, apiId: buildConfig.apiId, apiHash: buildConfig.apiHash, languagesCategory: languagesCategory, encryptionParameters: encryptionParameters, appVersion: appVersion, bundleData: buildConfig.bundleData(withAppToken: nil, signatureDict: nil), useBetaFeatures: !buildConfig.isAppStoreBuild, makeTempContext: { accountManager, appLockContext, applicationBindings, InitialPresentationDataAndSettings, networkArguments in
return makeTempContext(
sharedContainerPath: appGroupUrl.path,
rootPath: rootPath,
appGroupPath: appGroupUrl.path,
accountManager: accountManager,
appLockContext: appLockContext,
encryptionParameters: ValueBoxEncryptionParameters(
forceEncryptionIfNoSet: false,
key: ValueBoxEncryptionParameters.Key(data: encryptionParameters.0)!,
salt: ValueBoxEncryptionParameters.Salt(data: encryptionParameters.1)!
),
applicationBindings: applicationBindings,
initialPresentationDataAndSettings: InitialPresentationDataAndSettings,
networkArguments: networkArguments,
buildConfig: buildConfig
)
}), getExtensionContext: { [weak self] in
return self?.extensionContext
})
}

View File

@ -0,0 +1,56 @@
import Foundation
import SwiftSignalKit
import TelegramCore
import Postbox
import AccountContext
import BuildConfig
import TelegramPresentationData
private var sharedTempContext: SharedAccountContextImpl?
public func makeTempContext(
sharedContainerPath: String,
rootPath: String,
appGroupPath: String,
accountManager: AccountManager<TelegramAccountManagerTypes>,
appLockContext: AppLockContext,
encryptionParameters: ValueBoxEncryptionParameters,
applicationBindings: TelegramApplicationBindings,
initialPresentationDataAndSettings: InitialPresentationDataAndSettings,
networkArguments: NetworkInitializationArguments,
buildConfig: BuildConfig
) -> Signal<AccountContext, NoError> {
let sharedContext = sharedTempContext ?? SharedAccountContextImpl(
mainWindow: nil,
sharedContainerPath: sharedContainerPath,
basePath: rootPath,
encryptionParameters: encryptionParameters,
accountManager: accountManager,
appLockContext: appLockContext,
applicationBindings: applicationBindings,
initialPresentationDataAndSettings: initialPresentationDataAndSettings,
networkArguments: networkArguments,
hasInAppPurchases: buildConfig.isAppStoreBuild && buildConfig.apiId == 1,
rootPath: rootPath,
legacyBasePath: appGroupPath,
apsNotificationToken: .single(nil),
voipNotificationToken: .single(nil),
firebaseSecretStream: .never(),
setNotificationCall: { _ in
},
navigateToChat: { _, _, _ in
}, displayUpgradeProgress: { _ in
},
appDelegate: nil
)
self.sharedTempContext = sharedContext
return sharedContext.activeAccountContexts
|> take(1)
|> mapToSignal { accounts -> Signal<AccountContext, NoError> in
guard let context = accounts.primary else {
return .complete()
}
return .single(context)
}
}