Clean & fix conversation settings crash

pull/15/head
Niels Andriesse 6 years ago
parent fffb55540b
commit b83766ef74

@ -4294,7 +4294,7 @@ typedef enum : NSUInteger {
- (void)acceptFriendRequest:(TSIncomingMessage *)friendRequest - (void)acceptFriendRequest:(TSIncomingMessage *)friendRequest
{ {
[ThreadUtil enqueueFriendRequestAcceptMessageInThread:self.thread]; [ThreadUtil enqueueAcceptFriendRequestMessageInThread:self.thread];
} }
- (void)declineFriendRequest:(TSIncomingMessage *)friendRequest - (void)declineFriendRequest:(TSIncomingMessage *)friendRequest

@ -260,7 +260,10 @@ const CGFloat kIconViewLength = 24;
- (void)contactsViewHelperDidUpdateContacts - (void)contactsViewHelperDidUpdateContacts
{ {
[self updateTableContents]; // Loki: Original code
// ========
// [self updateTableContents];
// ========
} }
#pragma mark - View Lifecycle #pragma mark - View Lifecycle

@ -106,7 +106,8 @@ public class ProfileFetcherJob: NSObject {
self.getAndUpdateProfile(recipientId: recipientId) self.getAndUpdateProfile(recipientId: recipientId)
} }
} }
*/ * ================
*/
} }
enum ProfileFetcherJobError: Error { enum ProfileFetcherJobError: Error {

@ -44,7 +44,7 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark - Durable Message Enqueue #pragma mark - Durable Message Enqueue
+ (TSOutgoingMessage *)enqueueFriendRequestAcceptMessageInThread:(TSThread *)thread; + (TSOutgoingMessage *)enqueueAcceptFriendRequestMessageInThread:(TSThread *)thread;
+ (TSOutgoingMessage *)enqueueMessageWithText:(NSString *)fullMessageText + (TSOutgoingMessage *)enqueueMessageWithText:(NSString *)fullMessageText
inThread:(TSThread *)thread inThread:(TSThread *)thread

@ -86,9 +86,9 @@ typedef void (^BuildOutgoingMessageCompletionBlock)(TSOutgoingMessage *savedMess
#pragma mark - Durable Message Enqueue #pragma mark - Durable Message Enqueue
// Loki: TODO We may change this? // Loki: TODO We may change this?
+ (TSOutgoingMessage *)enqueueFriendRequestAcceptMessageInThread:(TSThread *)thread + (TSOutgoingMessage *)enqueueAcceptFriendRequestMessageInThread:(TSThread *)thread
{ {
TSOutgoingMessage *message = [TSOutgoingMessage emptyOutgoingMessageInThread:thread]; TSOutgoingMessage *message = [TSOutgoingMessage createEmptyOutgoingMessageInThread:thread];
[self.dbConnection asyncReadWriteWithBlock:^(YapDatabaseReadWriteTransaction *_Nonnull transaction) { [self.dbConnection asyncReadWriteWithBlock:^(YapDatabaseReadWriteTransaction *_Nonnull transaction) {
[self.messageSenderJobQueue addMessage:message transaction:transaction]; [self.messageSenderJobQueue addMessage:message transaction:transaction];
}]; }];
@ -186,8 +186,8 @@ typedef void (^BuildOutgoingMessageCompletionBlock)(TSOutgoingMessage *savedMess
// Loki: If we're not friends then always set the message to a friend request message // Loki: If we're not friends then always set the message to a friend request message
// If we're friends then the assumption is that we have the other user's pre-key bundle // If we're friends then the assumption is that we have the other user's pre-key bundle
NSString *messageClassString = [thread isFriend] ? @"TSOutgoingMessage" : @"OWSFriendRequestMessage"; NSString *messageClassAsString = thread.isFriend ? @"TSOutgoingMessage" : @"OWSFriendRequestMessage";
Class messageClass = NSClassFromString(messageClassString); Class messageClass = NSClassFromString(messageClassAsString);
TSOutgoingMessage *message = TSOutgoingMessage *message =
[[messageClass alloc] initOutgoingMessageWithTimestamp:[NSDate ows_millisecondTimeStamp] [[messageClass alloc] initOutgoingMessageWithTimestamp:[NSDate ows_millisecondTimeStamp]

@ -27,10 +27,10 @@ public class CreatePreKeysOperation: OWSOperation {
self.identityKeyManager.generateNewIdentityKey() self.identityKeyManager.generateNewIdentityKey()
} }
/// Loki: We don't generate PreKeyRecords here. // Loki: We don't generate PreKeyRecords here.
/// This is because we need the records to be linked to a contact since we don't have a central server. // This is because we need the records to be linked to a contact since we don't have a central server.
/// It is done automatically when we generate a PreKeyBundle to send to a contact (`generatePreKeyBundleForContact:`). // It is done automatically when we generate a PreKeyBundle to send to a contact (`generatePreKeyBundleForContact:`).
/// You can use `getOrCreatePreKeyForContact:` to generate one if needed. // You can use `getOrCreatePreKeyForContact:` to generate one if needed.
let signedPreKeyRecord = self.primaryStorage.generateRandomSignedRecord() let signedPreKeyRecord = self.primaryStorage.generateRandomSignedRecord()
signedPreKeyRecord.markAsAcceptedByService() signedPreKeyRecord.markAsAcceptedByService()
self.primaryStorage.storeSignedPreKey(signedPreKeyRecord.id, signedPreKeyRecord: signedPreKeyRecord) self.primaryStorage.storeSignedPreKey(signedPreKeyRecord.id, signedPreKeyRecord: signedPreKeyRecord)
@ -40,7 +40,7 @@ public class CreatePreKeysOperation: OWSOperation {
self.reportSuccess() self.reportSuccess()
/* Loki: Original code /* Loki: Original code
* ================ * ================
let identityKey: Data = self.identityKeyManager.identityKeyPair()!.publicKey let identityKey: Data = self.identityKeyManager.identityKeyPair()!.publicKey
let signedPreKeyRecord: SignedPreKeyRecord = self.primaryStorage.generateRandomSignedRecord() let signedPreKeyRecord: SignedPreKeyRecord = self.primaryStorage.generateRandomSignedRecord()
let preKeyRecords: [PreKeyRecord] = self.primaryStorage.generatePreKeyRecords() let preKeyRecords: [PreKeyRecord] = self.primaryStorage.generatePreKeyRecords()
@ -60,6 +60,7 @@ public class CreatePreKeysOperation: OWSOperation {
}.catch { error in }.catch { error in
self.reportError(error) self.reportError(error)
}.retainUntilComplete() }.retainUntilComplete()
*/ * ================
*/
} }
} }

@ -90,7 +90,8 @@ public class RefreshPreKeysOperation: OWSOperation {
}.catch { error in }.catch { error in
self.reportError(error) self.reportError(error)
}.retainUntilComplete() }.retainUntilComplete()
*/ * ================
*/
} }
public override func didSucceed() { public override func didSucceed() {

@ -62,7 +62,8 @@ public class RotateSignedPreKeyOperation: OWSOperation {
}.catch { error in }.catch { error in
self.reportError(error) self.reportError(error)
}.retainUntilComplete() }.retainUntilComplete()
*/ * ================
*/
} }
override public func didFail(error: Error) { override public func didFail(error: Error) {

@ -2,7 +2,7 @@
@objc public extension TSOutgoingMessage { @objc public extension TSOutgoingMessage {
/// Loki: This is a message used to establish sessions /// Loki: This is a message used to establish sessions
@objc public static func emptyOutgoingMessage(inThread thread: TSThread) -> TSOutgoingMessage { @objc public static func createEmptyOutgoingMessage(inThread thread: TSThread) -> TSOutgoingMessage {
return TSOutgoingMessage(outgoingMessageWithTimestamp: NSDate.ows_millisecondTimeStamp(), return TSOutgoingMessage(outgoingMessageWithTimestamp: NSDate.ows_millisecondTimeStamp(),
in: thread, in: thread,
messageBody: "", messageBody: "",

@ -1066,7 +1066,6 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
hasValidMessageType = [validMessageTypes containsObject:messageType]; hasValidMessageType = [validMessageTypes containsObject:messageType];
/* Loki: Original code: /* Loki: Original code:
* ================
hasValidMessageType = ([messageType isEqualToNumber:@(TSEncryptedWhisperMessageType)] || hasValidMessageType = ([messageType isEqualToNumber:@(TSEncryptedWhisperMessageType)] ||
[messageType isEqualToNumber:@(TSPreKeyWhisperMessageType)]); [messageType isEqualToNumber:@(TSPreKeyWhisperMessageType)]);
*/ */
@ -1620,7 +1619,7 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
__block NSException *_Nullable exception; __block NSException *_Nullable exception;
/** Loki: Original code /** Loki: Original code
* ================== * ================
__block dispatch_semaphore_t sema = dispatch_semaphore_create(0); __block dispatch_semaphore_t sema = dispatch_semaphore_create(0);
__block PreKeyBundle *_Nullable bundle; __block PreKeyBundle *_Nullable bundle;
__block NSException *_Nullable exception; __block NSException *_Nullable exception;

@ -910,7 +910,7 @@ NSString *const kNSNotification_OWSWebSocketStateDidChange = @"kNSNotification_O
{ {
OWSAssertIsOnMainThread(); OWSAssertIsOnMainThread();
// Loki: Since we don't use web sockets, disable them. // Loki: Since we don't use web sockets, disable them
return NO; return NO;
// Don't open socket in app extensions. // Don't open socket in app extensions.

@ -10,7 +10,7 @@ NS_ASSUME_NONNULL_BEGIN
@interface OWSPrimaryStorage (PreKeyStore) <PreKeyStore> @interface OWSPrimaryStorage (PreKeyStore) <PreKeyStore>
- (NSArray<PreKeyRecord *> *)generatePreKeyRecords; - (NSArray<PreKeyRecord *> *)generatePreKeyRecords;
- (NSArray<PreKeyRecord *> *)generatePreKeyRecords:(NSUInteger)batchSize; - (NSArray<PreKeyRecord *> *)generatePreKeyRecords:(int)batchSize;
- (void)storePreKeyRecords:(NSArray<PreKeyRecord *> *)preKeyRecords NS_SWIFT_NAME(storePreKeyRecords(_:)); - (void)storePreKeyRecords:(NSArray<PreKeyRecord *> *)preKeyRecords NS_SWIFT_NAME(storePreKeyRecords(_:));
@end @end

@ -23,7 +23,7 @@ NS_ASSUME_NONNULL_BEGIN
return [self generatePreKeyRecords:BATCH_SIZE]; return [self generatePreKeyRecords:BATCH_SIZE];
} }
- (NSArray<PreKeyRecord *> *)generatePreKeyRecords:(NSUInteger)batchSize - (NSArray<PreKeyRecord *> *)generatePreKeyRecords:(int)batchSize
{ {
NSMutableArray *preKeyRecords = [NSMutableArray array]; NSMutableArray *preKeyRecords = [NSMutableArray array];

Loading…
Cancel
Save