Merge branch 'charlesmchen/incomingAndOutgoingDatabaseViews'
This commit is contained in:
commit
07b54039b2
@ -225,16 +225,6 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
return [messages copy];
|
||||
}
|
||||
|
||||
- (NSArray<id<OWSReadTracking> > *)unreadMessages
|
||||
{
|
||||
__block NSArray<id<OWSReadTracking> > *messages;
|
||||
[self.dbConnection readWithBlock:^(YapDatabaseReadTransaction *_Nonnull transaction) {
|
||||
messages = [self unreadMessagesWithTransaction:transaction];
|
||||
}];
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
- (void)markAllAsReadWithTransaction:(YapDatabaseReadWriteTransaction *)transaction
|
||||
{
|
||||
for (id<OWSReadTracking> message in [self unseenMessagesWithTransaction:transaction]) {
|
||||
|
||||
@ -14,6 +14,8 @@ extern NSString *TSSecondaryDevicesGroup;
|
||||
|
||||
extern NSString *TSThreadDatabaseViewExtensionName;
|
||||
extern NSString *TSMessageDatabaseViewExtensionName;
|
||||
extern NSString *TSThreadIncomingMessageDatabaseViewExtensionName;
|
||||
extern NSString *TSThreadOutgoingMessageDatabaseViewExtensionName;
|
||||
extern NSString *TSUnreadDatabaseViewExtensionName;
|
||||
extern NSString *TSUnseenDatabaseViewExtensionName;
|
||||
extern NSString *TSDynamicMessagesDatabaseViewExtensionName;
|
||||
@ -22,6 +24,8 @@ extern NSString *TSSecondaryDevicesDatabaseViewExtensionName;
|
||||
|
||||
+ (BOOL)registerThreadDatabaseView;
|
||||
+ (BOOL)registerThreadInteractionsDatabaseView;
|
||||
+ (BOOL)registerThreadIncomingMessagesDatabaseView;
|
||||
+ (BOOL)registerThreadOutgoingMessagesDatabaseView;
|
||||
|
||||
// Instances of OWSReadTracking for wasRead is NO and shouldAffectUnreadCounts is YES.
|
||||
//
|
||||
|
||||
@ -20,6 +20,8 @@ NSString *TSSecondaryDevicesGroup = @"TSSecondaryDevicesGroup";
|
||||
|
||||
NSString *TSThreadDatabaseViewExtensionName = @"TSThreadDatabaseViewExtensionName";
|
||||
NSString *TSMessageDatabaseViewExtensionName = @"TSMessageDatabaseViewExtensionName";
|
||||
NSString *TSThreadIncomingMessageDatabaseViewExtensionName = @"TSThreadOutgoingMessageDatabaseViewExtensionName";
|
||||
NSString *TSThreadOutgoingMessageDatabaseViewExtensionName = @"TSThreadOutgoingMessageDatabaseViewExtensionName";
|
||||
NSString *TSUnreadDatabaseViewExtensionName = @"TSUnreadDatabaseViewExtensionName";
|
||||
NSString *TSUnseenDatabaseViewExtensionName = @"TSUnseenDatabaseViewExtensionName";
|
||||
NSString *TSDynamicMessagesDatabaseViewExtensionName = @"TSDynamicMessagesDatabaseViewExtensionName";
|
||||
@ -145,6 +147,36 @@ NSString *TSSecondaryDevicesDatabaseViewExtensionName = @"TSSecondaryDevicesData
|
||||
version:@"1"];
|
||||
}
|
||||
|
||||
+ (BOOL)registerThreadIncomingMessagesDatabaseView
|
||||
{
|
||||
YapDatabaseViewGrouping *viewGrouping = [YapDatabaseViewGrouping withObjectBlock:^NSString *(
|
||||
YapDatabaseReadTransaction *transaction, NSString *collection, NSString *key, id object) {
|
||||
if ([object isKindOfClass:[TSIncomingMessage class]]) {
|
||||
return ((TSIncomingMessage *)object).uniqueThreadId;
|
||||
}
|
||||
return nil;
|
||||
}];
|
||||
|
||||
return [self registerMessageDatabaseViewWithName:TSThreadIncomingMessageDatabaseViewExtensionName
|
||||
viewGrouping:viewGrouping
|
||||
version:@"1"];
|
||||
}
|
||||
|
||||
+ (BOOL)registerThreadOutgoingMessagesDatabaseView
|
||||
{
|
||||
YapDatabaseViewGrouping *viewGrouping = [YapDatabaseViewGrouping withObjectBlock:^NSString *(
|
||||
YapDatabaseReadTransaction *transaction, NSString *collection, NSString *key, id object) {
|
||||
if ([object isKindOfClass:[TSOutgoingMessage class]]) {
|
||||
return ((TSOutgoingMessage *)object).uniqueThreadId;
|
||||
}
|
||||
return nil;
|
||||
}];
|
||||
|
||||
return [self registerMessageDatabaseViewWithName:TSThreadOutgoingMessageDatabaseViewExtensionName
|
||||
viewGrouping:viewGrouping
|
||||
version:@"1"];
|
||||
}
|
||||
|
||||
+ (BOOL)registerThreadDatabaseView {
|
||||
YapDatabaseView *threadView =
|
||||
[[TSStorageManager sharedManager].database registeredExtension:TSThreadDatabaseViewExtensionName];
|
||||
|
||||
@ -198,6 +198,8 @@ static NSString *keychainDBPassAccount = @"TSDatabasePass";
|
||||
// Register extensions which are essential for rendering threads synchronously
|
||||
[TSDatabaseView registerThreadDatabaseView];
|
||||
[TSDatabaseView registerThreadInteractionsDatabaseView];
|
||||
[TSDatabaseView registerThreadIncomingMessagesDatabaseView];
|
||||
[TSDatabaseView registerThreadOutgoingMessagesDatabaseView];
|
||||
[TSDatabaseView registerUnreadDatabaseView];
|
||||
[TSDatabaseView registerUnseenDatabaseView];
|
||||
[TSDatabaseView registerDynamicMessagesDatabaseView];
|
||||
|
||||
Loading…
Reference in New Issue
Block a user