mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-22 14:20:20 +00:00
Refactoring
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import Foundation
|
||||
import Postbox
|
||||
|
||||
public struct CloudFileMediaResourceId: MediaResourceId, Hashable, Equatable {
|
||||
public struct CloudFileMediaResourceId: Hashable, Equatable {
|
||||
let datacenterId: Int
|
||||
let volumeId: Int64
|
||||
let localId: Int32
|
||||
@@ -17,14 +17,6 @@ public struct CloudFileMediaResourceId: MediaResourceId, Hashable, Equatable {
|
||||
public var uniqueId: String {
|
||||
return "telegram-cloud-file-\(self.datacenterId)-\(self.volumeId)-\(self.localId)-\(self.secret)"
|
||||
}
|
||||
|
||||
public func isEqual(to: MediaResourceId) -> Bool {
|
||||
if let to = to as? CloudFileMediaResourceId {
|
||||
return self == to
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public final class CloudFileMediaResource: TelegramMediaResource {
|
||||
@@ -36,7 +28,7 @@ public final class CloudFileMediaResource: TelegramMediaResource {
|
||||
public let fileReference: Data?
|
||||
|
||||
public var id: MediaResourceId {
|
||||
return CloudFileMediaResourceId(datacenterId: self.datacenterId, volumeId: self.volumeId, localId: self.localId, secret: self.secret)
|
||||
return MediaResourceId(CloudFileMediaResourceId(datacenterId: self.datacenterId, volumeId: self.volumeId, localId: self.localId, secret: self.secret).uniqueId)
|
||||
}
|
||||
|
||||
public init(datacenterId: Int, volumeId: Int64, localId: Int32, secret: Int64, size: Int?, fileReference: Data?) {
|
||||
@@ -87,7 +79,7 @@ public final class CloudFileMediaResource: TelegramMediaResource {
|
||||
}
|
||||
}
|
||||
|
||||
public struct CloudPhotoSizeMediaResourceId: MediaResourceId, Hashable, Equatable {
|
||||
public struct CloudPhotoSizeMediaResourceId: Hashable, Equatable {
|
||||
let datacenterId: Int32
|
||||
let photoId: Int64
|
||||
let sizeSpec: String
|
||||
@@ -101,14 +93,6 @@ public struct CloudPhotoSizeMediaResourceId: MediaResourceId, Hashable, Equatabl
|
||||
public var uniqueId: String {
|
||||
return "telegram-cloud-photo-size-\(self.datacenterId)-\(self.photoId)-\(self.sizeSpec)"
|
||||
}
|
||||
|
||||
public func isEqual(to: MediaResourceId) -> Bool {
|
||||
if let to = to as? CloudPhotoSizeMediaResourceId {
|
||||
return self == to
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public final class CloudPhotoSizeMediaResource: TelegramMediaResource {
|
||||
@@ -120,7 +104,7 @@ public final class CloudPhotoSizeMediaResource: TelegramMediaResource {
|
||||
public let fileReference: Data?
|
||||
|
||||
public var id: MediaResourceId {
|
||||
return CloudPhotoSizeMediaResourceId(datacenterId: Int32(self.datacenterId), photoId: self.photoId, sizeSpec: self.sizeSpec)
|
||||
return MediaResourceId(CloudPhotoSizeMediaResourceId(datacenterId: Int32(self.datacenterId), photoId: self.photoId, sizeSpec: self.sizeSpec).uniqueId)
|
||||
}
|
||||
|
||||
public init(datacenterId: Int32, photoId: Int64, accessHash: Int64, sizeSpec: String, size: Int?, fileReference: Data?) {
|
||||
@@ -171,7 +155,7 @@ public final class CloudPhotoSizeMediaResource: TelegramMediaResource {
|
||||
}
|
||||
}
|
||||
|
||||
public struct CloudDocumentSizeMediaResourceId: MediaResourceId, Hashable, Equatable {
|
||||
public struct CloudDocumentSizeMediaResourceId: Hashable, Equatable {
|
||||
let datacenterId: Int32
|
||||
let documentId: Int64
|
||||
let sizeSpec: String
|
||||
@@ -185,14 +169,6 @@ public struct CloudDocumentSizeMediaResourceId: MediaResourceId, Hashable, Equat
|
||||
public var uniqueId: String {
|
||||
return "telegram-cloud-document-size-\(self.datacenterId)-\(self.documentId)-\(self.sizeSpec)"
|
||||
}
|
||||
|
||||
public func isEqual(to: MediaResourceId) -> Bool {
|
||||
if let to = to as? CloudDocumentSizeMediaResourceId {
|
||||
return self == to
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public final class CloudDocumentSizeMediaResource: TelegramMediaResource {
|
||||
@@ -203,7 +179,7 @@ public final class CloudDocumentSizeMediaResource: TelegramMediaResource {
|
||||
public let fileReference: Data?
|
||||
|
||||
public var id: MediaResourceId {
|
||||
return CloudDocumentSizeMediaResourceId(datacenterId: Int32(self.datacenterId), documentId: self.documentId, sizeSpec: self.sizeSpec)
|
||||
return MediaResourceId(CloudDocumentSizeMediaResourceId(datacenterId: Int32(self.datacenterId), documentId: self.documentId, sizeSpec: self.sizeSpec).uniqueId)
|
||||
}
|
||||
|
||||
public init(datacenterId: Int32, documentId: Int64, accessHash: Int64, sizeSpec: String, fileReference: Data?) {
|
||||
@@ -248,7 +224,7 @@ public enum CloudPeerPhotoSizeSpec: Int32 {
|
||||
case fullSize
|
||||
}
|
||||
|
||||
public struct CloudPeerPhotoSizeMediaResourceId: MediaResourceId, Hashable, Equatable {
|
||||
public struct CloudPeerPhotoSizeMediaResourceId: Hashable, Equatable {
|
||||
let datacenterId: Int32
|
||||
let photoId: Int64?
|
||||
let sizeSpec: CloudPeerPhotoSizeSpec
|
||||
@@ -270,14 +246,6 @@ public struct CloudPeerPhotoSizeMediaResourceId: MediaResourceId, Hashable, Equa
|
||||
return "telegram-peer-photo-size-\(self.datacenterId)-\(self.sizeSpec.rawValue)-\(self.volumeId ?? 0)-\(self.localId ?? 0)"
|
||||
}
|
||||
}
|
||||
|
||||
public func isEqual(to: MediaResourceId) -> Bool {
|
||||
if let to = to as? CloudPeerPhotoSizeMediaResourceId {
|
||||
return self == to
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public final class CloudPeerPhotoSizeMediaResource: TelegramMediaResource {
|
||||
@@ -288,7 +256,7 @@ public final class CloudPeerPhotoSizeMediaResource: TelegramMediaResource {
|
||||
public let localId: Int32?
|
||||
|
||||
public var id: MediaResourceId {
|
||||
return CloudPeerPhotoSizeMediaResourceId(datacenterId: Int32(self.datacenterId), photoId: self.photoId, sizeSpec: self.sizeSpec, volumeId: self.volumeId, localId: self.localId)
|
||||
return MediaResourceId(CloudPeerPhotoSizeMediaResourceId(datacenterId: Int32(self.datacenterId), photoId: self.photoId, sizeSpec: self.sizeSpec, volumeId: self.volumeId, localId: self.localId).uniqueId)
|
||||
}
|
||||
|
||||
public init(datacenterId: Int32, photoId: Int64?, sizeSpec: CloudPeerPhotoSizeSpec, volumeId: Int64?, localId: Int32?) {
|
||||
@@ -336,7 +304,7 @@ public final class CloudPeerPhotoSizeMediaResource: TelegramMediaResource {
|
||||
}
|
||||
}
|
||||
|
||||
public struct CloudStickerPackThumbnailMediaResourceId: MediaResourceId, Hashable, Equatable {
|
||||
public struct CloudStickerPackThumbnailMediaResourceId: Hashable, Equatable {
|
||||
let datacenterId: Int32
|
||||
let thumbVersion: Int32?
|
||||
let volumeId: Int64?
|
||||
@@ -356,14 +324,6 @@ public struct CloudStickerPackThumbnailMediaResourceId: MediaResourceId, Hashabl
|
||||
return "telegram-stickerpackthumbnail-\(self.datacenterId)-\(self.volumeId ?? 0)-\(self.localId ?? 0)"
|
||||
}
|
||||
}
|
||||
|
||||
public func isEqual(to: MediaResourceId) -> Bool {
|
||||
if let to = to as? CloudStickerPackThumbnailMediaResourceId {
|
||||
return self == to
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public final class CloudStickerPackThumbnailMediaResource: TelegramMediaResource {
|
||||
@@ -373,7 +333,7 @@ public final class CloudStickerPackThumbnailMediaResource: TelegramMediaResource
|
||||
public let localId: Int32?
|
||||
|
||||
public var id: MediaResourceId {
|
||||
return CloudStickerPackThumbnailMediaResourceId(datacenterId: Int32(self.datacenterId), thumbVersion: self.thumbVersion, volumeId: self.volumeId, localId: self.localId)
|
||||
return MediaResourceId(CloudStickerPackThumbnailMediaResourceId(datacenterId: Int32(self.datacenterId), thumbVersion: self.thumbVersion, volumeId: self.volumeId, localId: self.localId).uniqueId)
|
||||
}
|
||||
|
||||
public init(datacenterId: Int32, thumbVersion: Int32?, volumeId: Int64?, localId: Int32?) {
|
||||
@@ -418,7 +378,7 @@ public final class CloudStickerPackThumbnailMediaResource: TelegramMediaResource
|
||||
}
|
||||
}
|
||||
|
||||
public struct CloudDocumentMediaResourceId: MediaResourceId, Hashable, Equatable {
|
||||
public struct CloudDocumentMediaResourceId: Hashable, Equatable {
|
||||
public let datacenterId: Int
|
||||
public let fileId: Int64
|
||||
|
||||
@@ -430,14 +390,6 @@ public struct CloudDocumentMediaResourceId: MediaResourceId, Hashable, Equatable
|
||||
public var uniqueId: String {
|
||||
return "telegram-cloud-document-\(self.datacenterId)-\(self.fileId)"
|
||||
}
|
||||
|
||||
public func isEqual(to: MediaResourceId) -> Bool {
|
||||
if let to = to as? CloudDocumentMediaResourceId {
|
||||
return self == to
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public final class CloudDocumentMediaResource: TelegramMediaResource {
|
||||
@@ -449,7 +401,7 @@ public final class CloudDocumentMediaResource: TelegramMediaResource {
|
||||
public let fileName: String?
|
||||
|
||||
public var id: MediaResourceId {
|
||||
return CloudDocumentMediaResourceId(datacenterId: self.datacenterId, fileId: self.fileId)
|
||||
return MediaResourceId(CloudDocumentMediaResourceId(datacenterId: self.datacenterId, fileId: self.fileId).uniqueId)
|
||||
}
|
||||
|
||||
public init(datacenterId: Int, fileId: Int64, accessHash: Int64, size: Int?, fileReference: Data?, fileName: String?) {
|
||||
@@ -504,20 +456,12 @@ public final class CloudDocumentMediaResource: TelegramMediaResource {
|
||||
}
|
||||
}
|
||||
|
||||
public struct LocalFileMediaResourceId: MediaResourceId, Hashable, Equatable {
|
||||
public struct LocalFileMediaResourceId: Hashable, Equatable {
|
||||
public let fileId: Int64
|
||||
|
||||
public var uniqueId: String {
|
||||
return "telegram-local-file-\(self.fileId)"
|
||||
}
|
||||
|
||||
public func isEqual(to: MediaResourceId) -> Bool {
|
||||
if let to = to as? LocalFileMediaResourceId {
|
||||
return self == to
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class LocalFileMediaResource: TelegramMediaResource, Codable {
|
||||
@@ -569,7 +513,7 @@ public class LocalFileMediaResource: TelegramMediaResource, Codable {
|
||||
}
|
||||
|
||||
public var id: MediaResourceId {
|
||||
return LocalFileMediaResourceId(fileId: self.fileId)
|
||||
return MediaResourceId(LocalFileMediaResourceId(fileId: self.fileId).uniqueId)
|
||||
}
|
||||
|
||||
public func isEqual(to: MediaResource) -> Bool {
|
||||
@@ -581,20 +525,12 @@ public class LocalFileMediaResource: TelegramMediaResource, Codable {
|
||||
}
|
||||
}
|
||||
|
||||
public struct LocalFileReferenceMediaResourceId: MediaResourceId, Hashable, Equatable {
|
||||
public struct LocalFileReferenceMediaResourceId: Hashable, Equatable {
|
||||
public let randomId: Int64
|
||||
|
||||
public var uniqueId: String {
|
||||
return "local-file-\(self.randomId)"
|
||||
}
|
||||
|
||||
public func isEqual(to: MediaResourceId) -> Bool {
|
||||
if let to = to as? LocalFileReferenceMediaResourceId {
|
||||
return self == to
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class LocalFileReferenceMediaResource: TelegramMediaResource {
|
||||
@@ -629,7 +565,7 @@ public class LocalFileReferenceMediaResource: TelegramMediaResource {
|
||||
}
|
||||
|
||||
public var id: MediaResourceId {
|
||||
return LocalFileReferenceMediaResourceId(randomId: self.randomId)
|
||||
return MediaResourceId(LocalFileReferenceMediaResourceId(randomId: self.randomId).uniqueId)
|
||||
}
|
||||
|
||||
public func isEqual(to: MediaResource) -> Bool {
|
||||
@@ -641,17 +577,9 @@ public class LocalFileReferenceMediaResource: TelegramMediaResource {
|
||||
}
|
||||
}
|
||||
|
||||
public struct HttpReferenceMediaResourceId: MediaResourceId, Hashable, Equatable {
|
||||
public struct HttpReferenceMediaResourceId: Hashable, Equatable {
|
||||
public let url: String
|
||||
|
||||
public func isEqual(to: MediaResourceId) -> Bool {
|
||||
if let to = to as? HttpReferenceMediaResourceId {
|
||||
return self == to
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
public var uniqueId: String {
|
||||
return "http-\(persistentHash32(self.url))"
|
||||
}
|
||||
@@ -685,7 +613,7 @@ public final class HttpReferenceMediaResource: TelegramMediaResource {
|
||||
}
|
||||
|
||||
public var id: MediaResourceId {
|
||||
return HttpReferenceMediaResourceId(url: self.url)
|
||||
return MediaResourceId(HttpReferenceMediaResourceId(url: self.url).uniqueId)
|
||||
}
|
||||
|
||||
public func isEqual(to: MediaResource) -> Bool {
|
||||
@@ -697,19 +625,11 @@ public final class HttpReferenceMediaResource: TelegramMediaResource {
|
||||
}
|
||||
}
|
||||
|
||||
public struct WebFileReferenceMediaResourceId: MediaResourceId, Hashable, Equatable {
|
||||
public struct WebFileReferenceMediaResourceId: Hashable, Equatable {
|
||||
public let url: String
|
||||
public let accessHash: Int64
|
||||
public let size: Int32
|
||||
|
||||
public func isEqual(to: MediaResourceId) -> Bool {
|
||||
if let to = to as? WebFileReferenceMediaResourceId {
|
||||
return self == to
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
public var uniqueId: String {
|
||||
return "proxy-\(persistentHash32(self.url))-\(size)-\(accessHash)"
|
||||
}
|
||||
@@ -739,7 +659,7 @@ public final class WebFileReferenceMediaResource: TelegramMediaResource {
|
||||
}
|
||||
|
||||
public var id: MediaResourceId {
|
||||
return WebFileReferenceMediaResourceId(url: self.url, accessHash: accessHash, size: self.size)
|
||||
return MediaResourceId(WebFileReferenceMediaResourceId(url: self.url, accessHash: accessHash, size: self.size).uniqueId)
|
||||
}
|
||||
|
||||
public func isEqual(to: MediaResource) -> Bool {
|
||||
@@ -752,7 +672,7 @@ public final class WebFileReferenceMediaResource: TelegramMediaResource {
|
||||
}
|
||||
|
||||
|
||||
public struct SecretFileMediaResourceId: MediaResourceId, Hashable, Equatable {
|
||||
public struct SecretFileMediaResourceId: Hashable, Equatable {
|
||||
public let fileId: Int64
|
||||
public let datacenterId: Int32
|
||||
|
||||
@@ -764,14 +684,6 @@ public struct SecretFileMediaResourceId: MediaResourceId, Hashable, Equatable {
|
||||
self.fileId = fileId
|
||||
self.datacenterId = datacenterId
|
||||
}
|
||||
|
||||
public func isEqual(to: MediaResourceId) -> Bool {
|
||||
if let to = to as? SecretFileMediaResourceId {
|
||||
return self == to
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public final class SecretFileMediaResource: TelegramMediaResource {
|
||||
@@ -813,7 +725,7 @@ public final class SecretFileMediaResource: TelegramMediaResource {
|
||||
}
|
||||
|
||||
public var id: MediaResourceId {
|
||||
return SecretFileMediaResourceId(fileId: self.fileId, datacenterId: Int32(self.datacenterId))
|
||||
return MediaResourceId(SecretFileMediaResourceId(fileId: self.fileId, datacenterId: Int32(self.datacenterId)).uniqueId)
|
||||
}
|
||||
|
||||
public func isEqual(to: MediaResource) -> Bool {
|
||||
@@ -843,7 +755,7 @@ public final class SecretFileMediaResource: TelegramMediaResource {
|
||||
}
|
||||
}
|
||||
|
||||
public struct EmptyMediaResourceId: MediaResourceId {
|
||||
public struct EmptyMediaResourceId {
|
||||
public var uniqueId: String {
|
||||
return "empty-resource"
|
||||
}
|
||||
@@ -851,10 +763,6 @@ public struct EmptyMediaResourceId: MediaResourceId {
|
||||
public var hashValue: Int {
|
||||
return 0
|
||||
}
|
||||
|
||||
public func isEqual(to: MediaResourceId) -> Bool {
|
||||
return to is EmptyMediaResourceId
|
||||
}
|
||||
}
|
||||
|
||||
public final class EmptyMediaResource: TelegramMediaResource {
|
||||
@@ -868,7 +776,7 @@ public final class EmptyMediaResource: TelegramMediaResource {
|
||||
}
|
||||
|
||||
public var id: MediaResourceId {
|
||||
return EmptyMediaResourceId()
|
||||
return MediaResourceId(EmptyMediaResourceId().uniqueId)
|
||||
}
|
||||
|
||||
public func isEqual(to: MediaResource) -> Bool {
|
||||
@@ -876,7 +784,7 @@ public final class EmptyMediaResource: TelegramMediaResource {
|
||||
}
|
||||
}
|
||||
|
||||
public struct WallpaperDataResourceId: MediaResourceId {
|
||||
public struct WallpaperDataResourceId {
|
||||
public var uniqueId: String {
|
||||
return "wallpaper-\(self.slug)"
|
||||
}
|
||||
@@ -890,16 +798,6 @@ public struct WallpaperDataResourceId: MediaResourceId {
|
||||
public init(slug: String) {
|
||||
self.slug = slug
|
||||
}
|
||||
|
||||
public func isEqual(to: MediaResourceId) -> Bool {
|
||||
guard let to = to as? WallpaperDataResourceId else {
|
||||
return false
|
||||
}
|
||||
if self.slug != to.slug {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
public final class WallpaperDataResource: TelegramMediaResource {
|
||||
@@ -918,7 +816,7 @@ public final class WallpaperDataResource: TelegramMediaResource {
|
||||
}
|
||||
|
||||
public var id: MediaResourceId {
|
||||
return WallpaperDataResourceId(slug: self.slug)
|
||||
return MediaResourceId(WallpaperDataResourceId(slug: self.slug).uniqueId)
|
||||
}
|
||||
|
||||
public func isEqual(to: MediaResource) -> Bool {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import Foundation
|
||||
import Postbox
|
||||
|
||||
public struct SecureFileMediaResourceId: MediaResourceId {
|
||||
public struct SecureFileMediaResourceId {
|
||||
public let fileId: Int64
|
||||
|
||||
public init(fileId: Int64) {
|
||||
@@ -15,21 +15,13 @@ public struct SecureFileMediaResourceId: MediaResourceId {
|
||||
public var hashValue: Int {
|
||||
return self.fileId.hashValue
|
||||
}
|
||||
|
||||
public func isEqual(to: MediaResourceId) -> Bool {
|
||||
if let to = to as? SecureFileMediaResourceId {
|
||||
return self.fileId == to.fileId
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public final class SecureFileMediaResource: TelegramMediaResource {
|
||||
public let file: SecureIdFileReference
|
||||
|
||||
public var id: MediaResourceId {
|
||||
return SecureFileMediaResourceId(fileId: self.file.id)
|
||||
return MediaResourceId(SecureFileMediaResourceId(fileId: self.file.id).uniqueId)
|
||||
}
|
||||
|
||||
public var datacenterId: Int {
|
||||
|
||||
@@ -554,7 +554,7 @@ public final class TelegramMediaFile: Media, Equatable, Codable {
|
||||
return false
|
||||
}
|
||||
|
||||
if !self.resource.id.isEqual(to: other.resource.id) {
|
||||
if self.resource.id != other.resource.id {
|
||||
return false
|
||||
}
|
||||
|
||||
|
||||
@@ -340,7 +340,7 @@ public final class TelegramMediaImageRepresentation: PostboxCoding, Equatable, C
|
||||
if self.dimensions != other.dimensions {
|
||||
return false
|
||||
}
|
||||
if !self.resource.id.isEqual(to: other.resource.id) {
|
||||
if self.resource.id != other.resource.id {
|
||||
return false
|
||||
}
|
||||
if self.progressiveSizes != other.progressiveSizes {
|
||||
|
||||
Reference in New Issue
Block a user