diff --git a/NotificationServiceExtension/NotificationServiceExtensionContext.swift b/NotificationServiceExtension/NotificationServiceExtensionContext.swift index 5b4eff265c..eaf12b5c67 100644 --- a/NotificationServiceExtension/NotificationServiceExtensionContext.swift +++ b/NotificationServiceExtension/NotificationServiceExtensionContext.swift @@ -16,6 +16,7 @@ class NotificationServiceExtensionContext: NSObject, AppContext { var shouldProcessIncomingMessages: Bool { true } var hasUI: Bool { false } func canPresentNotifications() -> Bool { true } + var didLastLaunchCrash: Bool { false } let appLaunchTime = Date() lazy var buildTime: Date = { diff --git a/Signal/src/util/MainAppContext.m b/Signal/src/util/MainAppContext.m index b0e17df1cb..cfa015751e 100644 --- a/Signal/src/util/MainAppContext.m +++ b/Signal/src/util/MainAppContext.m @@ -414,6 +414,11 @@ NSString *const ReportedApplicationStateDidChangeNotification = @"ReportedApplic return YES; } +- (BOOL)didLastLaunchCrash +{ + return SignalApp.sharedApp.didLastLaunchCrash; +} + @end NS_ASSUME_NONNULL_END diff --git a/SignalServiceKit/src/Contacts/TSThread+SDS.swift b/SignalServiceKit/src/Contacts/TSThread+SDS.swift index c0d36117d7..4cf9e37008 100644 --- a/SignalServiceKit/src/Contacts/TSThread+SDS.swift +++ b/SignalServiceKit/src/Contacts/TSThread+SDS.swift @@ -580,7 +580,7 @@ public extension ThreadRecord { init(row: Row) { // TODO: Remove these temporary checks. - if ThreadRecord.hasChecked.tryToSetFlag() { + if ThreadRecord.hasChecked.tryToSetFlag() || CurrentAppContext().didLastLaunchCrash { ThreadRecord.check(checker: ThreadRowCheckerImpl(row: row)) } diff --git a/SignalServiceKit/src/TestUtils/TestAppContext.m b/SignalServiceKit/src/TestUtils/TestAppContext.m index b8f4bc449a..c45470db61 100644 --- a/SignalServiceKit/src/TestUtils/TestAppContext.m +++ b/SignalServiceKit/src/TestUtils/TestAppContext.m @@ -194,6 +194,11 @@ NS_ASSUME_NONNULL_BEGIN return YES; } +- (BOOL)didLastLaunchCrash +{ + return NO; +} + @end #endif diff --git a/SignalServiceKit/src/Util/AppContext.h b/SignalServiceKit/src/Util/AppContext.h index a762128327..c79b4d281e 100755 --- a/SignalServiceKit/src/Util/AppContext.h +++ b/SignalServiceKit/src/Util/AppContext.h @@ -129,6 +129,8 @@ NSString *NSStringForUIApplicationState(UIApplicationState value); @property (nonatomic, readonly) BOOL hasUI; +@property (nonatomic, readonly) BOOL didLastLaunchCrash; + @end id CurrentAppContext(void); diff --git a/SignalShareExtension/utils/ShareAppExtensionContext.m b/SignalShareExtension/utils/ShareAppExtensionContext.m index 4ceedb5bf1..a2d362d1c5 100644 --- a/SignalShareExtension/utils/ShareAppExtensionContext.m +++ b/SignalShareExtension/utils/ShareAppExtensionContext.m @@ -318,6 +318,11 @@ NS_ASSUME_NONNULL_BEGIN return YES; } +- (BOOL)didLastLaunchCrash +{ + return NO; +} + @end NS_ASSUME_NONNULL_END