From 82e5d46cb209cbaf9fc14683ccfdf96fd56ebbee Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Thu, 30 May 2019 17:33:41 -0400 Subject: [PATCH] Respond to CR. --- .../Stickers/ManageStickersViewController.swift | 10 +--------- .../Messages/Stickers/KnownStickerPack+SDS.swift | 10 +++++----- .../src/Messages/Stickers/KnownStickerPack.h | 4 ++-- .../src/Messages/Stickers/KnownStickerPack.m | 15 ++++----------- 4 files changed, 12 insertions(+), 27 deletions(-) diff --git a/SignalMessaging/ViewControllers/Stickers/ManageStickersViewController.swift b/SignalMessaging/ViewControllers/Stickers/ManageStickersViewController.swift index cdb99fe8f1..c08bcfb035 100644 --- a/SignalMessaging/ViewControllers/Stickers/ManageStickersViewController.swift +++ b/SignalMessaging/ViewControllers/Stickers/ManageStickersViewController.swift @@ -169,15 +169,7 @@ public class ManageStickersViewController: OWSTableViewController { .map { installedSource($0.info) } let sortKnownPacks = { (pack0: KnownStickerPack, pack1: KnownStickerPack) -> Bool in - guard let date0 = pack0.dateCreated else { - owsFailDebug("Missing date created.") - return false - } - guard let date1 = pack1.dateCreated else { - owsFailDebug("Missing date created.") - return false - } - return date0 > date1 + return pack0.dateCreated > pack1.dateCreated } let allKnownStickerPacks = StickerManager.allKnownStickerPacks(transaction: transaction) let availableKnownStickerPacks = allKnownStickerPacks.filter { !allPackInfos.contains($0.info) } diff --git a/SignalServiceKit/src/Messages/Stickers/KnownStickerPack+SDS.swift b/SignalServiceKit/src/Messages/Stickers/KnownStickerPack+SDS.swift index 875268fe01..cd58a5e05a 100644 --- a/SignalServiceKit/src/Messages/Stickers/KnownStickerPack+SDS.swift +++ b/SignalServiceKit/src/Messages/Stickers/KnownStickerPack+SDS.swift @@ -22,7 +22,7 @@ public struct KnownStickerPackRecord: Codable, FetchableRecord, PersistableRecor public let uniqueId: String // Base class properties - public let dateCreated: Date? + public let dateCreated: Date public let info: Data public let referenceCount: Int @@ -67,7 +67,7 @@ extension KnownStickerPack { case .knownStickerPack: let uniqueId: String = record.uniqueId - let dateCreated: Date? = record.dateCreated + let dateCreated: Date = record.dateCreated let infoSerialized: Data = record.info let info: StickerPackInfo = try SDSDeserialization.unarchive(infoSerialized, name: "info") let referenceCount: Int = record.referenceCount @@ -108,7 +108,7 @@ extension KnownStickerPackSerializer { static let idColumn = SDSColumnMetadata(columnName: "id", columnType: .primaryKey, columnIndex: 1) static let uniqueIdColumn = SDSColumnMetadata(columnName: "uniqueId", columnType: .unicodeString, columnIndex: 2) // Base class properties - static let dateCreatedColumn = SDSColumnMetadata(columnName: "dateCreated", columnType: .int64, isOptional: true, columnIndex: 3) + static let dateCreatedColumn = SDSColumnMetadata(columnName: "dateCreated", columnType: .int64, columnIndex: 3) static let infoColumn = SDSColumnMetadata(columnName: "info", columnType: .blob, columnIndex: 4) static let referenceCountColumn = SDSColumnMetadata(columnName: "referenceCount", columnType: .int64, columnIndex: 5) @@ -151,7 +151,7 @@ extension KnownStickerPackSerializer { case .knownStickerPack: let uniqueId = try deserializer.string(at: uniqueIdColumn.columnIndex) - let dateCreated = try deserializer.optionalDate(at: dateCreatedColumn.columnIndex) + let dateCreated = try deserializer.date(at: dateCreatedColumn.columnIndex) let infoSerialized: Data = try deserializer.blob(at: infoColumn.columnIndex) let info: StickerPackInfo = try SDSDeserializer.unarchive(infoSerialized) let referenceCount = Int(try deserializer.int64(at: referenceCountColumn.columnIndex)) @@ -411,7 +411,7 @@ class KnownStickerPackSerializer: SDSSerializer { public func updateColumnValues() -> [DatabaseValueConvertible] { let result: [DatabaseValueConvertible] = [ - self.model.dateCreated ?? DatabaseValue.null, + self.model.dateCreated, SDSDeserializer.archive(self.model.info) ?? DatabaseValue.null, self.model.referenceCount diff --git a/SignalServiceKit/src/Messages/Stickers/KnownStickerPack.h b/SignalServiceKit/src/Messages/Stickers/KnownStickerPack.h index e4d0db61fe..409331b5e3 100644 --- a/SignalServiceKit/src/Messages/Stickers/KnownStickerPack.h +++ b/SignalServiceKit/src/Messages/Stickers/KnownStickerPack.h @@ -13,7 +13,7 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, readonly) StickerPackInfo *info; @property (nonatomic) NSInteger referenceCount; -@property (nonatomic, readonly, nullable) NSDate *dateCreated; +@property (nonatomic, readonly) NSDate *dateCreated; - (instancetype)initWithInfo:(StickerPackInfo *)info; @@ -24,7 +24,7 @@ NS_ASSUME_NONNULL_BEGIN // clang-format off - (instancetype)initWithUniqueId:(NSString *)uniqueId - dateCreated:(nullable NSDate *)dateCreated + dateCreated:(NSDate *)dateCreated info:(StickerPackInfo *)info referenceCount:(NSInteger)referenceCount NS_SWIFT_NAME(init(uniqueId:dateCreated:info:referenceCount:)); diff --git a/SignalServiceKit/src/Messages/Stickers/KnownStickerPack.m b/SignalServiceKit/src/Messages/Stickers/KnownStickerPack.m index 50708536b8..f46215af6e 100644 --- a/SignalServiceKit/src/Messages/Stickers/KnownStickerPack.m +++ b/SignalServiceKit/src/Messages/Stickers/KnownStickerPack.m @@ -32,7 +32,9 @@ NS_ASSUME_NONNULL_BEGIN return nil; } - [self sdsFinalizeKnownStickerPack]; + if (_dateCreated == nil) { + _dateCreated = [NSDate new]; + } return self; } @@ -44,7 +46,7 @@ NS_ASSUME_NONNULL_BEGIN // clang-format off - (instancetype)initWithUniqueId:(NSString *)uniqueId - dateCreated:(nullable NSDate *)dateCreated + dateCreated:(NSDate *)dateCreated info:(StickerPackInfo *)info referenceCount:(NSInteger)referenceCount { @@ -58,8 +60,6 @@ NS_ASSUME_NONNULL_BEGIN _info = info; _referenceCount = referenceCount; - [self sdsFinalizeKnownStickerPack]; - return self; } @@ -67,13 +67,6 @@ NS_ASSUME_NONNULL_BEGIN // --- CODE GENERATION MARKER -- (void)sdsFinalizeKnownStickerPack -{ - if (_dateCreated == nil) { - _dateCreated = [NSDate new]; - } -} - + (NSString *)uniqueIdForStickerPackInfo:(StickerPackInfo *)info { return info.asKey;