63 lines
2.2 KiB
Swift
63 lines
2.2 KiB
Swift
|
//
|
||
|
// PublicTimelineDescriptionCollectionViewCell.swift
|
||
|
// Tusker
|
||
|
//
|
||
|
// Created by Shadowfacts on 10/1/22.
|
||
|
// Copyright © 2022 Shadowfacts. All rights reserved.
|
||
|
//
|
||
|
|
||
|
import UIKit
|
||
|
|
||
|
class PublicTimelineDescriptionCollectionViewCell: UICollectionViewCell {
|
||
|
|
||
|
weak var mastodonController: MastodonController!
|
||
|
|
||
|
var local = false {
|
||
|
didSet {
|
||
|
updateLabel()
|
||
|
}
|
||
|
}
|
||
|
var didDismiss: (() -> Void)?
|
||
|
|
||
|
private let label = UILabel()
|
||
|
|
||
|
override init(frame: CGRect) {
|
||
|
super.init(frame: frame)
|
||
|
|
||
|
contentView.backgroundColor = .tintColor
|
||
|
label.font = .preferredFont(forTextStyle: .body)
|
||
|
label.numberOfLines = 0
|
||
|
label.textColor = .white
|
||
|
label.translatesAutoresizingMaskIntoConstraints = false
|
||
|
contentView.addSubview(label)
|
||
|
NSLayoutConstraint.activate([
|
||
|
label.leadingAnchor.constraint(equalToSystemSpacingAfter: contentView.leadingAnchor, multiplier: 1),
|
||
|
contentView.trailingAnchor.constraint(equalToSystemSpacingAfter: label.trailingAnchor, multiplier: 1),
|
||
|
label.topAnchor.constraint(equalToSystemSpacingBelow: contentView.topAnchor, multiplier: 1),
|
||
|
contentView.bottomAnchor.constraint(equalToSystemSpacingBelow: label.bottomAnchor, multiplier: 1),
|
||
|
])
|
||
|
}
|
||
|
|
||
|
required init?(coder: NSCoder) {
|
||
|
fatalError("init(coder:) has not been implemented")
|
||
|
}
|
||
|
|
||
|
private func updateLabel() {
|
||
|
let str = NSMutableAttributedString()
|
||
|
let instanceStr = NSAttributedString(string: mastodonController.instanceURL.host!, attributes: [
|
||
|
.font: UIFont(descriptor: .preferredFontDescriptor(withTextStyle: .body).withSymbolicTraits(.traitBold)!, size: 0)
|
||
|
])
|
||
|
if local {
|
||
|
str.append(NSAttributedString(string: "The local timeline shows public posts from only "))
|
||
|
str.append(instanceStr)
|
||
|
str.append(NSAttributedString(string: "."))
|
||
|
} else {
|
||
|
str.append(NSAttributedString(string: "The federated timeline shows public posts from all users that "))
|
||
|
str.append(instanceStr)
|
||
|
str.append(NSAttributedString(string: " knows about."))
|
||
|
}
|
||
|
label.attributedText = str
|
||
|
}
|
||
|
|
||
|
}
|