diff --git a/Signal.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Signal.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/Signal.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/Signal/src/ViewControllers/AppSettings/OWSLinkedDevicesTableViewController.m b/Signal/src/ViewControllers/AppSettings/OWSLinkedDevicesTableViewController.m index c002b6fdb..7bd5f9034 100644 --- a/Signal/src/ViewControllers/AppSettings/OWSLinkedDevicesTableViewController.m +++ b/Signal/src/ViewControllers/AppSettings/OWSLinkedDevicesTableViewController.m @@ -46,13 +46,7 @@ int const OWSLinkedDevicesTableViewControllerSectionAddDevice = 1; self.tableView.rowHeight = UITableViewAutomaticDimension; self.tableView.estimatedRowHeight = 70; - // Fix a bug that only affects iOS 11.0.x and 11.1.x. - if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(11, 0) && !SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(11, 2)) { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wpartial-availability" - self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; -#pragma clang diagnostic pop - } + [self.tableView applyScrollViewInsetsFix]; self.dbConnection = [[OWSPrimaryStorage sharedManager] newDatabaseConnection]; [self.dbConnection beginLongLivedReadTransaction]; diff --git a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m index cea1d46c2..70f3c1164 100644 --- a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m +++ b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m @@ -521,13 +521,7 @@ typedef enum : NSUInteger { [self.collectionView autoPinWidthToSuperview]; [self.collectionView autoPinToTopLayoutGuideOfViewController:self withInset:0]; - // Fix a bug that only affects iOS 11.0.x and 11.1.x. - if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(11, 0) && !SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(11, 2)) { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wpartial-availability" - self.collectionView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; -#pragma clang diagnostic pop - } + [self.collectionView applyScrollViewInsetsFix]; _inputToolbar = [ConversationInputToolbar new]; self.inputToolbar.inputToolbarDelegate = self; diff --git a/Signal/src/ViewControllers/MediaDetailViewController.m b/Signal/src/ViewControllers/MediaDetailViewController.m index d5dca42f3..86897515e 100644 --- a/Signal/src/ViewControllers/MediaDetailViewController.m +++ b/Signal/src/ViewControllers/MediaDetailViewController.m @@ -216,7 +216,7 @@ NS_ASSUME_NONNULL_BEGIN scrollView.decelerationRate = UIScrollViewDecelerationRateFast; if (@available(iOS 11.0, *)) { - scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + [scrollView contentInsetAdjustmentBehavior]; } else { self.automaticallyAdjustsScrollViewInsets = NO; } diff --git a/Signal/src/ViewControllers/MessageDetailViewController.swift b/Signal/src/ViewControllers/MessageDetailViewController.swift index 37e94ad6e..4e8f910ea 100644 --- a/Signal/src/ViewControllers/MessageDetailViewController.swift +++ b/Signal/src/ViewControllers/MessageDetailViewController.swift @@ -146,7 +146,9 @@ class MessageDetailViewController: OWSViewController, MediaGalleryDataSourceDele UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil) ] } else { - scrollView.autoPin(toBottomLayoutGuideOf: self, withInset: 0) + scrollView.applyInsetsFix() + + scrollView.autoPinEdge(toSuperviewEdge: .bottom) } updateContent() diff --git a/SignalMessaging/ViewControllers/OWSTableViewController.m b/SignalMessaging/ViewControllers/OWSTableViewController.m index 18af2ca2f..cce54fc89 100644 --- a/SignalMessaging/ViewControllers/OWSTableViewController.m +++ b/SignalMessaging/ViewControllers/OWSTableViewController.m @@ -452,13 +452,9 @@ NSString *const kOWSTableCellIdentifier = @"kOWSTableCellIdentifier"; self.tableView.delegate = self; self.tableView.dataSource = self; self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero]; - // Fix a bug that only affects iOS 11.0.x and 11.1.x. - if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(11, 0) && !SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(11, 2)) { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wpartial-availability" - self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; -#pragma clang diagnostic pop - } + + [self.tableView applyScrollViewInsetsFix]; + [self.view addSubview:self.tableView]; [self.tableView autoPinWidthToSuperview]; [self.tableView autoPinToTopLayoutGuideOfViewController:self withInset:0]; diff --git a/SignalMessaging/categories/UIView+OWS.h b/SignalMessaging/categories/UIView+OWS.h index d10c0b7fb..1c28b1286 100644 --- a/SignalMessaging/categories/UIView+OWS.h +++ b/SignalMessaging/categories/UIView+OWS.h @@ -125,6 +125,14 @@ CGFloat ScaleFromIPhone5(CGFloat iPhone5Value); @end +#pragma mark - + +@interface UIScrollView (OWS) + +- (void)applyScrollViewInsetsFix; + +@end + #pragma mark - Macros CG_INLINE CGSize CGSizeCeil(CGSize size) diff --git a/SignalMessaging/categories/UIView+OWS.m b/SignalMessaging/categories/UIView+OWS.m index 4ca3d2741..867066c3c 100644 --- a/SignalMessaging/categories/UIView+OWS.m +++ b/SignalMessaging/categories/UIView+OWS.m @@ -487,4 +487,22 @@ CGFloat ScaleFromIPhone5(CGFloat iPhone5Value) @end +#pragma mark - + +@implementation UIScrollView (OWS) + +- (void)applyScrollViewInsetsFix +{ + // Fix a bug that only affects iOS 11.0.x and 11.1.x. + // The symptom is a fix weird animation that happens when using the interactive pop gesture. + if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(11, 0) && !SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(11, 2)) { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpartial-availability" + self.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; +#pragma clang diagnostic pop + } +} + +@end + NS_ASSUME_NONNULL_END