diff --git a/Signal/src/Calls/UserInterface/Group/GroupCallErrorView.swift b/Signal/src/Calls/UserInterface/Group/GroupCallErrorView.swift index 6265b6097b..0eee84e038 100644 --- a/Signal/src/Calls/UserInterface/Group/GroupCallErrorView.swift +++ b/Signal/src/Calls/UserInterface/Group/GroupCallErrorView.swift @@ -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 diff --git a/Signal/src/Calls/UserInterface/Group/GroupCallMemberView.swift b/Signal/src/Calls/UserInterface/Group/GroupCallMemberView.swift index 044f9f9fe8..93f4b77ff8 100644 --- a/Signal/src/Calls/UserInterface/Group/GroupCallMemberView.swift +++ b/Signal/src/Calls/UserInterface/Group/GroupCallMemberView.swift @@ -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) diff --git a/SignalMessaging/categories/UIDevice+featureSupport.swift b/SignalMessaging/categories/UIDevice+featureSupport.swift index 06ac59286e..629f158f55 100644 --- a/SignalMessaging/categories/UIDevice+featureSupport.swift +++ b/SignalMessaging/categories/UIDevice+featureSupport.swift @@ -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")