Swiftgram/submodules/TelegramUI/Sources/ChatLinkPreview.swift
2023-09-21 00:12:53 +02:00

34 lines
1.2 KiB
Swift

import Foundation
import Postbox
import TelegramCore
import SwiftSignalKit
import TelegramNotices
final class InteractiveChatLinkPreviewsResult {
let f: (Bool) -> Void
init(_ f: @escaping (Bool) -> Void) {
self.f = f
}
}
func interactiveChatLinkPreviewsEnabled(accountManager: AccountManager<TelegramAccountManagerTypes>, displayAlert: @escaping (InteractiveChatLinkPreviewsResult) -> Void) -> Signal<Bool, NoError> {
return ApplicationSpecificNotice.getSecretChatLinkPreviews(accountManager: accountManager)
|> mapToSignal { value -> Signal<Bool, NoError> in
if let value = value {
return .single(value)
} else {
return Signal { subscriber in
Queue.mainQueue().async {
displayAlert(InteractiveChatLinkPreviewsResult({ result in
let _ = ApplicationSpecificNotice.setSecretChatLinkPreviews(accountManager: accountManager, value: result).startStandalone()
subscriber.putNext(result)
subscriber.putCompletion()
}))
}
return EmptyDisposable
}
}
}
}