From faf3cd6a554c60d6b42ba9c8b44d842da143d5f5 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Mon, 6 Aug 2018 14:03:40 -0400 Subject: [PATCH 01/10] Fix lazy collapse of message cell footers. --- .../ConversationView/ConversationViewController.m | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m index b7b70fcd1..642d84d4b 100644 --- a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m +++ b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m @@ -822,6 +822,7 @@ typedef enum : NSUInteger { { // Avoid layout corrupt issues and out-of-date message subtitles. self.lastReloadDate = [NSDate new]; + self.collapseCutoffDate = [NSDate new]; [self reloadViewItems]; [self.collectionView.collectionViewLayout invalidateLayout]; [self.collectionView reloadData]; @@ -1780,6 +1781,7 @@ typedef enum : NSUInteger { [self.messageMappings setRangeOptions:rangeOptions forGroup:self.thread.uniqueId]; [self updateShowLoadMoreHeader]; + self.collapseCutoffDate = [NSDate new]; [self reloadViewItems]; } @@ -4783,6 +4785,7 @@ typedef enum : NSUInteger { }]; [self updateMessageMappingRangeOptions]; } + self.collapseCutoffDate = [NSDate new]; [self reloadViewItems]; [self resetContentAndLayout]; @@ -4820,8 +4823,6 @@ typedef enum : NSUInteger { // cell view models. - (void)reloadViewItems { - self.collapseCutoffDate = [NSDate new]; - NSMutableArray *viewItems = [NSMutableArray new]; NSMutableDictionary *viewItemCache = [NSMutableDictionary new]; From 463addaa6c981e6348f406ed641a32a8a30585d9 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Mon, 6 Aug 2018 13:48:50 -0400 Subject: [PATCH 02/10] Ignore new calls in the incomplete calls job. --- Signal/src/util/MainAppContext.m | 2 ++ SignalServiceKit/src/Messages/OWSIncompleteCallsJob.m | 11 ++++++++++- SignalServiceKit/src/Util/AppContext.h | 2 ++ SignalShareExtension/utils/ShareAppExtensionContext.m | 2 ++ 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Signal/src/util/MainAppContext.m b/Signal/src/util/MainAppContext.m index dffe0aa76..a5bba11f1 100644 --- a/Signal/src/util/MainAppContext.m +++ b/Signal/src/util/MainAppContext.m @@ -33,6 +33,8 @@ NS_ASSUME_NONNULL_BEGIN self.reportedApplicationState = UIApplicationStateInactive; + _appLaunchTime = [NSDate new]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillEnterForeground:) name:UIApplicationWillEnterForegroundNotification diff --git a/SignalServiceKit/src/Messages/OWSIncompleteCallsJob.m b/SignalServiceKit/src/Messages/OWSIncompleteCallsJob.m index 5592bf8d1..718f7da5a 100644 --- a/SignalServiceKit/src/Messages/OWSIncompleteCallsJob.m +++ b/SignalServiceKit/src/Messages/OWSIncompleteCallsJob.m @@ -3,6 +3,7 @@ // #import "OWSIncompleteCallsJob.h" +#import "AppContent.h" #import "OWSPrimaryStorage.h" #import "TSCall.h" #import @@ -78,9 +79,17 @@ static NSString *const OWSIncompleteCallsJobCallTypeIndex = @"index_calls_on_cal { __block uint count = 0; + OWSAssert(CurrentAppContext().appLaunchTime); + uint64_t cutoffTimestamp = [NSDate ows_millisecondsSince1970ForDate:CurrentAppContext().appLaunchTime]; + [[self.primaryStorage newDatabaseConnection] readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) { [self enumerateIncompleteCallsWithBlock:^(TSCall *call) { + if (call.timestamp <= cutoffTimestamp) { + inc DDLogInfo(@"%@ ignoring new call: %@", self.logTag, call.uniqueId); + return; + } + if (call.callType == RPRecentCallTypeOutgoingIncomplete) { DDLogDebug(@"%@ marking call as missed: %@", self.logTag, call.uniqueId); [call updateCallType:RPRecentCallTypeOutgoingMissed transaction:transaction]; @@ -99,7 +108,7 @@ static NSString *const OWSIncompleteCallsJobCallTypeIndex = @"index_calls_on_cal transaction:transaction]; }]; - DDLogDebug(@"%@ Marked %u calls as missed", self.logTag, count); + DDLogInfo(@"%@ Marked %u calls as missed", self.logTag, count); } #pragma mark - YapDatabaseExtension diff --git a/SignalServiceKit/src/Util/AppContext.h b/SignalServiceKit/src/Util/AppContext.h index 8b2801491..bcdc1bab7 100755 --- a/SignalServiceKit/src/Util/AppContext.h +++ b/SignalServiceKit/src/Util/AppContext.h @@ -91,6 +91,8 @@ NSString *NSStringForUIApplicationState(UIApplicationState value); // Should be a NOOP if isMainApp is NO. - (void)setNetworkActivityIndicatorVisible:(BOOL)value; +@property (atomic, readonly) NSDate *appLaunchTime; + @end id CurrentAppContext(void); diff --git a/SignalShareExtension/utils/ShareAppExtensionContext.m b/SignalShareExtension/utils/ShareAppExtensionContext.m index 99d286204..3d48c911d 100644 --- a/SignalShareExtension/utils/ShareAppExtensionContext.m +++ b/SignalShareExtension/utils/ShareAppExtensionContext.m @@ -36,6 +36,8 @@ NS_ASSUME_NONNULL_BEGIN self.reportedApplicationState = UIApplicationStateActive; + _appLaunchTime = [NSDate new]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(extensionHostDidBecomeActive:) name:NSExtensionHostDidBecomeActiveNotification From 5039a6a9e54c51de2e303fc9fc1d5f3fae8dbdaa Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Mon, 6 Aug 2018 13:18:11 -0600 Subject: [PATCH 03/10] "Bump build to 2.28.1.2." --- Signal/Signal-Info.plist | 2 +- SignalShareExtension/Info.plist | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Signal/Signal-Info.plist b/Signal/Signal-Info.plist index 933bd08bf..77a926a1a 100644 --- a/Signal/Signal-Info.plist +++ b/Signal/Signal-Info.plist @@ -38,7 +38,7 @@ CFBundleVersion - 2.28.1.1 + 2.28.1.2 ITSAppUsesNonExemptEncryption LOGS_EMAIL diff --git a/SignalShareExtension/Info.plist b/SignalShareExtension/Info.plist index aa027eadc..0ec8ef839 100644 --- a/SignalShareExtension/Info.plist +++ b/SignalShareExtension/Info.plist @@ -19,7 +19,7 @@ CFBundleShortVersionString 2.28.1 CFBundleVersion - 2.28.1.1 + 2.28.1.2 ITSAppUsesNonExemptEncryption NSAppTransportSecurity From 2e5cae2a6bacd85218f11587903b9c917eac5747 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Mon, 6 Aug 2018 13:34:47 -0600 Subject: [PATCH 04/10] Fix typo --- SignalServiceKit/src/Messages/OWSIncompleteCallsJob.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SignalServiceKit/src/Messages/OWSIncompleteCallsJob.m b/SignalServiceKit/src/Messages/OWSIncompleteCallsJob.m index 718f7da5a..ed5c9f72a 100644 --- a/SignalServiceKit/src/Messages/OWSIncompleteCallsJob.m +++ b/SignalServiceKit/src/Messages/OWSIncompleteCallsJob.m @@ -3,7 +3,7 @@ // #import "OWSIncompleteCallsJob.h" -#import "AppContent.h" +#import "AppContext.h" #import "OWSPrimaryStorage.h" #import "TSCall.h" #import From 9e45104eee6c642b84bad68daf3479ecad6a1bc0 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Mon, 6 Aug 2018 13:34:55 -0600 Subject: [PATCH 05/10] "Bump build to 2.28.1.3." --- Signal/Signal-Info.plist | 2 +- SignalShareExtension/Info.plist | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Signal/Signal-Info.plist b/Signal/Signal-Info.plist index 77a926a1a..e7ad5287d 100644 --- a/Signal/Signal-Info.plist +++ b/Signal/Signal-Info.plist @@ -38,7 +38,7 @@ CFBundleVersion - 2.28.1.2 + 2.28.1.3 ITSAppUsesNonExemptEncryption LOGS_EMAIL diff --git a/SignalShareExtension/Info.plist b/SignalShareExtension/Info.plist index 0ec8ef839..39d27a540 100644 --- a/SignalShareExtension/Info.plist +++ b/SignalShareExtension/Info.plist @@ -19,7 +19,7 @@ CFBundleShortVersionString 2.28.1 CFBundleVersion - 2.28.1.2 + 2.28.1.3 ITSAppUsesNonExemptEncryption NSAppTransportSecurity From 504f4afae5f94d1b3ad9b314c0666161522ffe8a Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Mon, 6 Aug 2018 13:36:30 -0600 Subject: [PATCH 06/10] fix typo --- SignalServiceKit/src/Messages/OWSIncompleteCallsJob.m | 1 + 1 file changed, 1 insertion(+) diff --git a/SignalServiceKit/src/Messages/OWSIncompleteCallsJob.m b/SignalServiceKit/src/Messages/OWSIncompleteCallsJob.m index ed5c9f72a..1547e0cb2 100644 --- a/SignalServiceKit/src/Messages/OWSIncompleteCallsJob.m +++ b/SignalServiceKit/src/Messages/OWSIncompleteCallsJob.m @@ -4,6 +4,7 @@ #import "OWSIncompleteCallsJob.h" #import "AppContext.h" +#import "NSDate+OWS.h" #import "OWSPrimaryStorage.h" #import "TSCall.h" #import From 87f97b8b972e359cf7ef125745de2be315a649fc Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Mon, 6 Aug 2018 13:36:42 -0600 Subject: [PATCH 07/10] fix typo --- SignalServiceKit/src/Messages/OWSIncompleteCallsJob.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SignalServiceKit/src/Messages/OWSIncompleteCallsJob.m b/SignalServiceKit/src/Messages/OWSIncompleteCallsJob.m index 1547e0cb2..3d9ce0d92 100644 --- a/SignalServiceKit/src/Messages/OWSIncompleteCallsJob.m +++ b/SignalServiceKit/src/Messages/OWSIncompleteCallsJob.m @@ -87,7 +87,7 @@ static NSString *const OWSIncompleteCallsJobCallTypeIndex = @"index_calls_on_cal [self enumerateIncompleteCallsWithBlock:^(TSCall *call) { if (call.timestamp <= cutoffTimestamp) { - inc DDLogInfo(@"%@ ignoring new call: %@", self.logTag, call.uniqueId); + DDLogInfo(@"%@ ignoring new call: %@", self.logTag, call.uniqueId); return; } From 15dfa6e97947a02da27f8236812e8f77c6d3277c Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Mon, 6 Aug 2018 13:37:03 -0600 Subject: [PATCH 08/10] "Bump build to 2.28.1.4." --- Signal/Signal-Info.plist | 2 +- SignalShareExtension/Info.plist | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Signal/Signal-Info.plist b/Signal/Signal-Info.plist index e7ad5287d..e9171b64e 100644 --- a/Signal/Signal-Info.plist +++ b/Signal/Signal-Info.plist @@ -38,7 +38,7 @@ CFBundleVersion - 2.28.1.3 + 2.28.1.4 ITSAppUsesNonExemptEncryption LOGS_EMAIL diff --git a/SignalShareExtension/Info.plist b/SignalShareExtension/Info.plist index 39d27a540..90df84b0e 100644 --- a/SignalShareExtension/Info.plist +++ b/SignalShareExtension/Info.plist @@ -19,7 +19,7 @@ CFBundleShortVersionString 2.28.1 CFBundleVersion - 2.28.1.3 + 2.28.1.4 ITSAppUsesNonExemptEncryption NSAppTransportSecurity From 01b6634ac1070bb8ec2c7d40c197c3becf3520a3 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Mon, 6 Aug 2018 13:46:56 -0600 Subject: [PATCH 09/10] synthesize appLaunchTime --- Signal/src/util/MainAppContext.m | 1 + SignalShareExtension/utils/ShareAppExtensionContext.m | 1 + 2 files changed, 2 insertions(+) diff --git a/Signal/src/util/MainAppContext.m b/Signal/src/util/MainAppContext.m index a5bba11f1..3fce5bade 100644 --- a/Signal/src/util/MainAppContext.m +++ b/Signal/src/util/MainAppContext.m @@ -22,6 +22,7 @@ NS_ASSUME_NONNULL_BEGIN @implementation MainAppContext @synthesize mainWindow = _mainWindow; +@synthesize appLaunchTime = _appLaunchTime; - (instancetype)init { diff --git a/SignalShareExtension/utils/ShareAppExtensionContext.m b/SignalShareExtension/utils/ShareAppExtensionContext.m index 3d48c911d..2ac73216c 100644 --- a/SignalShareExtension/utils/ShareAppExtensionContext.m +++ b/SignalShareExtension/utils/ShareAppExtensionContext.m @@ -21,6 +21,7 @@ NS_ASSUME_NONNULL_BEGIN @implementation ShareAppExtensionContext @synthesize mainWindow = _mainWindow; +@synthesize appLaunchTime = _appLaunchTime; - (instancetype)initWithRootViewController:(UIViewController *)rootViewController { From 882c699db36b585b27a6d5a62de88ea8c627e367 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Mon, 6 Aug 2018 13:48:25 -0600 Subject: [PATCH 10/10] "Bump build to 2.28.1.5." --- Signal/Signal-Info.plist | 2 +- SignalShareExtension/Info.plist | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Signal/Signal-Info.plist b/Signal/Signal-Info.plist index e9171b64e..189d8069b 100644 --- a/Signal/Signal-Info.plist +++ b/Signal/Signal-Info.plist @@ -38,7 +38,7 @@ CFBundleVersion - 2.28.1.4 + 2.28.1.5 ITSAppUsesNonExemptEncryption LOGS_EMAIL diff --git a/SignalShareExtension/Info.plist b/SignalShareExtension/Info.plist index 90df84b0e..cc5fdfd3c 100644 --- a/SignalShareExtension/Info.plist +++ b/SignalShareExtension/Info.plist @@ -19,7 +19,7 @@ CFBundleShortVersionString 2.28.1 CFBundleVersion - 2.28.1.4 + 2.28.1.5 ITSAppUsesNonExemptEncryption NSAppTransportSecurity