Autohide error label if the grid cell is too small
Also, some tweaks to more closely match design spec.
This commit is contained in:
parent
bd2e52f293
commit
065832db55
@ -27,6 +27,7 @@ class GroupCallErrorView: UIView {
|
||||
var labelText: String? {
|
||||
didSet {
|
||||
label.text = labelText
|
||||
configure()
|
||||
}
|
||||
}
|
||||
|
||||
@ -61,7 +62,7 @@ class GroupCallErrorView: UIView {
|
||||
comment: "A button to receive more info about not seeing a participant in group call grid")
|
||||
|
||||
let button = UIButton()
|
||||
button.backgroundColor = UIColor.darkGray
|
||||
button.backgroundColor = .ows_gray75
|
||||
button.layer.cornerRadius = 16
|
||||
button.titleLabel?.textAlignment = .center
|
||||
button.contentEdgeInsets = UIEdgeInsets(top: 3, leading: 12, bottom: 3, trailing: 12)
|
||||
@ -95,11 +96,15 @@ class GroupCallErrorView: UIView {
|
||||
stackView.setCustomSpacing(16, after: label)
|
||||
|
||||
addSubview(stackView)
|
||||
insetsLayoutMarginsFromSafeArea = false
|
||||
stackView.autoPinWidthToSuperviewMargins()
|
||||
stackView.autoVCenterInSuperview()
|
||||
stackView.autoPinEdge(toSuperviewMargin: .top, relation: .greaterThanOrEqual)
|
||||
stackView.autoPinEdge(toSuperviewMargin: .bottom, relation: .greaterThanOrEqual)
|
||||
|
||||
iconView.setCompressionResistanceHigh()
|
||||
button.setCompressionResistanceHigh()
|
||||
|
||||
iconView.autoSetDimensions(to: CGSize(width: 24, height: 24))
|
||||
|
||||
addSubview(miniButton)
|
||||
@ -122,6 +127,15 @@ class GroupCallErrorView: UIView {
|
||||
label.isHidden = isCompact
|
||||
button.isHidden = isCompact
|
||||
miniButton.isHidden = !isCompact
|
||||
|
||||
layoutIfNeeded()
|
||||
|
||||
// The error text is easily truncated in small cells with large dynamic type.
|
||||
// If the label gets truncated, just hide it.
|
||||
if !label.isHidden {
|
||||
let labelDesiredHeight = label.sizeThatFits(CGSize(width: label.bounds.width, height: .greatestFiniteMagnitude)).height
|
||||
label.isHidden = (labelDesiredHeight > label.bounds.height)
|
||||
}
|
||||
}
|
||||
|
||||
@objc
|
||||
|
||||
@ -344,6 +344,8 @@ class GroupCallRemoteMemberView: GroupCallMemberView {
|
||||
if !device.mediaKeysReceived {
|
||||
// No media keys. Display error view
|
||||
errorView.isHidden = false
|
||||
|
||||
noVideoView.backgroundColor = .ows_black
|
||||
backgroundAvatarView.image = profileImage?.makeGrayscale()
|
||||
configureErrorView(for: device.address)
|
||||
|
||||
|
||||
@ -30,12 +30,18 @@ public extension UIDevice {
|
||||
case 1920, 2208:
|
||||
// iPhone 6+/6S+/7+/8+//
|
||||
return false
|
||||
case 2340:
|
||||
// iPhone 12 Mini
|
||||
return true
|
||||
case 2436:
|
||||
// iPhone X, iPhone XS
|
||||
return true
|
||||
case 2688:
|
||||
// iPhone X Max
|
||||
return true
|
||||
case 2778:
|
||||
// iPhone 12 Pro Max
|
||||
return true
|
||||
default:
|
||||
// Verify all our IOS_DEVICE_CONSTANT tags make sense when adding a new device size.
|
||||
owsFailDebug("unknown device format")
|
||||
@ -71,6 +77,9 @@ public extension UIDevice {
|
||||
case 2688:
|
||||
// iPhone X Max
|
||||
return true
|
||||
case 2778:
|
||||
// iPhone 12 Pro Max
|
||||
return true
|
||||
default:
|
||||
// Verify all our IOS_DEVICE_CONSTANT tags make sense when adding a new device size.
|
||||
owsFailDebug("unknown device format")
|
||||
|
||||
Loading…
Reference in New Issue
Block a user