We've long allowed users to configure what shows up in message notifications: - name: content (by default) - just name (no content) - generic notification (no name nor content) Now we're dual purposing that setting to apply to calls. If someone doesn't want to show names in the message notifications, presumably also don't want that name showing up in the call log. Also, since the earlier CallKit/iCloud issues had been addressed before iOS11, we upgrade all iOS11 users to the more intuitive CallKit interface. Also: introduce "use system call logs" toggle when available. It will be enabled by default, but we disable it for legacy users who'd explicitly opted *out* of CallKit. // FREEBIE
96 lines
2.3 KiB
Objective-C
96 lines
2.3 KiB
Objective-C
//
|
|
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
|
|
//
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
/**
|
|
* The users privacy preference for what kind of content to show in lock screen notifications.
|
|
*/
|
|
typedef NS_ENUM(NSUInteger, NotificationType) {
|
|
NotificationNoNameNoPreview,
|
|
NotificationNameNoPreview,
|
|
NotificationNamePreview,
|
|
};
|
|
|
|
// Used when migrating logging to NSUserDefaults.
|
|
extern NSString *const OWSPreferencesSignalDatabaseCollection;
|
|
extern NSString *const OWSPreferencesKeyEnableDebugLog;
|
|
|
|
@interface OWSPreferences : NSObject
|
|
|
|
#pragma mark - Helpers
|
|
|
|
- (nullable id)tryGetValueForKey:(NSString *)key;
|
|
- (void)setValueForKey:(NSString *)key toValue:(nullable id)value;
|
|
- (void)clear;
|
|
|
|
#pragma mark - Specific Preferences
|
|
|
|
+ (BOOL)isReadyForAppExtensions;
|
|
+ (void)setIsReadyForAppExtensions;
|
|
|
|
- (BOOL)getHasSentAMessage;
|
|
- (void)setHasSentAMessage:(BOOL)enabled;
|
|
|
|
- (BOOL)getHasArchivedAMessage;
|
|
- (void)setHasArchivedAMessage:(BOOL)enabled;
|
|
|
|
+ (BOOL)isLoggingEnabled;
|
|
+ (void)setIsLoggingEnabled:(BOOL)flag;
|
|
|
|
- (BOOL)screenSecurityIsEnabled;
|
|
- (void)setScreenSecurity:(BOOL)flag;
|
|
|
|
- (NotificationType)notificationPreviewType;
|
|
- (void)setNotificationPreviewType:(NotificationType)type;
|
|
- (NSString *)nameForNotificationPreviewType:(NotificationType)notificationType;
|
|
|
|
- (BOOL)soundInForeground;
|
|
- (void)setSoundInForeground:(BOOL)enabled;
|
|
|
|
- (BOOL)hasDeclinedNoContactsView;
|
|
- (void)setHasDeclinedNoContactsView:(BOOL)value;
|
|
|
|
- (void)setIOSUpgradeNagDate:(NSDate *)value;
|
|
- (nullable NSDate *)iOSUpgradeNagDate;
|
|
|
|
#pragma mark - Calling
|
|
|
|
#pragma mark Callkit
|
|
|
|
- (BOOL)isSystemCallLogEnabled;
|
|
- (void)setIsSystemCallLogEnabled:(BOOL)flag;
|
|
|
|
#pragma mark - Legacy CallKit settings
|
|
|
|
- (BOOL)isCallKitEnabled;
|
|
- (void)setIsCallKitEnabled:(BOOL)flag;
|
|
|
|
// Returns YES IFF isCallKitEnabled has been set by user.
|
|
- (BOOL)isCallKitEnabledSet;
|
|
|
|
- (BOOL)isCallKitPrivacyEnabled;
|
|
- (void)setIsCallKitPrivacyEnabled:(BOOL)flag;
|
|
// Returns YES IFF isCallKitPrivacyEnabled has been set by user.
|
|
- (BOOL)isCallKitPrivacySet;
|
|
|
|
#pragma mark direct call connectivity (non-TURN)
|
|
|
|
- (BOOL)doCallsHideIPAddress;
|
|
- (void)setDoCallsHideIPAddress:(BOOL)flag;
|
|
|
|
#pragma mark - Push Tokens
|
|
|
|
- (void)setPushToken:(NSString *)value;
|
|
- (nullable NSString *)getPushToken;
|
|
|
|
- (void)setVoipToken:(NSString *)value;
|
|
- (nullable NSString *)getVoipToken;
|
|
|
|
- (void)unsetRecordedAPNSTokens;
|
|
|
|
@end
|
|
|
|
NS_ASSUME_NONNULL_END
|