Fix message cell sizing issue

pull/14/head
Niels Andriesse 6 years ago
parent 3dda1f17e1
commit dca6aed6ee

@ -18,6 +18,7 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic) OWSMessageHeaderView *headerView; @property (nonatomic) OWSMessageHeaderView *headerView;
@property (nonatomic) OWSMessageBubbleView *messageBubbleView; @property (nonatomic) OWSMessageBubbleView *messageBubbleView;
@property (nonatomic) NSLayoutConstraint *messageBubbleViewBottomConstraint;
@property (nonatomic) AvatarImageView *avatarView; @property (nonatomic) AvatarImageView *avatarView;
@property (nonatomic, nullable) FriendRequestView *friendRequestView; @property (nonatomic, nullable) FriendRequestView *friendRequestView;
@property (nonatomic, nullable) UIImageView *sendFailureBadgeView; @property (nonatomic, nullable) UIImageView *sendFailureBadgeView;
@ -60,7 +61,7 @@ NS_ASSUME_NONNULL_BEGIN
[self.avatarView autoSetDimension:ALDimensionWidth toSize:self.avatarSize]; [self.avatarView autoSetDimension:ALDimensionWidth toSize:self.avatarSize];
[self.avatarView autoSetDimension:ALDimensionHeight toSize:self.avatarSize]; [self.avatarView autoSetDimension:ALDimensionHeight toSize:self.avatarSize];
[self.messageBubbleView autoPinBottomToSuperviewMarginWithInset:0]; self.messageBubbleViewBottomConstraint = [self.messageBubbleView autoPinBottomToSuperviewMarginWithInset:0];
self.contentView.userInteractionEnabled = YES; self.contentView.userInteractionEnabled = YES;
@ -114,6 +115,19 @@ NS_ASSUME_NONNULL_BEGIN
return self.viewItem.interaction.interactionType == OWSInteractionType_OutgoingMessage; return self.viewItem.interaction.interactionType == OWSInteractionType_OutgoingMessage;
} }
- (BOOL)isIncomingFriendRequest {
if ([self.viewItem.interaction isKindOfClass:TSIncomingMessage.class]) {
// TODO: Enable this when possible
// ========
// TSIncomingMessage *message = (TSIncomingMessage *)self.message;
// return message.isFriendRequest
// ========
return YES;
} else {
return NO;
}
}
- (BOOL)shouldHaveSendFailureBadge - (BOOL)shouldHaveSendFailureBadge
{ {
if (![self.viewItem.interaction isKindOfClass:[TSOutgoingMessage class]]) { if (![self.viewItem.interaction isKindOfClass:[TSOutgoingMessage class]]) {
@ -133,6 +147,7 @@ NS_ASSUME_NONNULL_BEGIN
OWSAssertDebug([self.viewItem.interaction isKindOfClass:[TSMessage class]]); OWSAssertDebug([self.viewItem.interaction isKindOfClass:[TSMessage class]]);
OWSAssertDebug(self.messageBubbleView); OWSAssertDebug(self.messageBubbleView);
[self.messageBubbleViewBottomConstraint setActive:YES];
self.messageBubbleView.viewItem = self.viewItem; self.messageBubbleView.viewItem = self.viewItem;
self.messageBubbleView.cellMediaCache = self.delegate.cellMediaCache; self.messageBubbleView.cellMediaCache = self.delegate.cellMediaCache;
[self.messageBubbleView configureViews]; [self.messageBubbleView configureViews];
@ -166,19 +181,18 @@ NS_ASSUME_NONNULL_BEGIN
relation:NSLayoutRelationGreaterThanOrEqual], relation:NSLayoutRelationGreaterThanOrEqual],
]]; ]];
if ([self.viewItem.interaction isKindOfClass:TSIncomingMessage.class]) { if (self.isIncomingFriendRequest) { // TODO: message.isFriendRequest
TSIncomingMessage *message = (TSIncomingMessage *)self.message; self.friendRequestView = [FriendRequestView new];
if (YES) { // TODO: message.isFriendRequest self.friendRequestView.message = (TSIncomingMessage *)self.message;
self.friendRequestView = [FriendRequestView new]; self.friendRequestView.delegate = self.friendRequestViewDelegate;
self.friendRequestView.message = message; [self.contentView addSubview:self.friendRequestView];
self.friendRequestView.delegate = self.friendRequestViewDelegate; [self.messageBubbleViewBottomConstraint setActive:NO];
[self.contentView addSubview:self.friendRequestView]; [self.viewConstraints addObjectsFromArray:@[
[self.viewConstraints addObjectsFromArray:@[ [self.friendRequestView autoPinEdgeToSuperviewEdge:ALEdgeLeading withInset:self.conversationStyle.gutterLeading],
[self.friendRequestView autoPinEdgeToSuperviewEdge:ALEdgeLeading withInset:self.conversationStyle.gutterLeading], [self.friendRequestView autoPinEdgeToSuperviewEdge:ALEdgeTrailing withInset:self.conversationStyle.gutterTrailing],
[self.friendRequestView autoPinEdgeToSuperviewEdge:ALEdgeTrailing withInset:self.conversationStyle.gutterTrailing], [self.friendRequestView autoPinEdge:ALEdgeTop toEdge:ALEdgeBottom ofView:self.messageBubbleView withOffset:12.f],
[self.friendRequestView autoPinEdge:ALEdgeTop toEdge:ALEdgeBottom ofView:self.messageBubbleView withOffset:12.f] [self.friendRequestView autoPinEdgeToSuperviewEdge:ALEdgeBottom]
]]; ]];
}
} }
} else { } else {
if (self.shouldHaveSendFailureBadge) { if (self.shouldHaveSendFailureBadge) {
@ -355,11 +369,11 @@ NS_ASSUME_NONNULL_BEGIN
if (self.shouldHaveSendFailureBadge) { if (self.shouldHaveSendFailureBadge) {
cellSize.width += self.sendFailureBadgeSize + self.sendFailureBadgeSpacing; cellSize.width += self.sendFailureBadgeSize + self.sendFailureBadgeSpacing;
} }
if (self.friendRequestView != nil) {
cellSize.height += 118.f; // TODO: Measure dynamically
}
if (self.isIncomingFriendRequest) {
cellSize.height += 118; // TODO: Measure dynamically
}
cellSize = CGSizeCeil(cellSize); cellSize = CGSizeCeil(cellSize);
return cellSize; return cellSize;

Loading…
Cancel
Save