diff --git a/Signal/src/ViewControllers/ConversationView/ConversationInputToolbar.m b/Signal/src/ViewControllers/ConversationView/ConversationInputToolbar.m index 7a7fc7824..9c6ece9cf 100644 --- a/Signal/src/ViewControllers/ConversationView/ConversationInputToolbar.m +++ b/Signal/src/ViewControllers/ConversationView/ConversationInputToolbar.m @@ -47,7 +47,7 @@ static const CGFloat ConversationInputToolbarBorderViewHeight = 0.5; #pragma mark - -@property (nonatomic, nullable) QuotedReplyPreview *quotedMessagePreview; +@property (nonatomic, nullable) UIView *quotedMessagePreview; #pragma mark - Voice Memo Recording UI @@ -92,6 +92,7 @@ static const CGFloat ConversationInputToolbarBorderViewHeight = 0.5; // to determine the height of the rendered inputAccessoryView. CGFloat height = self.toolbarHeight + ConversationInputToolbarBorderViewHeight; if (self.quotedMessagePreview) { + height += self.quotedMessageTopMargin; height += self.quotedMessagePreview.intrinsicContentSize.height; } CGSize newSize = CGSizeMake(self.bounds.size.width, height); @@ -284,11 +285,23 @@ static const CGFloat ConversationInputToolbarBorderViewHeight = 0.5; return; } - self.quotedMessagePreview = [[QuotedReplyPreview alloc] initWithQuotedReply:quotedReply conversationStyle:self.conversationStyle]; - self.quotedMessagePreview.delegate = self; + QuotedReplyPreview *quotedMessagePreview = + [[QuotedReplyPreview alloc] initWithQuotedReply:quotedReply conversationStyle:self.conversationStyle]; + quotedMessagePreview.delegate = self; + + UIView *wrapper = [UIView containerView]; + wrapper.layoutMargins = UIEdgeInsetsMake(self.quotedMessageTopMargin, 0, 0, 0); + [wrapper addSubview:quotedMessagePreview]; + [quotedMessagePreview autoPinToSuperviewMargins]; // TODO animate - [self.contentStackView insertArrangedSubview:self.quotedMessagePreview atIndex:0]; + [self.contentStackView insertArrangedSubview:wrapper atIndex:0]; + self.quotedMessagePreview = wrapper; +} + +- (CGFloat)quotedMessageTopMargin +{ + return 5.f; } - (void)clearQuotedMessagePreview diff --git a/SignalMessaging/categories/UIView+OWS.h b/SignalMessaging/categories/UIView+OWS.h index e6998635d..cd9a9b79f 100644 --- a/SignalMessaging/categories/UIView+OWS.h +++ b/SignalMessaging/categories/UIView+OWS.h @@ -28,6 +28,7 @@ CGFloat ScaleFromIPhone5(CGFloat iPhone5Value); - (NSArray *)autoPinHeightToSuperview; - (NSArray *)autoPinToSuperviewEdges; +- (NSArray *)autoPinToSuperviewMargins; - (NSLayoutConstraint *)autoHCenterInSuperview; - (NSLayoutConstraint *)autoVCenterInSuperview; diff --git a/SignalMessaging/categories/UIView+OWS.m b/SignalMessaging/categories/UIView+OWS.m index df4323ce6..5fa542ce9 100644 --- a/SignalMessaging/categories/UIView+OWS.m +++ b/SignalMessaging/categories/UIView+OWS.m @@ -90,6 +90,17 @@ CGFloat ScaleFromIPhone5(CGFloat iPhone5Value) return result; } +- (NSArray *)autoPinToSuperviewMargins +{ + NSArray *result = @[ + [self autoPinTopToSuperviewMargin], + [self autoPinLeadingToSuperviewMargin], + [self autoPinTrailingToSuperviewMargin], + [self autoPinBottomToSuperviewMargin], + ]; + return result; +} + - (NSLayoutConstraint *)autoHCenterInSuperview { return [self autoAlignAxis:ALAxisVertical toSameAxisOfView:self.superview];