mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-25 02:52:45 +02:00
BubbleRoomTimelineCellDecorator: Handle URL preview.
This commit is contained in:
+38
-33
@@ -170,44 +170,49 @@ class BubbleRoomTimelineCellDecorator: PlainRoomTimelineCellDecorator {
|
||||
cellData: RoomBubbleCellData,
|
||||
contentViewPositionY: CGFloat) {
|
||||
|
||||
cell.addTemporarySubview(urlPreviewView)
|
||||
|
||||
let cellContentView = cell.contentView
|
||||
|
||||
urlPreviewView.translatesAutoresizingMaskIntoConstraints = false
|
||||
urlPreviewView.availableWidth = cellData.maxTextViewWidth
|
||||
cellContentView.addSubview(urlPreviewView)
|
||||
|
||||
let leadingOrTrailingConstraint: NSLayoutConstraint
|
||||
|
||||
|
||||
// Incoming message
|
||||
if cellData.isIncoming {
|
||||
if let urlPreviewDisplayable = cell as? RoomCellURLPreviewDisplayable {
|
||||
urlPreviewView.translatesAutoresizingMaskIntoConstraints = false
|
||||
urlPreviewDisplayable.addURLPreviewView(urlPreviewView)
|
||||
} else {
|
||||
cell.addTemporarySubview(urlPreviewView)
|
||||
|
||||
let cellContentView = cell.contentView
|
||||
|
||||
urlPreviewView.translatesAutoresizingMaskIntoConstraints = false
|
||||
urlPreviewView.availableWidth = cellData.maxTextViewWidth
|
||||
cellContentView.addSubview(urlPreviewView)
|
||||
|
||||
let leadingOrTrailingConstraint: NSLayoutConstraint
|
||||
|
||||
|
||||
// Incoming message
|
||||
if cellData.isIncoming {
|
||||
|
||||
var leftMargin = RoomBubbleCellLayout.reactionsViewLeftMargin
|
||||
if cellData.containsBubbleComponentWithEncryptionBadge {
|
||||
leftMargin += RoomBubbleCellLayout.encryptedContentLeftMargin
|
||||
var leftMargin = RoomBubbleCellLayout.reactionsViewLeftMargin
|
||||
if cellData.containsBubbleComponentWithEncryptionBadge {
|
||||
leftMargin += RoomBubbleCellLayout.encryptedContentLeftMargin
|
||||
}
|
||||
|
||||
leftMargin-=5.0
|
||||
|
||||
leadingOrTrailingConstraint = urlPreviewView.leadingAnchor.constraint(equalTo: cellContentView.leadingAnchor, constant: leftMargin)
|
||||
} else {
|
||||
// Outgoing message
|
||||
|
||||
// TODO: Use constants
|
||||
let rightMargin: CGFloat = 34.0
|
||||
|
||||
leadingOrTrailingConstraint = urlPreviewView.trailingAnchor.constraint(equalTo: cellContentView.trailingAnchor, constant: -rightMargin)
|
||||
}
|
||||
|
||||
leftMargin-=5.0
|
||||
let topMargin = contentViewPositionY + RoomBubbleCellLayout.urlPreviewViewTopMargin + RoomBubbleCellLayout.reactionsViewTopMargin
|
||||
|
||||
leadingOrTrailingConstraint = urlPreviewView.leadingAnchor.constraint(equalTo: cellContentView.leadingAnchor, constant: leftMargin)
|
||||
} else {
|
||||
// Outgoing message
|
||||
|
||||
// TODO: Use constants
|
||||
let rightMargin: CGFloat = 34.0
|
||||
|
||||
leadingOrTrailingConstraint = urlPreviewView.trailingAnchor.constraint(equalTo: cellContentView.trailingAnchor, constant: -rightMargin)
|
||||
// Set the preview view's origin
|
||||
NSLayoutConstraint.activate([
|
||||
leadingOrTrailingConstraint,
|
||||
urlPreviewView.topAnchor.constraint(equalTo: cellContentView.topAnchor, constant: topMargin)
|
||||
])
|
||||
}
|
||||
|
||||
let topMargin = contentViewPositionY + RoomBubbleCellLayout.urlPreviewViewTopMargin + RoomBubbleCellLayout.reactionsViewTopMargin
|
||||
|
||||
// Set the preview view's origin
|
||||
NSLayoutConstraint.activate([
|
||||
leadingOrTrailingConstraint,
|
||||
urlPreviewView.topAnchor.constraint(equalTo: cellContentView.topAnchor, constant: topMargin)
|
||||
])
|
||||
}
|
||||
|
||||
override func addThreadSummaryView(_ threadSummaryView: ThreadSummaryView,
|
||||
|
||||
Reference in New Issue
Block a user