|
|
@ -979,7 +979,6 @@ NSString *NSStringForOWSMessageCellType(OWSMessageCellType cellType)
|
|
|
|
|
|
|
|
|
|
|
|
- (void)deleteRemotelyAction
|
|
|
|
- (void)deleteRemotelyAction
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// TODO: closed group and one-on-one chat
|
|
|
|
|
|
|
|
TSMessage *message = (TSMessage *)self.interaction;
|
|
|
|
TSMessage *message = (TSMessage *)self.interaction;
|
|
|
|
|
|
|
|
|
|
|
|
if (self.isGroupThread) {
|
|
|
|
if (self.isGroupThread) {
|
|
|
@ -1010,14 +1009,22 @@ NSString *NSStringForOWSMessageCellType(OWSMessageCellType cellType)
|
|
|
|
}) retainUntilComplete];
|
|
|
|
}) retainUntilComplete];
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
NSString *groupPublicKey = [LKGroupUtilities getDecodedGroupID:groupThread.groupModel.groupId];
|
|
|
|
NSString *groupPublicKey = [LKGroupUtilities getDecodedGroupID:groupThread.groupModel.groupId];
|
|
|
|
[[SNSnodeAPI deleteMessageForPublickKey:groupPublicKey serverHashes:@[message.serverHash]].catch(^(NSError *error) {
|
|
|
|
NSArray *serverHashes = @[message.serverHash];
|
|
|
|
|
|
|
|
if ([message isKindOfClass:[TSOutgoingMessage class]] && ((TSOutgoingMessage *)message).syncMessageServerHash != nil) {
|
|
|
|
|
|
|
|
serverHashes = @[message.serverHash, ((TSOutgoingMessage *)message).syncMessageServerHash];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
[[SNSnodeAPI deleteMessageForPublickKey:groupPublicKey serverHashes:serverHashes].catch(^(NSError *error) {
|
|
|
|
// Roll back
|
|
|
|
// Roll back
|
|
|
|
[self.interaction save];
|
|
|
|
[self.interaction save];
|
|
|
|
}) retainUntilComplete];
|
|
|
|
}) retainUntilComplete];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
TSContactThread *contactThread = (TSContactThread *)self.interaction.thread;
|
|
|
|
TSContactThread *contactThread = (TSContactThread *)self.interaction.thread;
|
|
|
|
[[SNSnodeAPI deleteMessageForPublickKey:contactThread.contactSessionID serverHashes:@[message.serverHash]].catch(^(NSError *error) {
|
|
|
|
NSArray *serverHashes = @[message.serverHash];
|
|
|
|
|
|
|
|
if ([message isKindOfClass:[TSOutgoingMessage class]] && ((TSOutgoingMessage *)message).syncMessageServerHash != nil) {
|
|
|
|
|
|
|
|
serverHashes = @[message.serverHash, ((TSOutgoingMessage *)message).syncMessageServerHash];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
[[SNSnodeAPI deleteMessageForPublickKey:contactThread.contactSessionID serverHashes:serverHashes].catch(^(NSError *error) {
|
|
|
|
// Roll back
|
|
|
|
// Roll back
|
|
|
|
[self.interaction save];
|
|
|
|
[self.interaction save];
|
|
|
|
}) retainUntilComplete];
|
|
|
|
}) retainUntilComplete];
|
|
|
|