Don't expire messages until they are sent.

// FREEBIE
pull/1/head
Michael Kirk 9 years ago
parent 2b2ebbe099
commit dc95d328cb

@ -135,7 +135,7 @@ EXTERNAL SOURCES:
CHECKOUT OPTIONS: CHECKOUT OPTIONS:
SignalServiceKit: SignalServiceKit:
:commit: 5ebffa3406425e56ce3d7c39f4857a88de77bd8e :commit: c274e3aa30ed07c5166f1bd3bec7097bafab8dc4
:git: https://github.com/WhisperSystems/SignalServiceKit.git :git: https://github.com/WhisperSystems/SignalServiceKit.git
SocketRocket: SocketRocket:
:commit: 41b57bb2fc292a814f758441a05243eb38457027 :commit: 41b57bb2fc292a814f758441a05243eb38457027

@ -38,7 +38,7 @@
</dict> </dict>
</array> </array>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>2.6.0.10</string> <string>2.6.0.11</string>
<key>ITSAppUsesNonExemptEncryption</key> <key>ITSAppUsesNonExemptEncryption</key>
<false/> <false/>
<key>LOGS_EMAIL</key> <key>LOGS_EMAIL</key>

@ -9,7 +9,8 @@
// -- Redeclaring properties from OWSMessageData protocol to synthesize variables // -- Redeclaring properties from OWSMessageData protocol to synthesize variables
@property (nonatomic) TSMessageAdapterType messageType; @property (nonatomic) TSMessageAdapterType messageType;
@property (nonatomic, getter=isExpiringMessage) BOOL expiringMessage; @property (nonatomic) BOOL isExpiringMessage;
@property (nonatomic) BOOL shouldStartExpireTimer;
@property (nonatomic) uint64_t expiresAtSeconds; @property (nonatomic) uint64_t expiresAtSeconds;
@property (nonatomic) uint32_t expiresInSeconds; @property (nonatomic) uint32_t expiresInSeconds;
@ -47,7 +48,8 @@
_senderDisplayName = [senderDisplayName copy]; _senderDisplayName = [senderDisplayName copy];
_date = [date copy]; _date = [date copy];
_status = status; _status = status;
_expiringMessage = NO; // TODO - call notifications should expire too. _isExpiringMessage = NO; // TODO - call notifications should expire too.
_shouldStartExpireTimer = NO; // TODO - call notifications should expire too.
_messageType = TSCallAdapter; _messageType = TSCallAdapter;
// TODO interpret detailString from status. make sure it works for calls and // TODO interpret detailString from status. make sure it works for calls and

@ -19,7 +19,8 @@ typedef NS_ENUM(NSInteger, TSMessageAdapterType) {
@protocol OWSMessageData <JSQMessageData, OWSMessageEditing> @protocol OWSMessageData <JSQMessageData, OWSMessageEditing>
@property (nonatomic, readonly) TSMessageAdapterType messageType; @property (nonatomic, readonly) TSMessageAdapterType messageType;
@property (nonatomic, readonly, getter=isExpiringMessage) BOOL expiringMessage; @property (nonatomic, readonly) BOOL isExpiringMessage;
@property (nonatomic, readonly) BOOL shouldStartExpireTimer;
@property (nonatomic, readonly) uint64_t expiresAtSeconds; @property (nonatomic, readonly) uint64_t expiresAtSeconds;
@property (nonatomic, readonly) uint32_t expiresInSeconds; @property (nonatomic, readonly) uint32_t expiresInSeconds;

@ -50,7 +50,8 @@
// -- Redeclaring properties from OWSMessageData protocol to synthesize variables // -- Redeclaring properties from OWSMessageData protocol to synthesize variables
@property (nonatomic) TSMessageAdapterType messageType; @property (nonatomic) TSMessageAdapterType messageType;
@property (nonatomic, getter=isExpiringMessage) BOOL expiringMessage; @property (nonatomic) BOOL isExpiringMessage;
@property (nonatomic) BOOL shouldStartExpireTimer;
@property (nonatomic) uint64_t expiresAtSeconds; @property (nonatomic) uint64_t expiresAtSeconds;
@property (nonatomic) uint32_t expiresInSeconds; @property (nonatomic) uint32_t expiresInSeconds;
@ -79,11 +80,12 @@
if ([interaction isKindOfClass:[TSMessage class]]) { if ([interaction isKindOfClass:[TSMessage class]]) {
TSMessage *message = (TSMessage *)interaction; TSMessage *message = (TSMessage *)interaction;
_expiringMessage = message.isExpiringMessage; _isExpiringMessage = message.isExpiringMessage;
_expiresAtSeconds = message.expiresAt / 1000; _expiresAtSeconds = message.expiresAt / 1000;
_expiresInSeconds = message.expiresInSeconds; _expiresInSeconds = message.expiresInSeconds;
_shouldStartExpireTimer = message.shouldStartExpireTimer;
} else { } else {
_expiringMessage = NO; _isExpiringMessage = NO;
} }
return self; return self;

@ -738,7 +738,7 @@ typedef enum : NSUInteger {
} }
cell.delegate = collectionView; cell.delegate = collectionView;
if (message.isExpiringMessage && [cell conformsToProtocol:@protocol(OWSExpirableMessageView)]) { if (message.shouldStartExpireTimer && [cell conformsToProtocol:@protocol(OWSExpirableMessageView)]) {
id<OWSExpirableMessageView> expirableView = (id<OWSExpirableMessageView>)cell; id<OWSExpirableMessageView> expirableView = (id<OWSExpirableMessageView>)cell;
[expirableView startExpirationTimerWithExpiresAtSeconds:message.expiresAtSeconds [expirableView startExpirationTimerWithExpiresAtSeconds:message.expiresAtSeconds
initialDurationSeconds:message.expiresInSeconds]; initialDurationSeconds:message.expiresInSeconds];
@ -1864,9 +1864,6 @@ typedef enum : NSUInteger {
return messageAdapter; return messageAdapter;
} }
#pragma mark group action view
#pragma mark - Audio #pragma mark - Audio
- (void)recordAudio { - (void)recordAudio {
@ -1963,7 +1960,6 @@ typedef enum : NSUInteger {
canPerformAction:(SEL)action canPerformAction:(SEL)action
forItemAtIndexPath:(NSIndexPath *)indexPath forItemAtIndexPath:(NSIndexPath *)indexPath
withSender:(id)sender { withSender:(id)sender {
TSMessageAdapter *messageAdapter = [self messageAtIndexPath:indexPath]; TSMessageAdapter *messageAdapter = [self messageAtIndexPath:indexPath];
// HACK make sure method exists before calling since messageAtIndexPath doesn't // HACK make sure method exists before calling since messageAtIndexPath doesn't
// always return TSMessageAdapters - it can also return JSQCall! // always return TSMessageAdapters - it can also return JSQCall!

Loading…
Cancel
Save