Signal-iOS/Signal/src/ViewControllers/ConversationView/MessageSelectionView.swift
2021-04-15 16:00:56 -03:00

67 lines
2.0 KiB
Swift

//
// Copyright (c) 2021 Open Whisper Systems. All rights reserved.
//
import Foundation
@objc
public class MessageSelectionView: ManualLayoutView {
@objc
public var isSelected: Bool = false {
didSet {
selectedView.isHidden = !isSelected
unselectedView.isHidden = isSelected
}
}
@objc
public init() {
super.init(name: "MessageSelectionView")
addSubview(selectedView)
addSubview(unselectedView)
centerSubviewOnSuperview(selectedView, size: Self.contentSize)
centerSubviewOnSuperview(unselectedView, size: Self.contentSize)
selectedView.isHidden = true
}
@available(*, unavailable, message: "use other constructor instead.")
@objc
public required init(name: String) {
notImplemented()
}
private static var contentSize: CGSize {
CGSize(square: ConversationStyle.selectionViewWidth)
}
private lazy var selectedView: UIView = {
let wrapper = ManualLayoutView(name: "MessageSelectionView.selectedView")
// the checkmark shape is transparent, but we want it colored white, even in dark theme
let backgroundSize = ConversationStyle.selectionViewWidth - 8
let backgroundView = CircleView(diameter: backgroundSize)
backgroundView.backgroundColor = .white
wrapper.addSubview(backgroundView)
wrapper.centerSubviewOnSuperview(backgroundView, size: .square(backgroundSize))
let image = #imageLiteral(resourceName: "check-circle-solid-24").withRenderingMode(.alwaysTemplate)
let imageView = UIImageView(image: image)
imageView.tintColor = .ows_accentBlue
wrapper.addSubview(imageView)
wrapper.layoutSubviewToFillSuperviewBounds(imageView)
return wrapper
}()
private lazy var unselectedView: UIView = {
let view = CircleView(diameter: ConversationStyle.selectionViewWidth)
view.layer.borderColor = UIColor.ows_gray25.cgColor
view.layer.borderWidth = 1.5
return view
}()
}