fix remove from rail when deleted

pull/1/head
Michael Kirk 7 years ago
parent 078799c875
commit f5de076c66

@ -9,19 +9,32 @@ public enum GalleryDirection {
}
class MediaGalleryAlbum {
private(set) var items: [MediaGalleryItem]
private var originalItems: [MediaGalleryItem]
var items: [MediaGalleryItem] {
get {
guard let mediaGalleryDataSource = self.mediaGalleryDataSource else {
owsFailDebug("mediaGalleryDataSource was unexpectedly nil")
return originalItems
}
return originalItems.filter { !mediaGalleryDataSource.deletedGalleryItems.contains($0) }
}
}
weak var mediaGalleryDataSource: MediaGalleryDataSource?
init(items: [MediaGalleryItem]) {
self.items = items
self.originalItems = items
}
func add(item: MediaGalleryItem) {
guard !items.contains(item) else {
guard !originalItems.contains(item) else {
return
}
items.append(item)
items.sort { (lhs, rhs) -> Bool in
originalItems.append(item)
originalItems.sort { (lhs, rhs) -> Bool in
return lhs.albumIndex < rhs.albumIndex
}
}
@ -205,6 +218,9 @@ protocol MediaGalleryDataSource: class {
var sections: [GalleryDate: [MediaGalleryItem]] { get }
var sectionDates: [GalleryDate] { get }
var deletedAttachments: Set<TSAttachment> { get }
var deletedGalleryItems: Set<MediaGalleryItem> { get }
func ensureGalleryItemsLoaded(_ direction: GalleryDirection, item: MediaGalleryItem, amount: UInt, completion: ((IndexSet, [IndexPath]) -> Void)?)
func galleryItem(before currentItem: MediaGalleryItem) -> MediaGalleryItem?
@ -301,6 +317,9 @@ class MediaGallery: NSObject, MediaGalleryDataSource, MediaTileViewControllerDel
@objc
weak public var navigationController: MediaGalleryNavigationController!
var deletedAttachments: Set<TSAttachment> = Set()
var deletedGalleryItems: Set<MediaGalleryItem> = Set()
private var pageViewController: MediaPageViewController?
private let uiDatabaseConnection: YapDatabaseConnection
@ -732,7 +751,7 @@ class MediaGallery: NSObject, MediaGalleryDataSource, MediaTileViewControllerDel
guard let existingAlbum = galleryAlbums[albumMessageId] else {
let newAlbum = MediaGalleryAlbum(items: [item])
galleryAlbums[albumMessageId] = newAlbum
newAlbum.mediaGalleryDataSource = self
return newAlbum
}
@ -889,9 +908,6 @@ class MediaGallery: NSObject, MediaGalleryDataSource, MediaTileViewControllerDel
dataSourceDelegates.append(Weak(value: dataSourceDelegate))
}
var deletedAttachments: Set<TSAttachment> = Set()
var deletedGalleryItems: Set<MediaGalleryItem> = Set()
func delete(items: [MediaGalleryItem], initiatedBy: MediaGalleryDataSourceDelegate) {
AssertIsOnMainThread()

Loading…
Cancel
Save