Web app improvements

This commit is contained in:
Ilya Laktyushin
2022-04-05 16:50:09 +04:00
parent f85ed53d48
commit d3361962b6
23 changed files with 260 additions and 104 deletions

View File

@@ -224,6 +224,7 @@ public enum AnyMediaReference: Equatable {
case stickerPack(stickerPack: StickerPackReference, media: Media)
case savedGif(media: Media)
case avatarList(peer: PeerReference, media: Media)
case attachBot(peer: PeerReference, media: Media)
public static func ==(lhs: AnyMediaReference, rhs: AnyMediaReference) -> Bool {
switch lhs {
@@ -263,6 +264,12 @@ public enum AnyMediaReference: Equatable {
} else {
return false
}
case let .attachBot(lhsPeer, lhsMedia):
if case let .attachBot(rhsPeer, rhsMedia) = rhs, lhsPeer == rhsPeer, lhsMedia.isEqual(to: rhsMedia) {
return true
} else {
return false
}
}
}
@@ -280,6 +287,8 @@ public enum AnyMediaReference: Equatable {
return .savedGif
case .avatarList:
return nil
case .attachBot:
return nil
}
}
@@ -309,6 +318,10 @@ public enum AnyMediaReference: Equatable {
if let media = media as? T {
return .avatarList(peer: peer, media: media)
}
case let .attachBot(peer, media):
if let media = media as? T {
return .attachBot(peer: peer, media: media)
}
}
return nil
}
@@ -327,6 +340,8 @@ public enum AnyMediaReference: Equatable {
return media
case let .avatarList(_, media):
return media
case let .attachBot(_, media):
return media
}
}
@@ -405,6 +420,7 @@ public enum MediaReference<T: Media> {
case stickerPack
case savedGif
case avatarList
case attachBot
}
case standalone(media: T)
@@ -413,6 +429,7 @@ public enum MediaReference<T: Media> {
case stickerPack(stickerPack: StickerPackReference, media: T)
case savedGif(media: T)
case avatarList(peer: PeerReference, media: T)
case attachBot(peer: PeerReference, media: T)
public init?(decoder: PostboxDecoder) {
guard let caseIdValue = decoder.decodeOptionalInt32ForKey("_r"), let caseId = CodingCase(rawValue: caseIdValue) else {
@@ -448,11 +465,17 @@ public enum MediaReference<T: Media> {
}
self = .savedGif(media: media)
case .avatarList:
let peer = decoder.decodeObjectForKey("pr", decoder: { StickerPackReference(decoder: $0) }) as! PeerReference
let peer = decoder.decodeObjectForKey("pr", decoder: { PeerReference(decoder: $0) }) as! PeerReference
guard let media = decoder.decodeObjectForKey("m") as? T else {
return nil
}
self = .avatarList(peer: peer, media: media)
case .attachBot:
let peer = decoder.decodeObjectForKey("pr", decoder: { PeerReference(decoder: $0) }) as! PeerReference
guard let media = decoder.decodeObjectForKey("m") as? T else {
return nil
}
self = .attachBot(peer: peer, media: media)
}
}
@@ -480,6 +503,10 @@ public enum MediaReference<T: Media> {
encoder.encodeInt32(CodingCase.avatarList.rawValue, forKey: "_r")
encoder.encodeObject(peer, forKey: "pr")
encoder.encodeObject(media, forKey: "m")
case let .attachBot(peer, media):
encoder.encodeInt32(CodingCase.attachBot.rawValue, forKey: "_r")
encoder.encodeObject(peer, forKey: "pr")
encoder.encodeObject(media, forKey: "m")
}
}
@@ -497,6 +524,8 @@ public enum MediaReference<T: Media> {
return .savedGif(media: media)
case let .avatarList(peer, media):
return .avatarList(peer: peer, media: media)
case let .attachBot(peer, media):
return .attachBot(peer: peer, media: media)
}
}
@@ -518,6 +547,8 @@ public enum MediaReference<T: Media> {
return media
case let .avatarList(_, media):
return media
case let .attachBot(_, media):
return media
}
}