From 55ef7bd02fc4c7120976507ee7cdae55101bfdcb Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Fri, 3 May 2019 11:32:58 -0400 Subject: [PATCH] Sort sticker packs in sticker management view. --- Pods | 2 +- .../ManageStickersViewController.swift | 8 ++++++-- .../Messages/Stickers/StickerManager.swift | 16 +++++++++++----- SignalServiceKit/src/Util/Date+SSK.swift | 19 +++++++++++++++++++ 4 files changed, 37 insertions(+), 8 deletions(-) create mode 100644 SignalServiceKit/src/Util/Date+SSK.swift diff --git a/Pods b/Pods index 46a69a1e77..4f7bfae49e 160000 --- a/Pods +++ b/Pods @@ -1 +1 @@ -Subproject commit 46a69a1e7794ebf156f29b252208691dc980bd3f +Subproject commit 4f7bfae49edd3ad1225837da518882f0eff1aec4 diff --git a/SignalMessaging/ViewControllers/Stickers/ManageStickersViewController.swift b/SignalMessaging/ViewControllers/Stickers/ManageStickersViewController.swift index 1f5cd6244b..5fc0d7f79d 100644 --- a/SignalMessaging/ViewControllers/Stickers/ManageStickersViewController.swift +++ b/SignalMessaging/ViewControllers/Stickers/ManageStickersViewController.swift @@ -104,8 +104,12 @@ public class ManageStickersViewController: OWSTableViewController { private var availableStickerPacks = [StickerPack]() private func updateState() { - installedStickerPacks = StickerManager.installedStickerPacks() - availableStickerPacks = StickerManager.availableStickerPacks() + installedStickerPacks = StickerManager.installedStickerPacks().sorted { + $0.dateSaved > $1.dateSaved + } + availableStickerPacks = StickerManager.availableStickerPacks().sorted { + $0.dateSaved > $1.dateSaved + } updateTableContents() } diff --git a/SignalServiceKit/src/Messages/Stickers/StickerManager.swift b/SignalServiceKit/src/Messages/Stickers/StickerManager.swift index 1778fbb254..980f3ce1b7 100644 --- a/SignalServiceKit/src/Messages/Stickers/StickerManager.swift +++ b/SignalServiceKit/src/Messages/Stickers/StickerManager.swift @@ -823,16 +823,22 @@ public class StickerManager: NSObject { #if DEBUG @objc public class func uninstallAllStickerPacks() { - var stickerPacks = [StickerPack]() - databaseStorage.write { (_) in - stickerPacks = installedStickerPacks() - } - + let stickerPacks = installedStickerPacks() for stickerPack in stickerPacks { uninstallStickerPack(stickerPackInfo: stickerPack.info) } } + @objc + public class func removeAllStickerPacks() { + let stickerPacks = allStickerPacks() + databaseStorage.write { (transaction) in + for stickerPack in stickerPacks { + stickerPack.anyRemove(transaction: transaction) + } + } + } + @objc public class func tryToInstallAllAvailableStickerPacks() { databaseStorage.write { (transaction) in diff --git a/SignalServiceKit/src/Util/Date+SSK.swift b/SignalServiceKit/src/Util/Date+SSK.swift new file mode 100644 index 0000000000..f11d12baf7 --- /dev/null +++ b/SignalServiceKit/src/Util/Date+SSK.swift @@ -0,0 +1,19 @@ +// +// Copyright (c) 2019 Open Whisper Systems. All rights reserved. +// + +import Foundation + +@objc +public extension NSDate { + @objc + var ows_millisecondsSince1970: UInt64 { + return NSDate.ows_millisecondsSince1970(for: self as Date) + } +} + +public extension Date { + var ows_millisecondsSince1970: UInt64 { + return (self as NSDate).ows_millisecondsSince1970 + } +}