From 01e1d10c30ff9507bd48eccc9b1597c9238caba5 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Fri, 17 Nov 2017 10:20:00 -0500 Subject: [PATCH] Only show contact nag if we've denied contact access // FREEBIE --- Signal/src/ViewControllers/HomeViewController.m | 2 +- Signal/src/contact/OWSContactsManager.h | 1 + Signal/src/contact/OWSContactsManager.m | 5 +++++ Signal/src/contact/SystemContactsFetcher.swift | 2 +- 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Signal/src/ViewControllers/HomeViewController.m b/Signal/src/ViewControllers/HomeViewController.m index 182caeb6f..15cb0c07d 100644 --- a/Signal/src/ViewControllers/HomeViewController.m +++ b/Signal/src/ViewControllers/HomeViewController.m @@ -550,7 +550,7 @@ typedef NS_ENUM(NSInteger, CellState) { kArchiveState, kInboxState }; - (BOOL)shouldShowMissingContactsPermissionView { - if ([TSContactThread numberOfKeysInCollection] == 0) { + if (!self.contactsManager.systemContactsHaveBeenRequestedAtLeastOnce) { return NO; } diff --git a/Signal/src/contact/OWSContactsManager.h b/Signal/src/contact/OWSContactsManager.h index c10f8c2de..fadb35f2b 100644 --- a/Signal/src/contact/OWSContactsManager.h +++ b/Signal/src/contact/OWSContactsManager.h @@ -61,6 +61,7 @@ extern NSString *const OWSContactsManagerSignalAccountsDidChangeNotification; // Must call `requestSystemContactsOnce` before accessing this method @property (nonatomic, readonly) BOOL isSystemContactsAuthorized; +@property (nonatomic, readonly) BOOL systemContactsHaveBeenRequestedAtLeastOnce; @property (nonatomic, readonly) BOOL supportsContactEditing; diff --git a/Signal/src/contact/OWSContactsManager.m b/Signal/src/contact/OWSContactsManager.m index 2e33f8585..cc49c0a9d 100644 --- a/Signal/src/contact/OWSContactsManager.m +++ b/Signal/src/contact/OWSContactsManager.m @@ -108,6 +108,11 @@ NSString *const kTSStorageManager_lastKnownContactRecipientIds = @"lastKnownCont return self.systemContactsFetcher.isAuthorized; } +- (BOOL)systemContactsHaveBeenRequestedAtLeastOnce +{ + return self.systemContactsFetcher.systemContactsHaveBeenRequestedAtLeastOnce; +} + - (BOOL)supportsContactEditing { return self.systemContactsFetcher.supportsContactEditing; diff --git a/Signal/src/contact/SystemContactsFetcher.swift b/Signal/src/contact/SystemContactsFetcher.swift index 03f6cbdfb..5ee7de358 100644 --- a/Signal/src/contact/SystemContactsFetcher.swift +++ b/Signal/src/contact/SystemContactsFetcher.swift @@ -342,7 +342,7 @@ class SystemContactsFetcher: NSObject { return self.authorizationStatus == .authorized } - private var systemContactsHaveBeenRequestedAtLeastOnce = false + private(set) var systemContactsHaveBeenRequestedAtLeastOnce = false private var hasSetupObservation = false override init() {