// _____ _
// |_ _| |_ _ _ ___ ___ _ __ __ _
// | | | ' \| '_/ -_) -_) ' \/ _` |_
// |_| |_||_|_| \___\___|_|_|_\__,_(_)
//
// Threema iOS Client
// Copyright (c) 2012-2020 Threema GmbH
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License, version 3,
// as published by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see .
#import
@interface UserSettings : NSObject
enum SendProfilePicture {
SendProfilePictureNone = 0,
SendProfilePictureAll,
SendProfilePictureContacts
};
enum AcceptPrivacyPolicyVariant {
AcceptPrivacyPolicyVariantExplicitly = 0,
AcceptPrivacyPolicyVariantImplicitly,
AcceptPrivacyPolicyVariantUpdate
};
enum ThreemaVideoCallQualitySetting {
ThreemaVideoCallQualitySettingAuto = 0,
ThreemaVideoCallQualitySettingLowDataConsumption,
ThreemaVideoCallQualitySettingMaximumQuality
};
@property (nonatomic, readwrite) BOOL sendReadReceipts;
@property (nonatomic, readwrite) BOOL syncContacts;
@property (nonatomic, strong) NSArray *syncExclusionList;
@property (nonatomic, strong) NSOrderedSet *blacklist;
@property (nonatomic, strong) NSOrderedSet *workIdentities;
@property (nonatomic, strong) NSOrderedSet *pushSettingsList;
@property (nonatomic, readwrite) BOOL sendTypingIndicator;
@property (nonatomic, readwrite) BOOL blockUnknown;
@property (nonatomic, readwrite) BOOL enablePoi;
@property (nonatomic, readwrite) BOOL hideStaleContacts;
@property (nonatomic, readwrite) BOOL inAppSounds;
@property (nonatomic, readwrite) BOOL inAppVibrate;
@property (nonatomic, readwrite) BOOL inAppPreview;
@property (nonatomic, strong) NSString *pushSound;
@property (nonatomic, strong) NSString *pushGroupSound;
@property (nonatomic, readwrite) BOOL pushDecrypt;
@property (nonatomic, readwrite) BOOL pushShowNickname;
@property (nonatomic, strong) NSString *imageSize;
@property (nonatomic, strong) NSString *videoQuality;
@property (nonatomic, readwrite) BOOL autoSaveMedia;
@property (nonatomic, readwrite) float chatFontSize;
@property (nonatomic, readwrite) BOOL useDynamicFontSize;
@property (nonatomic, readwrite) BOOL disableBigEmojis;
@property (nonatomic, readwrite) BOOL showReceivedTimestamps;
@property (nonatomic, readwrite) BOOL returnToSend;
@property (nonatomic, readwrite) BOOL darkTheme;
@property (nonatomic, readwrite) BOOL useSystemTheme;
@property (nonatomic, readwrite) BOOL showProfilePictures;
@property (nonatomic, strong) UIImage *wallpaper;
@property (nonatomic, readwrite) BOOL sortOrderFirstName;
@property (nonatomic, readwrite) BOOL displayOrderFirstName;
@property (nonatomic, readwrite) BOOL validationLogging;
@property (nonatomic, readwrite) BOOL enableIPv6;
@property (nonatomic, readwrite) BOOL companyDirectory;
@property (nonatomic, readwrite) BOOL askedForPushDecryption;
@property (nonatomic, readwrite) enum SendProfilePicture sendProfilePicture;
@property (nonatomic, strong) NSArray *profilePictureContactList;
@property (nonatomic, strong) NSArray *profilePictureRequestList;
@property (nonatomic, readwrite) BOOL showGalleryPreview;
@property (nonatomic, readwrite) BOOL disableProximityMonitoring;
@property (nonatomic, readwrite) BOOL enableThreemaCall;
@property (nonatomic, readwrite) BOOL alwaysRelayCalls;
@property (nonatomic, readwrite) BOOL enableCallKit;
@property (nonatomic, readwrite) float previewLimit;
@property (nonatomic, strong) NSDate *acceptedPrivacyPolicyDate;
@property (nonatomic, readwrite) enum AcceptPrivacyPolicyVariant acceptedPrivacyPolicyVariant;
@property (nonatomic, strong) NSString *voIPSound;
@property (nonatomic, readonly) NSInteger largeTitleDisplayMode;
@property (nonatomic, readwrite) BOOL pushGroupGenerated;
@property (nonatomic, readwrite) BOOL threemaWeb;
@property (nonatomic, readwrite) BOOL openPlusIconInChat;
@property (nonatomic, strong) NSData *safeConfig;
@property (nonatomic, readwrite) BOOL safeIntroShown;
@property (nonatomic, readwrite) BOOL workInfoShown;
@property (nonatomic, readwrite) BOOL videoCallInChatInfoShown;
@property (nonatomic, readwrite) BOOL videoCallInfoShown;
@property (nonatomic, readwrite) BOOL videoCallSpeakerInfoShown;
@property (nonatomic, strong) NSString *sentryAppDevice;
@property (nonatomic, readwrite) BOOL enableMasterDnd;
@property (nonatomic, strong) NSOrderedSet *masterDndWorkingDays;
@property (nonatomic, strong) NSString *masterDndStartTime;
@property (nonatomic, strong) NSString *masterDndEndTime;
@property (nonatomic, readwrite) BOOL enableVideoCall;
@property (nonatomic, readwrite) enum ThreemaVideoCallQualitySetting threemaVideoCallQualitySetting;
@property (nonatomic, readwrite) BOOL quoteV2Active;
+ (UserSettings*)sharedUserSettings;
+ (void)resetSharedInstance;
- (void)setSortOrderFirstName:(BOOL)sortOrderFirstName displayOrderFirstName:(BOOL)displayOrderFirstName;
- (void)checkWallpaper;
@end