Refactoring

This commit is contained in:
Ali
2022-05-29 02:09:25 +04:00
parent be3c85abff
commit a183d69534
96 changed files with 1104 additions and 1416 deletions

View File

@@ -1,6 +1,7 @@
import Foundation
import UIKit
import Postbox
import TelegramCore
import SwiftSignalKit
import TelegramUIPreferences
@@ -35,42 +36,36 @@ public final class RecentWebSearchQueryItem: Codable {
}
}
func addRecentWebSearchQuery(postbox: Postbox, string: String) -> Signal<Void, NoError> {
return postbox.transaction { transaction in
if let itemId = WebSearchRecentQueryItemId(string) {
if let entry = CodableEntry(RecentWebSearchQueryItem()) {
transaction.addOrMoveToFirstPositionOrderedItemListItem(collectionId: ApplicationSpecificOrderedItemListCollectionId.webSearchRecentQueries, item: OrderedItemListEntry(id: itemId.rawValue, contents: entry), removeTailIfCountExceeds: 100)
}
}
func addRecentWebSearchQuery(engine: TelegramEngine, string: String) -> Signal<Never, NoError> {
if let itemId = WebSearchRecentQueryItemId(string) {
return engine.orderedLists.addOrMoveToFirstPosition(collectionId: ApplicationSpecificOrderedItemListCollectionId.webSearchRecentQueries, id: itemId.rawValue, item: RecentWebSearchQueryItem(), removeTailIfCountExceeds: 100)
} else {
return .complete()
}
}
func removeRecentWebSearchQuery(postbox: Postbox, string: String) -> Signal<Void, NoError> {
return postbox.transaction { transaction -> Void in
if let itemId = WebSearchRecentQueryItemId(string) {
transaction.removeOrderedItemListItem(collectionId: ApplicationSpecificOrderedItemListCollectionId.webSearchRecentQueries, itemId: itemId.rawValue)
}
func removeRecentWebSearchQuery(engine: TelegramEngine, string: String) -> Signal<Never, NoError> {
if let itemId = WebSearchRecentQueryItemId(string) {
return engine.orderedLists.removeItem(collectionId: ApplicationSpecificOrderedItemListCollectionId.webSearchRecentQueries, id: itemId.rawValue)
} else {
return .complete()
}
}
func clearRecentWebSearchQueries(postbox: Postbox) -> Signal<Void, NoError> {
return postbox.transaction { transaction -> Void in
transaction.replaceOrderedItemListItems(collectionId: ApplicationSpecificOrderedItemListCollectionId.webSearchRecentQueries, items: [])
}
func clearRecentWebSearchQueries(engine: TelegramEngine) -> Signal<Never, NoError> {
return engine.orderedLists.clear(collectionId: ApplicationSpecificOrderedItemListCollectionId.webSearchRecentQueries)
}
func webSearchRecentQueries(postbox: Postbox) -> Signal<[String], NoError> {
return postbox.combinedView(keys: [.orderedItemList(id: ApplicationSpecificOrderedItemListCollectionId.webSearchRecentQueries)])
|> mapToSignal { view -> Signal<[String], NoError> in
return postbox.transaction { transaction -> [String] in
var result: [String] = []
if let view = view.views[.orderedItemList(id: ApplicationSpecificOrderedItemListCollectionId.webSearchRecentQueries)] as? OrderedItemListView {
for item in view.items {
let value = WebSearchRecentQueryItemId(item.id).value
result.append(value)
}
}
return result
|> mapToSignal { view -> Signal<[String], NoError> in
var result: [String] = []
if let view = view.views[.orderedItemList(id: ApplicationSpecificOrderedItemListCollectionId.webSearchRecentQueries)] as? OrderedItemListView {
for item in view.items {
let value = WebSearchRecentQueryItemId(item.id).value
result.append(value)
}
}
return .single(result)
}
}