mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Fix archived masks list
This commit is contained in:
parent
e083dd7eff
commit
4fdc5ebd78
@ -8,6 +8,15 @@ import SyncCore
|
|||||||
public enum ArchivedStickerPacksNamespace: Int32 {
|
public enum ArchivedStickerPacksNamespace: Int32 {
|
||||||
case stickers = 0
|
case stickers = 0
|
||||||
case masks = 1
|
case masks = 1
|
||||||
|
|
||||||
|
var itemCollectionNamespace: ItemCollectionId.Namespace {
|
||||||
|
switch self {
|
||||||
|
case .stickers:
|
||||||
|
return Namespaces.ItemCollection.CloudStickerPacks
|
||||||
|
case .masks:
|
||||||
|
return Namespaces.ItemCollection.CloudMaskPacks
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public final class ArchivedStickerPackItem {
|
public final class ArchivedStickerPackItem {
|
||||||
@ -31,7 +40,7 @@ public func archivedStickerPacks(account: Account, namespace: ArchivedStickerPac
|
|||||||
switch result {
|
switch result {
|
||||||
case let .archivedStickers(_, sets):
|
case let .archivedStickers(_, sets):
|
||||||
for set in sets {
|
for set in sets {
|
||||||
let (info, items) = parsePreviewStickerSet(set)
|
let (info, items) = parsePreviewStickerSet(set, namespace: namespace.itemCollectionNamespace)
|
||||||
archivedItems.append(ArchivedStickerPackItem(info: info, topItems: items))
|
archivedItems.append(ArchivedStickerPackItem(info: info, topItems: items))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -52,7 +52,7 @@ func updatedFeaturedStickerPacks(network: Network, postbox: Postbox) -> Signal<V
|
|||||||
let unreadIds = Set(unread)
|
let unreadIds = Set(unread)
|
||||||
var updatedPacks: [FeaturedStickerPackItem] = []
|
var updatedPacks: [FeaturedStickerPackItem] = []
|
||||||
for set in sets {
|
for set in sets {
|
||||||
var (info, items) = parsePreviewStickerSet(set)
|
var (info, items) = parsePreviewStickerSet(set, namespace: Namespaces.ItemCollection.CloudStickerPacks)
|
||||||
if let previousPack = initialPackMap[info.id.id] {
|
if let previousPack = initialPackMap[info.id.id] {
|
||||||
if previousPack.info.hash == info.hash {
|
if previousPack.info.hash == info.hash {
|
||||||
items = previousPack.topItems
|
items = previousPack.topItems
|
||||||
@ -78,7 +78,7 @@ public func requestOldFeaturedStickerPacks(network: Network, postbox: Postbox, o
|
|||||||
let unreadIds = Set(unread)
|
let unreadIds = Set(unread)
|
||||||
var updatedPacks: [FeaturedStickerPackItem] = []
|
var updatedPacks: [FeaturedStickerPackItem] = []
|
||||||
for set in sets {
|
for set in sets {
|
||||||
let (info, items) = parsePreviewStickerSet(set)
|
let (info, items) = parsePreviewStickerSet(set, namespace: Namespaces.ItemCollection.CloudStickerPacks)
|
||||||
updatedPacks.append(FeaturedStickerPackItem(info: info, topItems: items, unread: unreadIds.contains(info.id.id)))
|
updatedPacks.append(FeaturedStickerPackItem(info: info, topItems: items, unread: unreadIds.contains(info.id.id)))
|
||||||
}
|
}
|
||||||
return updatedPacks
|
return updatedPacks
|
||||||
@ -116,17 +116,17 @@ public func preloadedFeaturedStickerSet(network: Network, postbox: Postbox, id:
|
|||||||
} |> switchToLatest
|
} |> switchToLatest
|
||||||
}
|
}
|
||||||
|
|
||||||
func parsePreviewStickerSet(_ set: Api.StickerSetCovered) -> (StickerPackCollectionInfo, [StickerPackItem]) {
|
func parsePreviewStickerSet(_ set: Api.StickerSetCovered, namespace: ItemCollectionId.Namespace) -> (StickerPackCollectionInfo, [StickerPackItem]) {
|
||||||
switch set {
|
switch set {
|
||||||
case let .stickerSetCovered(set, cover):
|
case let .stickerSetCovered(set, cover):
|
||||||
let info = StickerPackCollectionInfo(apiSet: set, namespace: Namespaces.ItemCollection.CloudStickerPacks)
|
let info = StickerPackCollectionInfo(apiSet: set, namespace: namespace)
|
||||||
var items: [StickerPackItem] = []
|
var items: [StickerPackItem] = []
|
||||||
if let file = telegramMediaFileFromApiDocument(cover), let id = file.id {
|
if let file = telegramMediaFileFromApiDocument(cover), let id = file.id {
|
||||||
items.append(StickerPackItem(index: ItemCollectionItemIndex(index: 0, id: id.id), file: file, indexKeys: []))
|
items.append(StickerPackItem(index: ItemCollectionItemIndex(index: 0, id: id.id), file: file, indexKeys: []))
|
||||||
}
|
}
|
||||||
return (info, items)
|
return (info, items)
|
||||||
case let .stickerSetMultiCovered(set, covers):
|
case let .stickerSetMultiCovered(set, covers):
|
||||||
let info = StickerPackCollectionInfo(apiSet: set, namespace: Namespaces.ItemCollection.CloudStickerPacks)
|
let info = StickerPackCollectionInfo(apiSet: set, namespace: namespace)
|
||||||
var items: [StickerPackItem] = []
|
var items: [StickerPackItem] = []
|
||||||
for cover in covers {
|
for cover in covers {
|
||||||
if let file = telegramMediaFileFromApiDocument(cover), let id = file.id {
|
if let file = telegramMediaFileFromApiDocument(cover), let id = file.id {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user