From 1f8042685d21ac750d2611c7a6a7e0d8b9d41fa1 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Thu, 14 Dec 2017 13:45:54 -0500 Subject: [PATCH] Show loading cell when contacts are still loading. // FREEBIE --- .../NewContactThreadViewController.m | 36 ++++++++++++++----- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/Signal/src/ViewControllers/NewContactThreadViewController.m b/Signal/src/ViewControllers/NewContactThreadViewController.m index 9b65ec0a6..8f0f759c0 100644 --- a/Signal/src/ViewControllers/NewContactThreadViewController.m +++ b/Signal/src/ViewControllers/NewContactThreadViewController.m @@ -396,14 +396,34 @@ NS_ASSUME_NONNULL_BEGIN // No Contacts OWSTableSection *contactsSection = [OWSTableSection new]; - if (self.contactsViewHelper.contactsManager.isSystemContactsAuthorized - && self.contactsViewHelper.hasUpdatedContactsAtLeastOnce) { - - [contactsSection - addItem:[OWSTableItem - softCenterLabelItemWithText:NSLocalizedString(@"SETTINGS_BLOCK_LIST_NO_CONTACTS", - @"A label that indicates the user has no Signal contacts.") - customRowHeight:self.actionCellHeight]]; + if (self.contactsViewHelper.contactsManager.isSystemContactsAuthorized) { + if (self.contactsViewHelper.hasUpdatedContactsAtLeastOnce) { + + [contactsSection + addItem:[OWSTableItem softCenterLabelItemWithText: + NSLocalizedString(@"SETTINGS_BLOCK_LIST_NO_CONTACTS", + @"A label that indicates the user has no Signal contacts.") + customRowHeight:self.actionCellHeight]]; + } else { + UITableViewCell *loadingCell = [UITableViewCell new]; + OWSAssert(loadingCell.contentView); + + UIActivityIndicatorView *activityIndicatorView = + [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; + [loadingCell.contentView addSubview:activityIndicatorView]; + [activityIndicatorView startAnimating]; + + [activityIndicatorView autoCenterInSuperview]; + [activityIndicatorView setCompressionResistanceHigh]; + [activityIndicatorView setContentHuggingHigh]; + + // hide separator for loading cell. The loading cell doesn't really feel like a cell + loadingCell.backgroundView = [UIView new]; + + OWSTableItem *loadingItem = + [OWSTableItem itemWithCustomCell:loadingCell customRowHeight:40 actionBlock:nil]; + [contactsSection addItem:loadingItem]; + } } return @[ contactsSection ];