mirror of
https://github.com/oxen-io/session-ios.git
synced 2023-12-13 21:30:14 +01:00
Fix message cell sizing issue
This commit is contained in:
parent
3dda1f17e1
commit
dca6aed6ee
|
@ -18,6 +18,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
|
||||
@property (nonatomic) OWSMessageHeaderView *headerView;
|
||||
@property (nonatomic) OWSMessageBubbleView *messageBubbleView;
|
||||
@property (nonatomic) NSLayoutConstraint *messageBubbleViewBottomConstraint;
|
||||
@property (nonatomic) AvatarImageView *avatarView;
|
||||
@property (nonatomic, nullable) FriendRequestView *friendRequestView;
|
||||
@property (nonatomic, nullable) UIImageView *sendFailureBadgeView;
|
||||
|
@ -60,7 +61,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
[self.avatarView autoSetDimension:ALDimensionWidth toSize:self.avatarSize];
|
||||
[self.avatarView autoSetDimension:ALDimensionHeight toSize:self.avatarSize];
|
||||
|
||||
[self.messageBubbleView autoPinBottomToSuperviewMarginWithInset:0];
|
||||
self.messageBubbleViewBottomConstraint = [self.messageBubbleView autoPinBottomToSuperviewMarginWithInset:0];
|
||||
|
||||
self.contentView.userInteractionEnabled = YES;
|
||||
|
||||
|
@ -114,6 +115,19 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
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
|
||||
{
|
||||
if (![self.viewItem.interaction isKindOfClass:[TSOutgoingMessage class]]) {
|
||||
|
@ -133,6 +147,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
OWSAssertDebug([self.viewItem.interaction isKindOfClass:[TSMessage class]]);
|
||||
OWSAssertDebug(self.messageBubbleView);
|
||||
|
||||
[self.messageBubbleViewBottomConstraint setActive:YES];
|
||||
self.messageBubbleView.viewItem = self.viewItem;
|
||||
self.messageBubbleView.cellMediaCache = self.delegate.cellMediaCache;
|
||||
[self.messageBubbleView configureViews];
|
||||
|
@ -166,19 +181,18 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
relation:NSLayoutRelationGreaterThanOrEqual],
|
||||
]];
|
||||
|
||||
if ([self.viewItem.interaction isKindOfClass:TSIncomingMessage.class]) {
|
||||
TSIncomingMessage *message = (TSIncomingMessage *)self.message;
|
||||
if (YES) { // TODO: message.isFriendRequest
|
||||
self.friendRequestView = [FriendRequestView new];
|
||||
self.friendRequestView.message = message;
|
||||
self.friendRequestView.delegate = self.friendRequestViewDelegate;
|
||||
[self.contentView addSubview:self.friendRequestView];
|
||||
[self.viewConstraints addObjectsFromArray:@[
|
||||
[self.friendRequestView autoPinEdgeToSuperviewEdge:ALEdgeLeading withInset:self.conversationStyle.gutterLeading],
|
||||
[self.friendRequestView autoPinEdgeToSuperviewEdge:ALEdgeTrailing withInset:self.conversationStyle.gutterTrailing],
|
||||
[self.friendRequestView autoPinEdge:ALEdgeTop toEdge:ALEdgeBottom ofView:self.messageBubbleView withOffset:12.f]
|
||||
]];
|
||||
}
|
||||
if (self.isIncomingFriendRequest) { // TODO: message.isFriendRequest
|
||||
self.friendRequestView = [FriendRequestView new];
|
||||
self.friendRequestView.message = (TSIncomingMessage *)self.message;
|
||||
self.friendRequestView.delegate = self.friendRequestViewDelegate;
|
||||
[self.contentView addSubview:self.friendRequestView];
|
||||
[self.messageBubbleViewBottomConstraint setActive:NO];
|
||||
[self.viewConstraints addObjectsFromArray:@[
|
||||
[self.friendRequestView autoPinEdgeToSuperviewEdge:ALEdgeLeading withInset:self.conversationStyle.gutterLeading],
|
||||
[self.friendRequestView autoPinEdgeToSuperviewEdge:ALEdgeTrailing withInset:self.conversationStyle.gutterTrailing],
|
||||
[self.friendRequestView autoPinEdge:ALEdgeTop toEdge:ALEdgeBottom ofView:self.messageBubbleView withOffset:12.f],
|
||||
[self.friendRequestView autoPinEdgeToSuperviewEdge:ALEdgeBottom]
|
||||
]];
|
||||
}
|
||||
} else {
|
||||
if (self.shouldHaveSendFailureBadge) {
|
||||
|
@ -355,11 +369,11 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
if (self.shouldHaveSendFailureBadge) {
|
||||
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);
|
||||
|
||||
return cellSize;
|
||||
|
|
Loading…
Reference in a new issue