|
|
|
@ -1,5 +1,5 @@
|
|
|
|
|
//
|
|
|
|
|
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
|
|
|
|
|
// Copyright (c) 2019 Open Whisper Systems. All rights reserved.
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
import Foundation
|
|
|
|
@ -11,6 +11,9 @@ public class MediaAlbumCellView: UIStackView {
|
|
|
|
|
@objc
|
|
|
|
|
public let itemViews: [ConversationMediaView]
|
|
|
|
|
|
|
|
|
|
@objc
|
|
|
|
|
public var moreItemsView: ConversationMediaView?
|
|
|
|
|
|
|
|
|
|
private static let kSpacingPts: CGFloat = 2
|
|
|
|
|
private static let kMaxItems = 5
|
|
|
|
|
|
|
|
|
@ -41,8 +44,6 @@ public class MediaAlbumCellView: UIStackView {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private func createContents(maxMessageWidth: CGFloat) {
|
|
|
|
|
var moreItemViews = [ConversationMediaView]()
|
|
|
|
|
|
|
|
|
|
switch itemViews.count {
|
|
|
|
|
case 0:
|
|
|
|
|
owsFailDebug("No item views.")
|
|
|
|
@ -129,7 +130,7 @@ public class MediaAlbumCellView: UIStackView {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
moreItemViews.append(lastView)
|
|
|
|
|
moreItemsView = lastView
|
|
|
|
|
|
|
|
|
|
let tintView = UIView()
|
|
|
|
|
tintView.backgroundColor = UIColor(white: 0, alpha: 0.4)
|
|
|
|
@ -151,7 +152,7 @@ public class MediaAlbumCellView: UIStackView {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for itemView in itemViews {
|
|
|
|
|
guard !moreItemViews.contains(itemView) else {
|
|
|
|
|
guard moreItemsView == itemView else {
|
|
|
|
|
// Don't display the caption indicator on
|
|
|
|
|
// the "more" item, if any.
|
|
|
|
|
continue
|
|
|
|
@ -277,4 +278,9 @@ public class MediaAlbumCellView: UIStackView {
|
|
|
|
|
}
|
|
|
|
|
return bestMediaView
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@objc
|
|
|
|
|
public func isMoreItemsView(mediaView: ConversationMediaView) -> Bool {
|
|
|
|
|
return moreItemsView == mediaView
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|