mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Update API
This commit is contained in:
parent
6cadbd6cc3
commit
ada295a174
@ -25,8 +25,9 @@ extension ReactionsMessageAttribute {
|
|||||||
case let .messagePeerReaction(flags, peerId, date, reaction):
|
case let .messagePeerReaction(flags, peerId, date, reaction):
|
||||||
let isLarge = (flags & (1 << 0)) != 0
|
let isLarge = (flags & (1 << 0)) != 0
|
||||||
let isUnseen = (flags & (1 << 1)) != 0
|
let isUnseen = (flags & (1 << 1)) != 0
|
||||||
|
let isMy = (flags & (1 << 2)) != 0
|
||||||
if let reaction = MessageReaction.Reaction(apiReaction: reaction) {
|
if let reaction = MessageReaction.Reaction(apiReaction: reaction) {
|
||||||
return ReactionsMessageAttribute.RecentPeer(value: reaction, isLarge: isLarge, isUnseen: isUnseen, peerId: peerId.peerId, timestamp: date)
|
return ReactionsMessageAttribute.RecentPeer(value: reaction, isLarge: isLarge, isUnseen: isUnseen, isMy: isMy, peerId: peerId.peerId, timestamp: date)
|
||||||
} else {
|
} else {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -117,17 +118,17 @@ private func mergeReactions(reactions: [MessageReaction], recentPeers: [Reaction
|
|||||||
let pendingReactionSendAsPeerId = pendingReaction.sendAsPeerId ?? accountPeerId
|
let pendingReactionSendAsPeerId = pendingReaction.sendAsPeerId ?? accountPeerId
|
||||||
|
|
||||||
if let index = recentPeers.firstIndex(where: {
|
if let index = recentPeers.firstIndex(where: {
|
||||||
$0.value == pendingReaction.value && $0.peerId == pendingReactionSendAsPeerId
|
$0.value == pendingReaction.value && ($0.peerId == pendingReactionSendAsPeerId || $0.isMy)
|
||||||
}) {
|
}) {
|
||||||
recentPeers.remove(at: index)
|
recentPeers.remove(at: index)
|
||||||
}
|
}
|
||||||
recentPeers.append(ReactionsMessageAttribute.RecentPeer(value: pendingReaction.value, isLarge: false, isUnseen: false, peerId: pendingReactionSendAsPeerId, timestamp: Int32(CFAbsoluteTimeGetCurrent() + kCFAbsoluteTimeIntervalSince1970)))
|
recentPeers.append(ReactionsMessageAttribute.RecentPeer(value: pendingReaction.value, isLarge: false, isUnseen: false, isMy: true, peerId: pendingReactionSendAsPeerId, timestamp: Int32(CFAbsoluteTimeGetCurrent() + kCFAbsoluteTimeIntervalSince1970)))
|
||||||
}
|
}
|
||||||
|
|
||||||
for i in (0 ..< result.count).reversed() {
|
for i in (0 ..< result.count).reversed() {
|
||||||
if result[i].chosenOrder != nil {
|
if result[i].chosenOrder != nil {
|
||||||
if !pending.contains(where: { $0.value == result[i].value }) {
|
if !pending.contains(where: { $0.value == result[i].value }) {
|
||||||
if let index = recentPeers.firstIndex(where: { $0.value == result[i].value && $0.peerId == accountPeerId }) {
|
if let index = recentPeers.firstIndex(where: { $0.value == result[i].value && ($0.peerId == accountPeerId || $0.isMy) }) {
|
||||||
recentPeers.remove(at: index)
|
recentPeers.remove(at: index)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -191,8 +192,9 @@ extension ReactionsMessageAttribute {
|
|||||||
case let .messagePeerReaction(flags, peerId, date, reaction):
|
case let .messagePeerReaction(flags, peerId, date, reaction):
|
||||||
let isLarge = (flags & (1 << 0)) != 0
|
let isLarge = (flags & (1 << 0)) != 0
|
||||||
let isUnseen = (flags & (1 << 1)) != 0
|
let isUnseen = (flags & (1 << 1)) != 0
|
||||||
|
let isMy = (flags & (1 << 2)) != 0
|
||||||
if let reaction = MessageReaction.Reaction(apiReaction: reaction) {
|
if let reaction = MessageReaction.Reaction(apiReaction: reaction) {
|
||||||
return ReactionsMessageAttribute.RecentPeer(value: reaction, isLarge: isLarge, isUnseen: isUnseen, peerId: peerId.peerId, timestamp: date)
|
return ReactionsMessageAttribute.RecentPeer(value: reaction, isLarge: isLarge, isUnseen: isUnseen, isMy: isMy, peerId: peerId.peerId, timestamp: date)
|
||||||
} else {
|
} else {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -118,13 +118,15 @@ public final class ReactionsMessageAttribute: Equatable, MessageAttribute {
|
|||||||
public var value: MessageReaction.Reaction
|
public var value: MessageReaction.Reaction
|
||||||
public var isLarge: Bool
|
public var isLarge: Bool
|
||||||
public var isUnseen: Bool
|
public var isUnseen: Bool
|
||||||
|
public var isMy: Bool
|
||||||
public var peerId: PeerId
|
public var peerId: PeerId
|
||||||
public var timestamp: Int32?
|
public var timestamp: Int32?
|
||||||
|
|
||||||
public init(value: MessageReaction.Reaction, isLarge: Bool, isUnseen: Bool, peerId: PeerId, timestamp: Int32?) {
|
public init(value: MessageReaction.Reaction, isLarge: Bool, isUnseen: Bool, isMy: Bool, peerId: PeerId, timestamp: Int32?) {
|
||||||
self.value = value
|
self.value = value
|
||||||
self.isLarge = isLarge
|
self.isLarge = isLarge
|
||||||
self.isUnseen = isUnseen
|
self.isUnseen = isUnseen
|
||||||
|
self.isMy = isMy
|
||||||
self.peerId = peerId
|
self.peerId = peerId
|
||||||
self.timestamp = timestamp
|
self.timestamp = timestamp
|
||||||
}
|
}
|
||||||
@ -137,6 +139,7 @@ public final class ReactionsMessageAttribute: Equatable, MessageAttribute {
|
|||||||
}
|
}
|
||||||
self.isLarge = decoder.decodeInt32ForKey("l", orElse: 0) != 0
|
self.isLarge = decoder.decodeInt32ForKey("l", orElse: 0) != 0
|
||||||
self.isUnseen = decoder.decodeInt32ForKey("u", orElse: 0) != 0
|
self.isUnseen = decoder.decodeInt32ForKey("u", orElse: 0) != 0
|
||||||
|
self.isMy = decoder.decodeInt32ForKey("my", orElse: 0) != 0
|
||||||
self.peerId = PeerId(decoder.decodeInt64ForKey("p", orElse: 0))
|
self.peerId = PeerId(decoder.decodeInt64ForKey("p", orElse: 0))
|
||||||
self.timestamp = decoder.decodeOptionalInt32ForKey("ts")
|
self.timestamp = decoder.decodeOptionalInt32ForKey("ts")
|
||||||
}
|
}
|
||||||
@ -150,6 +153,7 @@ public final class ReactionsMessageAttribute: Equatable, MessageAttribute {
|
|||||||
}
|
}
|
||||||
encoder.encodeInt32(self.isLarge ? 1 : 0, forKey: "l")
|
encoder.encodeInt32(self.isLarge ? 1 : 0, forKey: "l")
|
||||||
encoder.encodeInt32(self.isUnseen ? 1 : 0, forKey: "u")
|
encoder.encodeInt32(self.isUnseen ? 1 : 0, forKey: "u")
|
||||||
|
encoder.encodeInt32(self.isMy ? 1 : 0, forKey: "my")
|
||||||
encoder.encodeInt64(self.peerId.toInt64(), forKey: "p")
|
encoder.encodeInt64(self.peerId.toInt64(), forKey: "p")
|
||||||
if let timestamp = self.timestamp {
|
if let timestamp = self.timestamp {
|
||||||
encoder.encodeInt32(timestamp, forKey: "ts")
|
encoder.encodeInt32(timestamp, forKey: "ts")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user