Various improvements

This commit is contained in:
Ilya Laktyushin
2022-05-22 23:06:33 +04:00
parent 638ce7038b
commit 00d343a892
8 changed files with 141 additions and 44 deletions

View File

@@ -5,7 +5,7 @@ import SwiftSignalKit
public enum SavedStickerResult {
case generic
case limitExceeded
case limitExceeded(Int32, Int32)
}
func _internal_toggleStickerSaved(postbox: Postbox, network: Network, accountPeerId: PeerId, file: TelegramMediaFile, saved: Bool) -> Signal<SavedStickerResult, AddSavedStickerError> {
@@ -15,15 +15,13 @@ func _internal_toggleStickerSaved(postbox: Postbox, network: Network, accountPee
let items = transaction.getOrderedListItems(collectionId: Namespaces.OrderedItemList.CloudSavedStickers)
let appConfiguration = transaction.getPreferencesEntry(key: PreferencesKeys.appConfiguration)?.get(AppConfiguration.self) ?? .defaultValue
let userLimitsConfiguration = UserLimitsConfiguration(appConfiguration: appConfiguration, isPremium: isPremium)
let limitsConfiguration = UserLimitsConfiguration(appConfiguration: appConfiguration, isPremium: false)
let premiumLimitsConfiguration = UserLimitsConfiguration(appConfiguration: appConfiguration, isPremium: false)
return addSavedSticker(postbox: postbox, network: network, file: file)
|> map { _ -> SavedStickerResult in
return .generic
return items.count == limitsConfiguration.maxFavedStickerCount && !isPremium ? .limitExceeded(limitsConfiguration.maxFavedStickerCount, premiumLimitsConfiguration.maxFavedStickerCount) : .generic
}
|> then(
.single(items.count == userLimitsConfiguration.maxFavedStickerCount ? .limitExceeded : .generic)
)
}
|> castError(AddSavedStickerError.self)
|> switchToLatest