diff --git a/Signal/src/AppDelegate.m b/Signal/src/AppDelegate.m index 9fb69a705..780234edd 100644 --- a/Signal/src/AppDelegate.m +++ b/Signal/src/AppDelegate.m @@ -1213,6 +1213,22 @@ static NSTimeInterval launchStartedAt; [self.messageManager startObserving]; [self.udManager setup]; + + [self preheatDatabaseViews]; +} + +- (void)preheatDatabaseViews +{ + [self.primaryStorage.uiDatabaseConnection asyncReadWithBlock:^(YapDatabaseReadTransaction *transaction) { + for (NSString *viewName in @[ + TSThreadDatabaseViewExtensionName, + TSMessageDatabaseViewExtensionName, + TSThreadOutgoingMessageDatabaseViewExtensionName, + ]) { + YapDatabaseViewTransaction *databaseView = [transaction ext:viewName]; + OWSAssertDebug([databaseView isKindOfClass:[YapDatabaseViewTransaction class]]); + } + }]; } - (void)registrationStateDidChange diff --git a/SignalServiceKit/src/Storage/TSDatabaseView.h b/SignalServiceKit/src/Storage/TSDatabaseView.h index 3e83d174b..a308bf114 100644 --- a/SignalServiceKit/src/Storage/TSDatabaseView.h +++ b/SignalServiceKit/src/Storage/TSDatabaseView.h @@ -14,6 +14,7 @@ extern NSString *const TSThreadDatabaseViewExtensionName; extern NSString *const TSMessageDatabaseViewExtensionName; extern NSString *const TSUnreadDatabaseViewExtensionName; +extern NSString *const TSThreadOutgoingMessageDatabaseViewExtensionName; extern NSString *const TSSecondaryDevicesDatabaseViewExtensionName;