|
@@ -8,7 +8,7 @@ class GalleryViewController: UIViewController {
|
|
// MARK: - data
|
|
// MARK: - data
|
|
private let chatId: Int
|
|
private let chatId: Int
|
|
private var mediaMessageIds: [Int]
|
|
private var mediaMessageIds: [Int]
|
|
- private var items: [Int: GalleryItem] = [:]
|
|
|
|
|
|
+ private var galleryItemCache: [Int: GalleryItem] = [:]
|
|
|
|
|
|
// MARK: - subview specs
|
|
// MARK: - subview specs
|
|
private let gridDefaultSpacing: CGFloat = 5
|
|
private let gridDefaultSpacing: CGFloat = 5
|
|
@@ -160,10 +160,10 @@ class GalleryViewController: UIViewController {
|
|
extension GalleryViewController: UICollectionViewDataSourcePrefetching {
|
|
extension GalleryViewController: UICollectionViewDataSourcePrefetching {
|
|
func collectionView(_ collectionView: UICollectionView, prefetchItemsAt indexPaths: [IndexPath]) {
|
|
func collectionView(_ collectionView: UICollectionView, prefetchItemsAt indexPaths: [IndexPath]) {
|
|
indexPaths.forEach {
|
|
indexPaths.forEach {
|
|
- if items[$0.row] == nil {
|
|
|
|
|
|
+ if galleryItemCache[$0.row] == nil {
|
|
let message = dcContext.getMessage(id: mediaMessageIds[$0.row])
|
|
let message = dcContext.getMessage(id: mediaMessageIds[$0.row])
|
|
let item = GalleryItem(msg: message)
|
|
let item = GalleryItem(msg: message)
|
|
- items[$0.row] = item
|
|
|
|
|
|
+ galleryItemCache[$0.row] = item
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -189,12 +189,12 @@ extension GalleryViewController: UICollectionViewDataSource, UICollectionViewDel
|
|
|
|
|
|
let msgId = mediaMessageIds[indexPath.row]
|
|
let msgId = mediaMessageIds[indexPath.row]
|
|
var item: GalleryItem
|
|
var item: GalleryItem
|
|
- if let galleryItem = items[indexPath.row] {
|
|
|
|
|
|
+ if let galleryItem = galleryItemCache[indexPath.row] {
|
|
item = galleryItem
|
|
item = galleryItem
|
|
} else {
|
|
} else {
|
|
let message = dcContext.getMessage(id: msgId)
|
|
let message = dcContext.getMessage(id: msgId)
|
|
let galleryItem = GalleryItem(msg: message)
|
|
let galleryItem = GalleryItem(msg: message)
|
|
- items[indexPath.row] = galleryItem
|
|
|
|
|
|
+ galleryItemCache[indexPath.row] = galleryItem
|
|
item = galleryItem
|
|
item = galleryItem
|
|
}
|
|
}
|
|
galleryCell.update(item: item)
|
|
galleryCell.update(item: item)
|