mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
99 lines
4.2 KiB
Swift
99 lines
4.2 KiB
Swift
import Postbox
|
|
import SwiftSignalKit
|
|
|
|
public struct UserLimitsConfiguration: Equatable {
|
|
public let maxPinnedChatCount: Int32
|
|
public let maxChannelsCount: Int32
|
|
public let maxPublicLinksCount: Int32
|
|
public let maxSavedGifCount: Int32
|
|
public let maxFavedStickerCount: Int32
|
|
public let maxFoldersCount: Int32
|
|
public let maxFolderChatsCount: Int32
|
|
public let maxCaptionLength: Int32
|
|
public let maxUploadFileParts: Int32
|
|
public let maxAboutLength: Int32
|
|
public let maxAnimatedEmojisInText: Int32
|
|
public let maxReactionsPerMessage: Int32
|
|
|
|
public static var defaultValue: UserLimitsConfiguration {
|
|
return UserLimitsConfiguration(
|
|
maxPinnedChatCount: 5,
|
|
maxChannelsCount: 500,
|
|
maxPublicLinksCount: 10,
|
|
maxSavedGifCount: 200,
|
|
maxFavedStickerCount: 5,
|
|
maxFoldersCount: 10,
|
|
maxFolderChatsCount: 100,
|
|
maxCaptionLength: 1024,
|
|
maxUploadFileParts: 4000,
|
|
maxAboutLength: 70,
|
|
maxAnimatedEmojisInText: 10,
|
|
maxReactionsPerMessage: 1
|
|
)
|
|
}
|
|
|
|
public init(
|
|
maxPinnedChatCount: Int32,
|
|
maxChannelsCount: Int32,
|
|
maxPublicLinksCount: Int32,
|
|
maxSavedGifCount: Int32,
|
|
maxFavedStickerCount: Int32,
|
|
maxFoldersCount: Int32,
|
|
maxFolderChatsCount: Int32,
|
|
maxCaptionLength: Int32,
|
|
maxUploadFileParts: Int32,
|
|
maxAboutLength: Int32,
|
|
maxAnimatedEmojisInText: Int32,
|
|
maxReactionsPerMessage: Int32
|
|
) {
|
|
self.maxPinnedChatCount = maxPinnedChatCount
|
|
self.maxChannelsCount = maxChannelsCount
|
|
self.maxPublicLinksCount = maxPublicLinksCount
|
|
self.maxSavedGifCount = maxSavedGifCount
|
|
self.maxFavedStickerCount = maxFavedStickerCount
|
|
self.maxFoldersCount = maxFoldersCount
|
|
self.maxFolderChatsCount = maxFolderChatsCount
|
|
self.maxCaptionLength = maxCaptionLength
|
|
self.maxUploadFileParts = maxUploadFileParts
|
|
self.maxAboutLength = maxAboutLength
|
|
self.maxAnimatedEmojisInText = maxAnimatedEmojisInText
|
|
self.maxReactionsPerMessage = maxReactionsPerMessage
|
|
}
|
|
}
|
|
|
|
extension UserLimitsConfiguration {
|
|
init(appConfiguration: AppConfiguration, isPremium: Bool) {
|
|
let keySuffix = isPremium ? "_premium" : "_default"
|
|
let defaultValue = UserLimitsConfiguration.defaultValue
|
|
|
|
func getValue(_ key: String, orElse defaultValue: Int32) -> Int32 {
|
|
if let value = appConfiguration.data?[key + keySuffix] as? Double {
|
|
return Int32(value)
|
|
} else {
|
|
return defaultValue
|
|
}
|
|
}
|
|
|
|
func getGeneralValue(_ key: String, orElse defaultValue: Int32) -> Int32 {
|
|
if let value = appConfiguration.data?[key] as? Double {
|
|
return Int32(value)
|
|
} else {
|
|
return defaultValue
|
|
}
|
|
}
|
|
|
|
self.maxPinnedChatCount = getValue("dialogs_pinned_limit", orElse: defaultValue.maxPinnedChatCount)
|
|
self.maxChannelsCount = getValue("channels_limit", orElse: defaultValue.maxChannelsCount)
|
|
self.maxPublicLinksCount = getValue("channels_public_limit", orElse: defaultValue.maxPublicLinksCount)
|
|
self.maxSavedGifCount = getValue("saved_gifs_limit", orElse: defaultValue.maxSavedGifCount)
|
|
self.maxFavedStickerCount = getValue("stickers_faved_limit", orElse: defaultValue.maxFavedStickerCount)
|
|
self.maxFoldersCount = getValue("dialog_filters_limit", orElse: defaultValue.maxFoldersCount)
|
|
self.maxFolderChatsCount = getValue("dialog_filters_chats_limit", orElse: defaultValue.maxFolderChatsCount)
|
|
self.maxCaptionLength = getValue("caption_length_limit", orElse: defaultValue.maxCaptionLength)
|
|
self.maxUploadFileParts = getValue("upload_max_fileparts", orElse: defaultValue.maxUploadFileParts)
|
|
self.maxAboutLength = getValue("about_length_limit", orElse: defaultValue.maxAboutLength)
|
|
self.maxAnimatedEmojisInText = getGeneralValue("message_animated_emoji_max", orElse: defaultValue.maxAnimatedEmojisInText)
|
|
self.maxReactionsPerMessage = getValue("reactions_user_max", orElse: 1)
|
|
}
|
|
}
|