pull/175/head
nielsandriesse 6 years ago
parent fce6fe1170
commit e60dfe99c5

@ -102,7 +102,7 @@ NS_ASSUME_NONNULL_BEGIN
} }
if ([self isVersion:previousVersion lessThan:@"1.1.2"] && [self.tsAccountManager isRegistered]) { if ([self isVersion:previousVersion lessThan:@"1.1.2"] && [self.tsAccountManager isRegistered]) {
[self moveFriendRequestStatusFromThread]; [self updateFriendRequestStatusStorage];
} }
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
@ -212,18 +212,16 @@ NS_ASSUME_NONNULL_BEGIN
# pragma mark Loki - Upgrading Friend Request Status # pragma mark Loki - Upgrading Friend Request Status
// Versions less than or equal to 1.1.1 stored the friend request status on the thread
// Versions less than or equal to 1.1.1 stored friend request status on the thread + (void)updateFriendRequestStatusStorage
+ (void)moveFriendRequestStatusFromThread
{ {
OWSPrimaryStorage *storage = OWSPrimaryStorage.sharedManager; OWSPrimaryStorage *storage = OWSPrimaryStorage.sharedManager;
[OWSPrimaryStorage.dbReadWriteConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction * _Nonnull transaction) { [OWSPrimaryStorage.dbReadWriteConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
NSArray *threads = [TSThread allObjectsInCollection]; NSArray *threads = [TSThread allObjectsInCollection];
for (TSThread *thread in threads) { for (TSThread *thread in threads) {
if (!thread.isGroupThread) { if (thread.isGroupThread) { return; }
NSString *hexEncodedPublicKey = thread.contactIdentifier; NSString *hexEncodedPublicKey = thread.contactIdentifier;
[storage setFriendRequestStatus:thread.friendRequestStatus forContact:hexEncodedPublicKey transaction:transaction]; [storage setFriendRequestStatus:thread.friendRequestStatus forContact:hexEncodedPublicKey transaction:transaction];
}
} }
}]; }];
} }

@ -40,7 +40,7 @@ extern ConversationColorName const kConversationColorName_Default;
@property (nonatomic, readonly) TSInteraction *lastInteraction; @property (nonatomic, readonly) TSInteraction *lastInteraction;
// Loki friend request handling // Loki friend request handling
// ======== // ========
@property (nonatomic) NSInteger friendRequestStatus __deprecated_msg("use OWSPrimaryStorage.getFriendReeuqstStatusForContact instead"); @property (nonatomic) NSInteger friendRequestStatus __deprecated_msg("use OWSPrimaryStorage.getFriendRequestStatusForContact:transaction: instead");
@property (nonatomic, readonly) NSString *friendRequestStatusDescription; @property (nonatomic, readonly) NSString *friendRequestStatusDescription;
/// Shorthand for checking that `friendRequestStatus` is `LKThreadFriendRequestStatusRequestSending`, `LKThreadFriendRequestStatusRequestSent` /// Shorthand for checking that `friendRequestStatus` is `LKThreadFriendRequestStatusRequestSending`, `LKThreadFriendRequestStatusRequestSent`
/// or `LKThreadFriendRequestStatusRequestReceived`. /// or `LKThreadFriendRequestStatusRequestReceived`.

@ -17,7 +17,7 @@ typedef NS_ENUM(NSInteger, LKFriendRequestStatus) {
LKFriendRequestStatusRequestSent, LKFriendRequestStatusRequestSent,
/// Friend request received; awaiting user input. /// Friend request received; awaiting user input.
LKFriendRequestStatusRequestReceived, LKFriendRequestStatusRequestReceived,
/// We are friends with the other user. /// We're friends with the other user.
LKFriendRequestStatusFriends, LKFriendRequestStatusFriends,
/// A friend request was sent, but it timed out (i.e. the other user didn't accept within the allocated time). /// A friend request was sent, but it timed out (i.e. the other user didn't accept within the allocated time).
LKFriendRequestStatusRequestExpired LKFriendRequestStatusRequestExpired
@ -60,7 +60,7 @@ typedef NS_ENUM(NSInteger, LKFriendRequestStatus) {
- (void)setRestorationTime:(NSTimeInterval)time; - (void)setRestorationTime:(NSTimeInterval)time;
- (NSTimeInterval)getRestorationTime; - (NSTimeInterval)getRestorationTime;
# pragma mark - Friend Request # pragma mark - Friend Requests
- (LKFriendRequestStatus)getFriendRequestStatusForContact:(NSString *)hexEncodedPublicKey transaction:(YapDatabaseReadTransaction *)transaction NS_SWIFT_NAME(getFriendRequestStatus(for:transaction:)); - (LKFriendRequestStatus)getFriendRequestStatusForContact:(NSString *)hexEncodedPublicKey transaction:(YapDatabaseReadTransaction *)transaction NS_SWIFT_NAME(getFriendRequestStatus(for:transaction:));
- (void)setFriendRequestStatus:(LKFriendRequestStatus)friendRequestStatus forContact:(NSString *)hexEncodedPublicKey transaction:(YapDatabaseReadWriteTransaction *)transaction NS_SWIFT_NAME(setFriendRequestStatus(_:for:transaction:)); - (void)setFriendRequestStatus:(LKFriendRequestStatus)friendRequestStatus forContact:(NSString *)hexEncodedPublicKey transaction:(YapDatabaseReadWriteTransaction *)transaction NS_SWIFT_NAME(setFriendRequestStatus(_:for:transaction:));

@ -222,15 +222,13 @@
return [self.dbReadConnection doubleForKey:@"restoration_time" inCollection:LKGeneralCollection defaultValue:0]; return [self.dbReadConnection doubleForKey:@"restoration_time" inCollection:LKGeneralCollection defaultValue:0];
} }
# pragma mark - Friend Request # pragma mark - Friend Requests
#define LKFriendRequestCollection @"LKFriendRequestCollection" #define LKFriendRequestCollection @"LKFriendRequestCollection"
- (LKFriendRequestStatus)getFriendRequestStatusForContact:(NSString *)hexEncodedPublicKey transaction:( YapDatabaseReadTransaction *)transaction { - (LKFriendRequestStatus)getFriendRequestStatusForContact:(NSString *)hexEncodedPublicKey transaction:(YapDatabaseReadTransaction *)transaction {
NSNumber *_Nullable status = [transaction objectForKey:hexEncodedPublicKey inCollection:LKFriendRequestCollection]; NSNumber *_Nullable status = [transaction objectForKey:hexEncodedPublicKey inCollection:LKFriendRequestCollection];
if (status == nil) { return LKFriendRequestStatusNone; } if (status == nil) { return LKFriendRequestStatusNone; }
return [status integerValue]; return [status integerValue];
} }

Loading…
Cancel
Save