forked from shadowfacts/Tusker
parent
49f1d6339f
commit
88cfbfb1f3
|
@ -16,10 +16,20 @@ class TimelineStatusCollectionViewCell: UICollectionViewListCell, StatusCollecti
|
|||
|
||||
// MARK: Subviews
|
||||
|
||||
private lazy var reblogLabel = EmojiLabel().configure {
|
||||
private lazy var rebloggerLabel = EmojiLabel().configure {
|
||||
$0.textColor = .secondaryLabel
|
||||
$0.font = .preferredFont(forTextStyle: .body)
|
||||
$0.adjustsFontForContentSizeCategory = true
|
||||
}
|
||||
private let reblogIcon = UIImageView(image: UIImage(systemName: "repeat")).configure {
|
||||
$0.tintColor = .secondaryLabel
|
||||
}
|
||||
private lazy var reblogHStack = UIStackView(arrangedSubviews: [
|
||||
reblogIcon,
|
||||
rebloggerLabel,
|
||||
]).configure {
|
||||
$0.axis = .horizontal
|
||||
$0.spacing = 8
|
||||
// this needs to have a higher priorty than the content container's zero height constraint
|
||||
$0.setContentHuggingPriority(.defaultHigh, for: .vertical)
|
||||
$0.isUserInteractionEnabled = true
|
||||
|
@ -265,12 +275,12 @@ class TimelineStatusCollectionViewCell: UICollectionViewListCell, StatusCollecti
|
|||
override init(frame: CGRect) {
|
||||
super.init(frame: frame)
|
||||
|
||||
for subview in [reblogLabel, mainContainer, actionsContainer] {
|
||||
for subview in [reblogHStack, mainContainer, actionsContainer] {
|
||||
subview.translatesAutoresizingMaskIntoConstraints = false
|
||||
contentView.addSubview(subview)
|
||||
}
|
||||
|
||||
mainContainerTopToReblogLabelConstraint = mainContainer.topAnchor.constraint(equalTo: reblogLabel.bottomAnchor, constant: 4)
|
||||
mainContainerTopToReblogLabelConstraint = mainContainer.topAnchor.constraint(equalTo: reblogHStack.bottomAnchor, constant: 4)
|
||||
mainContainerTopToSelfConstraint = mainContainer.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 8)
|
||||
mainContainerBottomToActionsConstraint = mainContainer.bottomAnchor.constraint(equalTo: actionsContainer.topAnchor, constant: -4)
|
||||
mainContainerBottomToSelfConstraint = mainContainer.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: -6)
|
||||
|
@ -281,9 +291,9 @@ class TimelineStatusCollectionViewCell: UICollectionViewListCell, StatusCollecti
|
|||
|
||||
NSLayoutConstraint.activate([
|
||||
// why is this 4 but the mainContainerTopSelfConstraint constant 8? because this looks more balanced
|
||||
reblogLabel.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 4),
|
||||
reblogLabel.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 16),
|
||||
reblogLabel.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -16),
|
||||
reblogHStack.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 4),
|
||||
rebloggerLabel.leadingAnchor.constraint(equalTo: contentVStack.leadingAnchor),
|
||||
reblogHStack.trailingAnchor.constraint(lessThanOrEqualTo: contentView.trailingAnchor, constant: -16),
|
||||
|
||||
mainContainer.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 16),
|
||||
mainContainer.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -16),
|
||||
|
@ -399,7 +409,7 @@ class TimelineStatusCollectionViewCell: UICollectionViewListCell, StatusCollecti
|
|||
if let rebloggedStatus = status.reblog {
|
||||
reblogStatusID = statusID
|
||||
rebloggerID = status.account.id
|
||||
reblogLabel.isHidden = false
|
||||
reblogHStack.isHidden = false
|
||||
mainContainerTopToReblogLabelConstraint.isActive = true
|
||||
mainContainerTopToSelfConstraint.isActive = false
|
||||
updateRebloggerLabel(reblogger: status.account)
|
||||
|
@ -408,7 +418,7 @@ class TimelineStatusCollectionViewCell: UICollectionViewListCell, StatusCollecti
|
|||
} else {
|
||||
reblogStatusID = nil
|
||||
rebloggerID = nil
|
||||
reblogLabel.isHidden = true
|
||||
reblogHStack.isHidden = true
|
||||
mainContainerTopToReblogLabelConstraint.isActive = false
|
||||
mainContainerTopToSelfConstraint.isActive = true
|
||||
}
|
||||
|
@ -492,11 +502,11 @@ class TimelineStatusCollectionViewCell: UICollectionViewListCell, StatusCollecti
|
|||
|
||||
private func updateRebloggerLabel(reblogger: AccountMO) {
|
||||
if Preferences.shared.hideCustomEmojiInUsernames {
|
||||
reblogLabel.text = "Reblogged by \(reblogger.displayNameWithoutCustomEmoji)"
|
||||
reblogLabel.removeEmojis()
|
||||
rebloggerLabel.text = "\(reblogger.displayNameWithoutCustomEmoji) reblogged"
|
||||
rebloggerLabel.removeEmojis()
|
||||
} else {
|
||||
reblogLabel.text = "Reblogged by \(reblogger.displayOrUserName)"
|
||||
reblogLabel.setEmojis(reblogger.emojis, identifier: reblogger.id)
|
||||
rebloggerLabel.text = "\(reblogger.displayOrUserName) reblogged"
|
||||
rebloggerLabel.setEmojis(reblogger.emojis, identifier: reblogger.id)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue