mirror of
https://github.com/oxen-io/session-ios.git
synced 2023-12-13 21:30:14 +01:00
102 lines
3.3 KiB
Swift
102 lines
3.3 KiB
Swift
//
|
|
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
import SignalServiceKit
|
|
import SignalMessaging
|
|
|
|
@objc
|
|
public class LongTextViewController: OWSViewController {
|
|
|
|
// MARK: Properties
|
|
|
|
let viewItem: ConversationViewItem
|
|
|
|
let messageBody: String
|
|
|
|
var messageTextView: UITextView?
|
|
|
|
// MARK: Initializers
|
|
|
|
@available(*, unavailable, message:"use other constructor instead.")
|
|
public required init?(coder aDecoder: NSCoder) {
|
|
fatalError("\(#function) is unimplemented.")
|
|
}
|
|
|
|
@objc
|
|
public required init(viewItem: ConversationViewItem) {
|
|
self.viewItem = viewItem
|
|
|
|
self.messageBody = LongTextViewController.displayableText(viewItem: viewItem)
|
|
|
|
super.init(nibName: nil, bundle: nil)
|
|
}
|
|
|
|
private class func displayableText(viewItem: ConversationViewItem) -> String {
|
|
guard viewItem.hasBodyText else {
|
|
return ""
|
|
}
|
|
guard let displayableText = viewItem.displayableBodyText() else {
|
|
return ""
|
|
}
|
|
let messageBody = displayableText.fullText
|
|
return messageBody
|
|
}
|
|
|
|
// MARK: View Lifecycle
|
|
|
|
public override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
|
|
self.navigationItem.title = NSLocalizedString("LONG_TEXT_VIEW_TITLE",
|
|
comment: "Title for the 'long text message' view.")
|
|
|
|
createViews()
|
|
}
|
|
|
|
// MARK: - Create Views
|
|
|
|
private func createViews() {
|
|
view.backgroundColor = UIColor.white
|
|
|
|
let messageTextView = UITextView()
|
|
self.messageTextView = messageTextView
|
|
messageTextView.font = UIFont.ows_dynamicTypeBody
|
|
messageTextView.backgroundColor = UIColor.white
|
|
messageTextView.isOpaque = true
|
|
messageTextView.isEditable = false
|
|
messageTextView.isSelectable = true
|
|
messageTextView.isScrollEnabled = true
|
|
messageTextView.showsHorizontalScrollIndicator = false
|
|
messageTextView.showsVerticalScrollIndicator = true
|
|
messageTextView.isUserInteractionEnabled = true
|
|
messageTextView.textColor = UIColor.black
|
|
messageTextView.text = messageBody
|
|
|
|
view.addSubview(messageTextView)
|
|
messageTextView.autoPinEdge(toSuperviewEdge: .leading)
|
|
messageTextView.autoPinEdge(toSuperviewEdge: .trailing)
|
|
messageTextView.textContainerInset = UIEdgeInsets(top: 0, left: view.layoutMargins.left, bottom: 0, right: view.layoutMargins.right)
|
|
messageTextView.autoPin(toTopLayoutGuideOf: self, withInset: 0)
|
|
|
|
let footer = UIToolbar()
|
|
footer.barTintColor = UIColor.ows_materialBlue
|
|
view.addSubview(footer)
|
|
footer.autoPinWidthToSuperview(withMargin: 0)
|
|
footer.autoPinEdge(.top, to: .bottom, of: messageTextView)
|
|
footer.autoPin(toBottomLayoutGuideOf: self, withInset: 0)
|
|
|
|
footer.items = [
|
|
UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil),
|
|
UIBarButtonItem(barButtonSystemItem: .action, target: self, action: #selector(shareButtonPressed)),
|
|
UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
|
|
]
|
|
}
|
|
|
|
// MARK: - Actions
|
|
|
|
@objc func shareButtonPressed() {
|
|
AttachmentSharing.showShareUI(forText: messageBody)
|
|
}
|
|
}
|