mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-08-17 11:00:07 +00:00
Added recent sticker clearing
This commit is contained in:
parent
35b9b925fe
commit
03f72c3abd
@ -204,7 +204,7 @@ final class ChatHistoryPreloadManager {
|
|||||||
if let strongSelf = self {
|
if let strongSelf = self {
|
||||||
var indices: [(ChatHistoryPreloadIndex, Bool, Bool)] = []
|
var indices: [(ChatHistoryPreloadIndex, Bool, Bool)] = []
|
||||||
for entry in view.0.entries {
|
for entry in view.0.entries {
|
||||||
if case let .MessageEntry(index, _, readState, notificationSettings, _, _, _) = entry {
|
if case let .MessageEntry(index, _, readState, notificationSettings, _, _, _, _) = entry {
|
||||||
var hasUnread = false
|
var hasUnread = false
|
||||||
if let readState = readState {
|
if let readState = readState {
|
||||||
hasUnread = readState.count != 0
|
hasUnread = readState.count != 0
|
||||||
|
@ -181,6 +181,14 @@ private func synchronizeRecentlyUsedMedia(transaction: Transaction, postbox: Pos
|
|||||||
|> mapToSignal { _ -> Signal<Void, NoError> in
|
|> mapToSignal { _ -> Signal<Void, NoError> in
|
||||||
return .complete()
|
return .complete()
|
||||||
}
|
}
|
||||||
|
case .clear:
|
||||||
|
return network.request(Api.functions.messages.clearRecentStickers(flags: 0))
|
||||||
|
|> `catch` { _ -> Signal<Api.Bool, NoError> in
|
||||||
|
return .single(.boolFalse)
|
||||||
|
}
|
||||||
|
|> mapToSignal { _ -> Signal<Void, NoError> in
|
||||||
|
return .complete()
|
||||||
|
}
|
||||||
case .sync:
|
case .sync:
|
||||||
return managedRecentStickers(postbox: postbox, network: network)
|
return managedRecentStickers(postbox: postbox, network: network)
|
||||||
}
|
}
|
||||||
|
@ -10,12 +10,14 @@ import SwiftSignalKit
|
|||||||
private enum SynchronizeRecentlyUsedMediaOperationContentType: Int32 {
|
private enum SynchronizeRecentlyUsedMediaOperationContentType: Int32 {
|
||||||
case add
|
case add
|
||||||
case remove
|
case remove
|
||||||
|
case clear
|
||||||
case sync
|
case sync
|
||||||
}
|
}
|
||||||
|
|
||||||
enum SynchronizeRecentlyUsedMediaOperationContent: PostboxCoding {
|
enum SynchronizeRecentlyUsedMediaOperationContent: PostboxCoding {
|
||||||
case add(id: Int64, accessHash: Int64, fileReference: FileMediaReference?)
|
case add(id: Int64, accessHash: Int64, fileReference: FileMediaReference?)
|
||||||
case remove(id: Int64, accessHash: Int64)
|
case remove(id: Int64, accessHash: Int64)
|
||||||
|
case clear
|
||||||
case sync
|
case sync
|
||||||
|
|
||||||
init(decoder: PostboxDecoder) {
|
init(decoder: PostboxDecoder) {
|
||||||
@ -24,6 +26,8 @@ enum SynchronizeRecentlyUsedMediaOperationContent: PostboxCoding {
|
|||||||
self = .add(id: decoder.decodeInt64ForKey("i", orElse: 0), accessHash: decoder.decodeInt64ForKey("h", orElse: 0), fileReference: decoder.decodeAnyObjectForKey("fr", decoder: { FileMediaReference(decoder: $0) }) as? FileMediaReference)
|
self = .add(id: decoder.decodeInt64ForKey("i", orElse: 0), accessHash: decoder.decodeInt64ForKey("h", orElse: 0), fileReference: decoder.decodeAnyObjectForKey("fr", decoder: { FileMediaReference(decoder: $0) }) as? FileMediaReference)
|
||||||
case SynchronizeRecentlyUsedMediaOperationContentType.remove.rawValue:
|
case SynchronizeRecentlyUsedMediaOperationContentType.remove.rawValue:
|
||||||
self = .remove(id: decoder.decodeInt64ForKey("i", orElse: 0), accessHash: decoder.decodeInt64ForKey("h", orElse: 0))
|
self = .remove(id: decoder.decodeInt64ForKey("i", orElse: 0), accessHash: decoder.decodeInt64ForKey("h", orElse: 0))
|
||||||
|
case SynchronizeRecentlyUsedMediaOperationContentType.clear.rawValue:
|
||||||
|
self = .clear
|
||||||
case SynchronizeRecentlyUsedMediaOperationContentType.sync.rawValue:
|
case SynchronizeRecentlyUsedMediaOperationContentType.sync.rawValue:
|
||||||
self = .sync
|
self = .sync
|
||||||
default:
|
default:
|
||||||
@ -47,6 +51,8 @@ enum SynchronizeRecentlyUsedMediaOperationContent: PostboxCoding {
|
|||||||
encoder.encodeInt32(SynchronizeRecentlyUsedMediaOperationContentType.remove.rawValue, forKey: "r")
|
encoder.encodeInt32(SynchronizeRecentlyUsedMediaOperationContentType.remove.rawValue, forKey: "r")
|
||||||
encoder.encodeInt64(id, forKey: "i")
|
encoder.encodeInt64(id, forKey: "i")
|
||||||
encoder.encodeInt64(accessHash, forKey: "h")
|
encoder.encodeInt64(accessHash, forKey: "h")
|
||||||
|
case .clear:
|
||||||
|
encoder.encodeInt32(SynchronizeRecentlyUsedMediaOperationContentType.clear.rawValue, forKey: "r")
|
||||||
case .sync:
|
case .sync:
|
||||||
encoder.encodeInt32(SynchronizeRecentlyUsedMediaOperationContentType.sync.rawValue, forKey: "r")
|
encoder.encodeInt32(SynchronizeRecentlyUsedMediaOperationContentType.sync.rawValue, forKey: "r")
|
||||||
}
|
}
|
||||||
@ -103,3 +109,9 @@ func addRecentlyUsedSticker(transaction: Transaction, fileReference: FileMediaRe
|
|||||||
addSynchronizeRecentlyUsedMediaOperation(transaction: transaction, category: .stickers, operation: .add(id: resource.fileId, accessHash: resource.accessHash, fileReference: fileReference))
|
addSynchronizeRecentlyUsedMediaOperation(transaction: transaction, category: .stickers, operation: .add(id: resource.fileId, accessHash: resource.accessHash, fileReference: fileReference))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public func clearRecentlyUsedStickers(transaction: Transaction) {
|
||||||
|
transaction.replaceOrderedItemListItems(collectionId: Namespaces.OrderedItemList.CloudRecentStickers, items: [])
|
||||||
|
addSynchronizeRecentlyUsedMediaOperation(transaction: transaction, category: .stickers, operation: .clear)
|
||||||
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user