diff --git a/Signal/src/ViewControllers/DebugUI/DebugUIMisc.m b/Signal/src/ViewControllers/DebugUI/DebugUIMisc.m index e69b2a816..fe6ea8065 100644 --- a/Signal/src/ViewControllers/DebugUI/DebugUIMisc.m +++ b/Signal/src/ViewControllers/DebugUI/DebugUIMisc.m @@ -63,6 +63,10 @@ NS_ASSUME_NONNULL_BEGIN [OWSProfileManager.sharedManager logProfileWhitelist]; }]]; #endif + [items addObject:[OWSTableItem itemWithTitle:@"Clear hasDismissedOffers" + actionBlock:^{ + [DebugUIMisc clearHasDismissedOffers]; + }]]; return [OWSTableSection sectionWithTitle:self.name items:items]; } @@ -93,6 +97,30 @@ NS_ASSUME_NONNULL_BEGIN OWSSignalService.sharedInstance.isCensorshipCircumventionManuallyActivated = isEnabled; } ++ (void)clearHasDismissedOffers +{ + [TSStorageManager.sharedManager.dbReadConnection + readWriteWithBlock:^(YapDatabaseReadWriteTransaction *_Nonnull transaction) { + NSMutableArray *contactThreads = [NSMutableArray new]; + [transaction + enumerateKeysAndObjectsInCollection:[TSThread collection] + usingBlock:^(NSString *_Nonnull key, id _Nonnull object, BOOL *_Nonnull stop) { + TSThread *thread = object; + if (thread.isGroupThread) { + return; + } + TSContactThread *contactThread = object; + [contactThreads addObject:contactThread]; + }]; + for (TSContactThread *contactThread in contactThreads) { + if (contactThread.hasDismissedOffers) { + contactThread.hasDismissedOffers = NO; + [contactThread saveWithTransaction:transaction]; + } + } + }]; +} + @end NS_ASSUME_NONNULL_END