diff --git a/Signal/src/ViewControllers/HomeView/HomeViewController.m b/Signal/src/ViewControllers/HomeView/HomeViewController.m index 56bcf209b..1029f845d 100644 --- a/Signal/src/ViewControllers/HomeView/HomeViewController.m +++ b/Signal/src/ViewControllers/HomeView/HomeViewController.m @@ -304,7 +304,7 @@ NSString *const kArchivedConversationsReuseIdentifier = @"kArchivedConversations - (void)updateReminderViews { self.archiveReminderView.hidden = self.homeViewMode != HomeViewMode_Archive; - self.missingContactsPermissionView.hidden = !self.shouldShowMissingContactsPermissionView; + self.missingContactsPermissionView.hidden = !self.contactsManager.isSystemContactsDenied; self.deregisteredView.hidden = !TSAccountManager.sharedInstance.isDeregistered; self.outageView.hidden = !OutageDetection.sharedManager.hasOutage; } @@ -699,15 +699,6 @@ NSString *const kArchivedConversationsReuseIdentifier = @"kArchivedConversations self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero]; } -- (BOOL)shouldShowMissingContactsPermissionView -{ - if (!self.contactsManager.systemContactsHaveBeenRequestedAtLeastOnce) { - return NO; - } - - return !self.contactsManager.isSystemContactsAuthorized; -} - #pragma mark - Table View Data Source // Returns YES IFF this value changes. diff --git a/SignalMessaging/contacts/OWSContactsManager.h b/SignalMessaging/contacts/OWSContactsManager.h index 3a34898ba..6df58f7c0 100644 --- a/SignalMessaging/contacts/OWSContactsManager.h +++ b/SignalMessaging/contacts/OWSContactsManager.h @@ -41,6 +41,7 @@ extern NSString *const OWSContactsManagerSignalAccountsDidChangeNotification; // Must call `requestSystemContactsOnce` before accessing this method @property (nonatomic, readonly) BOOL isSystemContactsAuthorized; +@property (nonatomic, readonly) BOOL isSystemContactsDenied; @property (nonatomic, readonly) BOOL systemContactsHaveBeenRequestedAtLeastOnce; @property (nonatomic, readonly) BOOL supportsContactEditing; diff --git a/SignalMessaging/contacts/OWSContactsManager.m b/SignalMessaging/contacts/OWSContactsManager.m index 47a78cf0e..ae622e4d5 100644 --- a/SignalMessaging/contacts/OWSContactsManager.m +++ b/SignalMessaging/contacts/OWSContactsManager.m @@ -129,6 +129,11 @@ NSString *const OWSContactsManagerSignalAccountsDidChangeNotification return self.systemContactsFetcher.isAuthorized; } +- (BOOL)isSystemContactsDenied +{ + return self.systemContactsFetcher.isDenied; +} + - (BOOL)systemContactsHaveBeenRequestedAtLeastOnce { return self.systemContactsFetcher.systemContactsHaveBeenRequestedAtLeastOnce; diff --git a/SignalMessaging/contacts/SystemContactsFetcher.swift b/SignalMessaging/contacts/SystemContactsFetcher.swift index 2876ae0e2..652e53736 100644 --- a/SignalMessaging/contacts/SystemContactsFetcher.swift +++ b/SignalMessaging/contacts/SystemContactsFetcher.swift @@ -170,6 +170,11 @@ public class SystemContactsFetcher: NSObject { return self.authorizationStatus == .authorized } + @objc + public var isDenied: Bool { + return self.authorizationStatus == .denied + } + @objc public private(set) var systemContactsHaveBeenRequestedAtLeastOnce = false private var hasSetupObservation = false