Add friend request status collection

pull/175/head
Mikunj 6 years ago
parent a9b9c807ff
commit 68a14e95da

@ -99,6 +99,10 @@ NS_ASSUME_NONNULL_BEGIN
[self updatePublicChatMapping]; [self updatePublicChatMapping];
} }
if ([self isVersion:previousVersion lessThan:@"1.1.2"] && [self.tsAccountManager isRegistered]) {
// TODO: Migrate Friend Request Status
}
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[[[OWSDatabaseMigrationRunner alloc] init] runAllOutstandingWithCompletion:completion]; [[[OWSDatabaseMigrationRunner alloc] init] runAllOutstandingWithCompletion:completion];
}); });

@ -8,6 +8,21 @@
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSInteger, LKFriendRequestStatus) {
/// New conversation; no messages sent or received.
LKFriendRequestStatusNone,
/// This state is used to lock the input early while sending.
LKFriendRequestStatusRequestSending,
/// Friend request sent; awaiting response.
LKFriendRequestStatusRequestSent,
/// Friend request received; awaiting user input.
LKFriendRequestStatusRequestReceived,
/// We are friends with the other user.
LKFriendRequestStatusFriends,
/// A friend request was sent, but it timed out (i.e. the other user didn't accept within the allocated time).
LKFriendRequestStatusRequestExpired
};
@interface OWSPrimaryStorage (Loki) @interface OWSPrimaryStorage (Loki)
# pragma mark - Pre Key Record Management # pragma mark - Pre Key Record Management
@ -45,6 +60,13 @@ NS_ASSUME_NONNULL_BEGIN
- (void)setRestorationTime:(NSTimeInterval)time; - (void)setRestorationTime:(NSTimeInterval)time;
- (NSTimeInterval)getRestorationTime; - (NSTimeInterval)getRestorationTime;
# pragma mark - Friend Request
- (LKFriendRequestStatus)getFriendRequestStatusForContact:(NSString *)hexEncodedPublicKey transaction:(YapDatabaseReadTransaction *)transaction;
NS_SWIFT_NAME(getFriendRequestStatus(forContact:in:));
- (void)setFriendRequestStatus:(LKFriendRequestStatus)friendRequestStatus forContact:(NSString *)hexEncodedPublicKey transaction:(YapDatabaseReadWriteTransaction *)transaction;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

@ -222,4 +222,20 @@
return [self.dbReadConnection doubleForKey:@"restoration_time" inCollection:LKGeneralCollection defaultValue:0]; return [self.dbReadConnection doubleForKey:@"restoration_time" inCollection:LKGeneralCollection defaultValue:0];
} }
# pragma mark - Friend Request
#define LKFriendRequestCollection @"LKFriendRequestCollection"
- (LKFriendRequestStatus)getFriendRequestStatusForContact:(NSString *)hexEncodedPublicKey transaction:( YapDatabaseReadTransaction *)transaction {
NSNumber *_Nullable status = [transaction objectForKey:hexEncodedPublicKey inCollection:LKFriendRequestCollection];
if (status == nil) { return LKFriendRequestStatusNone; }
return [status integerValue];
}
- (void)setFriendRequestStatus:(LKFriendRequestStatus)friendRequestStatus forContact:(NSString *)hexEncodedPublicKey transaction:(YapDatabaseReadWriteTransaction *)transaction {
[transaction setObject:@(friendRequestStatus) forKey:hexEncodedPublicKey inCollection:LKFriendRequestCollection];
}
@end @end

Loading…
Cancel
Save