TM-SGNL-iOS/Signal/ConversationView/BlockingLegacyGroupView.swift
TeleMessage developers dde0620daf initial commit
2025-05-03 12:28:28 -07:00

84 lines
2.7 KiB
Swift

//
// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
//
import SignalServiceKit
import SignalUI
class BlockingLegacyGroupView: UIStackView {
private weak var fromViewController: UIViewController?
init(fromViewController: UIViewController) {
self.fromViewController = fromViewController
super.init(frame: .zero)
createContents()
}
private func createContents() {
// We want the background to extend to the bottom of the screen
// behind the safe area, so we add that inset to our bottom inset
// instead of pinning this view to the safe area
let safeAreaInset = safeAreaInsets.bottom
autoresizingMask = .flexibleHeight
axis = .vertical
spacing = 11
layoutMargins = UIEdgeInsets(top: 16, leading: 16, bottom: 20 + safeAreaInset, trailing: 16)
isLayoutMarginsRelativeArrangement = true
alignment = .fill
let backgroundView = UIView()
backgroundView.backgroundColor = Theme.backgroundColor
addSubview(backgroundView)
backgroundView.autoPinEdgesToSuperviewEdges()
let format = OWSLocalizedString(
"LEGACY_GROUP_UNSUPPORTED_MESSAGE",
comment: "Message explaining that this group can no longer be used because it is unsupported. Embeds a {{ learn more link }}."
)
let learnMoreText = CommonStrings.learnMore
let attributedString = NSMutableAttributedString(string: String(format: format, learnMoreText))
attributedString.setAttributes(
[.foregroundColor: Theme.accentBlueColor],
forSubstring: learnMoreText
)
let label = UILabel()
label.font = .dynamicTypeSubheadlineClamped
label.textColor = Theme.secondaryTextAndIconColor
label.attributedText = attributedString
label.numberOfLines = 0
label.lineBreakMode = .byWordWrapping
label.textAlignment = .center
label.isUserInteractionEnabled = true
label.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(didTapLearnMore)))
addArrangedSubview(label)
}
required init(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override var intrinsicContentSize: CGSize {
return .zero
}
@objc
public func didTapLearnMore() {
guard let fromViewController = self.fromViewController else {
owsFailDebug("Missing fromViewController.")
return
}
fromViewController.presentFormSheet(
LegacyGroupLearnMoreViewController(mode: .explainUnsupportedLegacyGroups),
animated: true
)
}
}