WIP: waiting on assets

// FREEBIE
This commit is contained in:
Michael Kirk 2018-03-20 12:05:23 -04:00
parent 6b47987342
commit 021c0db559
2 changed files with 44 additions and 1 deletions

View File

@ -25,6 +25,14 @@ public struct MediaGalleryItem: Equatable, Hashable {
return attachmentStream.isVideo()
}
var isAnimated: Bool {
return attachmentStream.isAnimated()
}
var isImage: Bool {
return attachmentStream.isImage()
}
var thumbnailImage: UIImage {
guard let image = attachmentStream.thumbnailImage() else {
owsFail("\(logTag) in \(#function) unexpectedly unable to build attachment thumbnail")

View File

@ -554,21 +554,44 @@ fileprivate class MediaGalleryCell: UICollectionViewCell {
public let imageView: UIImageView
private var tapGesture: UITapGestureRecognizer!
private let badgeView: UIImageView
private var item: MediaGalleryItem?
public weak var delegate: MediaGalleryCellDelegate?
// TODO real icons
let videoBadgeImage = #imageLiteral(resourceName: "video-video-selected")
let animatedBadgeImage = #imageLiteral(resourceName: "video-mute-selected")
override init(frame: CGRect) {
self.imageView = UIImageView()
imageView.contentMode = .scaleAspectFill
self.badgeView = UIImageView()
badgeView.contentMode = .scaleAspectFit
badgeView.isHidden = true
badgeView.backgroundColor = UIColor.white
let badgeLabel = UILabel()
// badgeLabel.text = "GIF"
badgeLabel.textColor = UIColor.gray
badgeLabel.adjustsFontSizeToFitWidth = true
badgeView.addSubview(badgeLabel)
badgeLabel.autoPinEdgesToSuperviewEdges()
super.init(frame: frame)
self.tapGesture = UITapGestureRecognizer(target: self, action: #selector(didTap))
self.addGestureRecognizer(tapGesture)
self.clipsToBounds = true
self.addSubview(imageView)
self.contentView.addSubview(imageView)
self.contentView.addSubview(badgeView)
badgeView.autoPinEdge(toSuperviewEdge: .leading, withInset: 3)
badgeView.autoPinEdge(toSuperviewEdge: .bottom, withInset: 3)
badgeView.autoSetDimensions(to: CGSize(width: 15, height: 10))
badgeView.layer.cornerRadius = 2
imageView.autoPinEdgesToSuperviewEdges()
}
@ -580,6 +603,17 @@ fileprivate class MediaGalleryCell: UICollectionViewCell {
public func configure(item: MediaGalleryItem, delegate: MediaGalleryCellDelegate) {
self.item = item
self.imageView.image = item.thumbnailImage
if item.isVideo {
self.badgeView.isHidden = false
// self.badgeView.image = self.videoBadgeImage
} else if item.isAnimated {
self.badgeView.isHidden = false
// self.badgeView.image = self.animatedBadgeImage
} else {
assert(item.isImage)
self.badgeView.isHidden = true
}
self.delegate = delegate
}
@ -588,6 +622,7 @@ fileprivate class MediaGalleryCell: UICollectionViewCell {
self.item = nil
self.imageView.image = nil
self.badgeView.isHidden = true
self.delegate = nil
}