Fix group leaving bug
This commit is contained in:
parent
700fb185f6
commit
c26e5dcba8
|
@ -34,6 +34,7 @@
|
||||||
#import <SessionServiceKit/TSThread.h>
|
#import <SessionServiceKit/TSThread.h>
|
||||||
|
|
||||||
@import ContactsUI;
|
@import ContactsUI;
|
||||||
|
@import PromiseKit;
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_BEGIN
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
@ -1176,13 +1177,21 @@ const CGFloat kIconViewLength = 24;
|
||||||
- (void)leaveGroup
|
- (void)leaveGroup
|
||||||
{
|
{
|
||||||
TSGroupThread *gThread = (TSGroupThread *)self.thread;
|
TSGroupThread *gThread = (TSGroupThread *)self.thread;
|
||||||
TSOutgoingMessage *message =
|
|
||||||
[TSOutgoingMessage outgoingMessageInThread:gThread groupMetaMessage:TSGroupMetaMessageQuit expiresInSeconds:0];
|
|
||||||
|
|
||||||
[LKStorage writeSyncWithBlock:^(YapDatabaseReadWriteTransaction *_Nonnull transaction) {
|
if (gThread.usesSharedSenderKeys) {
|
||||||
[self.messageSenderJobQueue addMessage:message transaction:transaction];
|
NSString *groupPublicKey = [LKGroupUtilities getDecodedGroupID:gThread.groupModel.groupId];
|
||||||
[gThread leaveGroupWithTransaction:transaction];
|
[LKStorage writeSyncWithBlock:^(YapDatabaseReadWriteTransaction *_Nonnull transaction) {
|
||||||
} error:nil];
|
[[LKClosedGroupsProtocol leaveGroupWithPublicKey:groupPublicKey transaction:transaction] retainUntilComplete];
|
||||||
|
} error:nil];
|
||||||
|
} else {
|
||||||
|
TSOutgoingMessage *message =
|
||||||
|
[TSOutgoingMessage outgoingMessageInThread:gThread groupMetaMessage:TSGroupMetaMessageQuit expiresInSeconds:0];
|
||||||
|
|
||||||
|
[LKStorage writeSyncWithBlock:^(YapDatabaseReadWriteTransaction *_Nonnull transaction) {
|
||||||
|
[self.messageSenderJobQueue addMessage:message transaction:transaction];
|
||||||
|
[gThread leaveGroupWithTransaction:transaction];
|
||||||
|
} error:nil];
|
||||||
|
}
|
||||||
|
|
||||||
[self.navigationController popViewControllerAnimated:YES];
|
[self.navigationController popViewControllerAnimated:YES];
|
||||||
}
|
}
|
||||||
|
|
|
@ -128,6 +128,11 @@ public final class ClosedGroupsProtocol : NSObject {
|
||||||
infoMessage.save(with: transaction)
|
infoMessage.save(with: transaction)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@objc(leaveGroupWithPublicKey:transaction:)
|
||||||
|
public static func objc_leave(_ groupPublicKey: String, using transaction: YapDatabaseReadWriteTransaction) -> AnyPromise {
|
||||||
|
return AnyPromise.from(leave(groupPublicKey, using: transaction))
|
||||||
|
}
|
||||||
|
|
||||||
public static func leave(_ groupPublicKey: String, using transaction: YapDatabaseReadWriteTransaction) -> Promise<Void> {
|
public static func leave(_ groupPublicKey: String, using transaction: YapDatabaseReadWriteTransaction) -> Promise<Void> {
|
||||||
let userPublicKey = UserDefaults.standard[.masterHexEncodedPublicKey] ?? getUserHexEncodedPublicKey()
|
let userPublicKey = UserDefaults.standard[.masterHexEncodedPublicKey] ?? getUserHexEncodedPublicKey()
|
||||||
return removeMembers([ userPublicKey ], from: groupPublicKey, using: transaction)
|
return removeMembers([ userPublicKey ], from: groupPublicKey, using: transaction)
|
||||||
|
|
Loading…
Reference in New Issue