Refactoring

This commit is contained in:
Ali
2022-05-29 04:27:40 +04:00
parent 3d10a0c38c
commit c146d15559
16 changed files with 165 additions and 151 deletions

View File

@@ -42,6 +42,13 @@ public extension TelegramEngineUnauthorized {
public func uploadedPeerVideo(resource: MediaResource) -> Signal<UploadedPeerPhotoData, NoError> {
return _internal_uploadedPeerVideo(postbox: self.account.postbox, network: self.account.network, messageMediaPreuploadManager: nil, resource: resource)
}
public func setState(state: UnauthorizedAccountState) -> Signal<Never, NoError> {
return self.account.postbox.transaction { transaction -> Void in
transaction.setState(state)
}
|> ignoreValues
}
}
}

View File

@@ -333,5 +333,26 @@ public extension TelegramEngine.EngineData.Item {
return EngineContentSettings(appConfiguration: appConfiguration)
}
}
public struct LocalizationList: TelegramEngineDataItem, PostboxViewDataItem {
public typealias Result = LocalizationListState
public init() {
}
var key: PostboxViewKey {
return .preferences(keys: Set([PreferencesKeys.localizationListState]))
}
func extract(view: PostboxView) -> Result {
guard let view = view as? PreferencesView else {
preconditionFailure()
}
guard let localizationListState = view.values[PreferencesKeys.localizationListState]?.get(LocalizationListState.self) else {
return LocalizationListState.defaultSettings
}
return localizationListState
}
}
}
}

View File

@@ -25,5 +25,14 @@ public extension TelegramEngine {
}
|> ignoreValues
}
public func clear(collectionIds: [Int8]) -> Signal<Never, NoError> {
return self.account.postbox.transaction { transaction -> Void in
for id in collectionIds {
transaction.clearItemCacheCollection(collectionId: id)
}
}
|> ignoreValues
}
}
}

View File

@@ -3,8 +3,7 @@ import Postbox
import SwiftSignalKit
import TelegramApi
public func removeSavedLocalization(transaction: Transaction, languageCode: String) {
func _internal_removeSavedLocalization(transaction: Transaction, languageCode: String) {
updateLocalizationListStateInteractively(transaction: transaction, { state in
var state = state
state.availableSavedLocalizations = state.availableSavedLocalizations.filter({ $0.languageCode != languageCode })

View File

@@ -32,6 +32,13 @@ public extension TelegramEngine {
public func downloadAndApplyLocalization(accountManager: AccountManager<TelegramAccountManagerTypes>, languageCode: String) -> Signal<Void, DownloadAndApplyLocalizationError> {
return _internal_downloadAndApplyLocalization(accountManager: accountManager, postbox: self.account.postbox, network: self.account.network, languageCode: languageCode)
}
public func removeSavedLocalization(languageCode: String) -> Signal<Never, NoError> {
return self.account.postbox.transaction { transaction -> Void in
_internal_removeSavedLocalization(transaction: transaction, languageCode: languageCode)
}
|> ignoreValues
}
}
}

View File

@@ -415,5 +415,19 @@ public extension TelegramEngine {
}
|> ignoreValues
}
public func debugAddHoles() -> Signal<Never, NoError> {
return self.account.postbox.transaction { transaction -> Void in
transaction.addHolesEverywhere(peerNamespaces: [Namespaces.Peer.CloudUser, Namespaces.Peer.CloudGroup, Namespaces.Peer.CloudChannel], holeNamespace: Namespaces.Message.Cloud)
}
|> ignoreValues
}
public func debugReindexUnreadCounters() -> Signal<Never, NoError> {
return self.account.postbox.transaction { transaction -> Void in
transaction.reindexUnreadCounters()
}
|> ignoreValues
}
}
}

View File

@@ -131,5 +131,29 @@ public extension TelegramEngine {
}
|> ignoreValues
}
public func reorderStickerPacks(namespace: ItemCollectionId.Namespace, itemIds: [ItemCollectionId]) -> Signal<Never, NoError> {
return self.account.postbox.transaction { transaction -> Void in
let infos = transaction.getItemCollectionsInfos(namespace: namespace)
var packDict: [ItemCollectionId: Int] = [:]
for i in 0 ..< infos.count {
packDict[infos[i].0] = i
}
var tempSortedPacks: [(ItemCollectionId, ItemCollectionInfo)] = []
var processedPacks = Set<ItemCollectionId>()
for id in itemIds {
if let index = packDict[id] {
tempSortedPacks.append(infos[index])
processedPacks.insert(id)
}
}
let restPacks = infos.filter { !processedPacks.contains($0.0) }
let sortedPacks = restPacks + tempSortedPacks
addSynchronizeInstalledStickerPacksOperation(transaction: transaction, namespace: namespace, content: .sync, noDelay: false)
transaction.replaceItemCollectionInfos(namespace: namespace, itemCollectionInfos: sortedPacks)
}
|> ignoreValues
}
}
}