mirror of
https://github.com/oxen-io/session-ios.git
synced 2023-12-13 21:30:14 +01:00
Tweak disappearing messages indicator.
This commit is contained in:
parent
0038c9b3b3
commit
e01579ed44
2 changed files with 22 additions and 8 deletions
|
@ -40,12 +40,20 @@ NS_ASSUME_NONNULL_BEGIN
|
||||||
self.axis = UILayoutConstraintAxisHorizontal;
|
self.axis = UILayoutConstraintAxisHorizontal;
|
||||||
self.spacing = self.hSpacing;
|
self.spacing = self.hSpacing;
|
||||||
self.alignment = UIStackViewAlignmentCenter;
|
self.alignment = UIStackViewAlignmentCenter;
|
||||||
|
self.distribution = UIStackViewDistributionEqualSpacing;
|
||||||
|
|
||||||
|
UIStackView *leftStackView = [UIStackView new];
|
||||||
|
leftStackView.axis = UILayoutConstraintAxisHorizontal;
|
||||||
|
leftStackView.spacing = self.hSpacing;
|
||||||
|
leftStackView.alignment = UIStackViewAlignmentCenter;
|
||||||
|
[self addArrangedSubview:leftStackView];
|
||||||
|
|
||||||
self.timestampLabel = [UILabel new];
|
self.timestampLabel = [UILabel new];
|
||||||
[self addArrangedSubview:self.timestampLabel];
|
[leftStackView addArrangedSubview:self.timestampLabel];
|
||||||
|
|
||||||
self.messageTimerView = [OWSMessageTimerView new];
|
self.messageTimerView = [OWSMessageTimerView new];
|
||||||
[self addArrangedSubview:self.messageTimerView];
|
[self.messageTimerView setContentHuggingHigh];
|
||||||
|
[leftStackView addArrangedSubview:self.messageTimerView];
|
||||||
|
|
||||||
self.statusIndicatorImageView = [UIImageView new];
|
self.statusIndicatorImageView = [UIImageView new];
|
||||||
[self.statusIndicatorImageView setContentHuggingHigh];
|
[self.statusIndicatorImageView setContentHuggingHigh];
|
||||||
|
|
|
@ -4807,6 +4807,7 @@ typedef enum : NSUInteger {
|
||||||
TSOutgoingMessage *outgoingMessage = (TSOutgoingMessage *)viewItem.interaction;
|
TSOutgoingMessage *outgoingMessage = (TSOutgoingMessage *)viewItem.interaction;
|
||||||
MessageReceiptStatus receiptStatus =
|
MessageReceiptStatus receiptStatus =
|
||||||
[MessageRecipientStatusUtils recipientStatusWithOutgoingMessage:outgoingMessage];
|
[MessageRecipientStatusUtils recipientStatusWithOutgoingMessage:outgoingMessage];
|
||||||
|
BOOL isDisappearingMessage = outgoingMessage.shouldStartExpireTimer;
|
||||||
|
|
||||||
if (nextViewItem && nextViewItem.interaction.interactionType == interactionType) {
|
if (nextViewItem && nextViewItem.interaction.interactionType == interactionType) {
|
||||||
TSOutgoingMessage *nextOutgoingMessage = (TSOutgoingMessage *)nextViewItem.interaction;
|
TSOutgoingMessage *nextOutgoingMessage = (TSOutgoingMessage *)nextViewItem.interaction;
|
||||||
|
@ -4816,10 +4817,12 @@ typedef enum : NSUInteger {
|
||||||
|
|
||||||
// We can skip the "outgoing message status" footer if the next message
|
// We can skip the "outgoing message status" footer if the next message
|
||||||
// has the same footer and no "date break" separates us...
|
// has the same footer and no "date break" separates us...
|
||||||
// ...but always show "failed to send" status.
|
// ...but always show "failed to send" status
|
||||||
shouldHideFooter = ([timestampText isEqualToString:nextTimestampText]
|
// ...and always show the "disappearing messages" animation.
|
||||||
&& receiptStatus == nextReceiptStatus
|
shouldHideFooter
|
||||||
&& outgoingMessage.messageState != TSOutgoingMessageStateFailed && !nextViewItem.shouldShowDate);
|
= ([timestampText isEqualToString:nextTimestampText] && receiptStatus == nextReceiptStatus
|
||||||
|
&& outgoingMessage.messageState != TSOutgoingMessageStateFailed && !nextViewItem.shouldShowDate
|
||||||
|
&& !isDisappearingMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
// clustering
|
// clustering
|
||||||
|
@ -4843,6 +4846,7 @@ typedef enum : NSUInteger {
|
||||||
TSIncomingMessage *incomingMessage = (TSIncomingMessage *)viewItem.interaction;
|
TSIncomingMessage *incomingMessage = (TSIncomingMessage *)viewItem.interaction;
|
||||||
NSString *incomingSenderId = incomingMessage.authorId;
|
NSString *incomingSenderId = incomingMessage.authorId;
|
||||||
OWSAssert(incomingSenderId.length > 0);
|
OWSAssert(incomingSenderId.length > 0);
|
||||||
|
BOOL isDisappearingMessage = incomingMessage.shouldStartExpireTimer;
|
||||||
|
|
||||||
NSString *_Nullable nextIncomingSenderId = nil;
|
NSString *_Nullable nextIncomingSenderId = nil;
|
||||||
if (nextViewItem && nextViewItem.interaction.interactionType == interactionType) {
|
if (nextViewItem && nextViewItem.interaction.interactionType == interactionType) {
|
||||||
|
@ -4855,8 +4859,10 @@ typedef enum : NSUInteger {
|
||||||
NSString *nextTimestampText = [DateUtil formatTimestampShort:nextViewItem.interaction.timestamp];
|
NSString *nextTimestampText = [DateUtil formatTimestampShort:nextViewItem.interaction.timestamp];
|
||||||
// We can skip the "incoming message status" footer in a cluster if the next message
|
// We can skip the "incoming message status" footer in a cluster if the next message
|
||||||
// has the same footer and no "date break" separates us.
|
// has the same footer and no "date break" separates us.
|
||||||
shouldHideFooter = [timestampText isEqualToString:nextTimestampText] && !nextViewItem.shouldShowDate &&
|
// ...but always show the "disappearing messages" animation.
|
||||||
[NSObject isNullableObject:nextIncomingSenderId equalTo:incomingSenderId];
|
shouldHideFooter = ([timestampText isEqualToString:nextTimestampText] && !nextViewItem.shouldShowDate &&
|
||||||
|
[NSObject isNullableObject:nextIncomingSenderId equalTo:incomingSenderId]
|
||||||
|
&& !isDisappearingMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
// clustering
|
// clustering
|
||||||
|
|
Loading…
Reference in a new issue