Refactoring

This commit is contained in:
Ali
2021-08-05 16:24:55 +02:00
parent 895927cc04
commit 24a8662813
16 changed files with 134 additions and 29 deletions

View File

@@ -2,7 +2,6 @@ import Foundation
import UIKit
import Display
import SwiftSignalKit
import Postbox
import TelegramCore
import TelegramPresentationData
import ItemListUI
@@ -11,6 +10,7 @@ import AccountContext
import AlertUI
import PresentationDataUtils
import TextFormat
import Postbox
private struct OrderedLinkedListItemOrderingId: RawRepresentable, Hashable {
var rawValue: Int
@@ -423,7 +423,7 @@ private struct CreatePollControllerState: Equatable {
var isEditingSolution: Bool = false
}
private func createPollControllerEntries(presentationData: PresentationData, peer: Peer, state: CreatePollControllerState, limitsConfiguration: LimitsConfiguration, defaultIsQuiz: Bool?) -> [CreatePollEntry] {
private func createPollControllerEntries(presentationData: PresentationData, peer: EnginePeer, state: CreatePollControllerState, limitsConfiguration: EngineConfiguration.Limits, defaultIsQuiz: Bool?) -> [CreatePollEntry] {
var entries: [CreatePollEntry] = []
var textLimitText = ItemListSectionHeaderAccessoryText(value: "", color: .generic)
@@ -453,7 +453,7 @@ private func createPollControllerEntries(presentationData: PresentationData, pee
}
var canBePublic = true
if let channel = peer as? TelegramChannel, case .broadcast = channel.info {
if case let .channel(channel) = peer, case .broadcast = channel.info {
canBePublic = false
}
@@ -483,7 +483,7 @@ private func createPollControllerEntries(presentationData: PresentationData, pee
return entries
}
public func createPollController(context: AccountContext, peer: Peer, isQuiz: Bool? = nil, completion: @escaping (EnqueueMessage) -> Void) -> ViewController {
public func createPollController(context: AccountContext, peer: EnginePeer, isQuiz: Bool? = nil, completion: @escaping (EnqueueMessage) -> Void) -> ViewController {
var initialState = CreatePollControllerState()
if let isQuiz = isQuiz {
initialState.isQuiz = isQuiz
@@ -742,12 +742,13 @@ public func createPollController(context: AccountContext, peer: Peer, isQuiz: Bo
})
let previousOptionIds = Atomic<[Int]?>(value: nil)
let limitsKey = PostboxViewKey.preferences(keys: Set([PreferencesKeys.limitsConfiguration]))
let signal = combineLatest(context.sharedContext.presentationData, statePromise.get() |> deliverOnMainQueue, context.account.postbox.combinedView(keys: [limitsKey]))
|> map { presentationData, state, combinedView -> (ItemListControllerState, (ItemListNodeState, Any)) in
let limitsConfiguration: LimitsConfiguration = (combinedView.views[limitsKey] as? PreferencesView)?.values[PreferencesKeys.limitsConfiguration] as? LimitsConfiguration ?? LimitsConfiguration.defaultValue
let signal = combineLatest(queue: .mainQueue(),
context.sharedContext.presentationData,
statePromise.get(),
context.engine.data.subscribe(TelegramEngine.EngineData.Item.Configuration.Limits())
)
|> map { presentationData, state, limitsConfiguration -> (ItemListControllerState, (ItemListNodeState, Any)) in
var enabled = true
if processPollText(state.text).isEmpty {
enabled = false