Make the application settings more configurable

- Update after review
This commit is contained in:
Gil Eluard
2021-04-01 14:16:06 +02:00
parent 885dac920d
commit 37984e76fb
5 changed files with 192 additions and 55 deletions
+113 -14
View File
@@ -37,9 +37,16 @@ final class RiotSettings: NSObject {
static let hideReviewSessionsAlert = "hideReviewSessionsAlert"
static let matrixApps = "matrixApps"
static let showNSFWPublicRooms = "showNSFWPublicRooms"
static let accountManagedExternally = "accountManagedExternally"
static let inviteFriendsNotAllowed = "inviteFriendsNotAllowed"
static let callsSettingsManagedExternally = "callsSettingsManagedExternally"
static let settingsScreenShowChangePassword = "settingsScreenShowChangePassword"
static let settingsScreenShowInviteFriends = "settingsScreenShowInviteFriends"
static let settingsScreenShowEnableStunServerFallback = "settingsScreenShowEnableStunServerFallback"
static let settingsSecurityScreenShowSessions = "settingsSecurityScreenShowSessions"
static let settingsSecurityScreenShowSetupBackup = "settingsSecurityScreenShowSetupBackup"
static let settingsSecurityScreenShowRestoreBackup = "settingsSecurityScreenShowRestoreBackup"
static let settingsSecurityScreenShowDeleteBackup = "settingsSecurityScreenShowDeleteBackup"
static let settingsSecurityScreenShowCryptographyInfo = "settingsSecurityScreenShowCryptographyInfo"
static let settingsSecurityScreenShowCryptographyExport = "settingsSecurityScreenShowCryptographyExport"
static let settingsSecurityScreenShowAdvancedUnverifiedDevices = "settingsSecurityScreenShowAdvancedBlacklistUnverifiedDevices"
}
static let shared = RiotSettings()
@@ -54,6 +61,19 @@ final class RiotSettings: NSObject {
// MARK: - Public
func reset() {
defaults.removeObject(forKey: UserDefaultsKeys.settingsScreenShowChangePassword)
defaults.removeObject(forKey: UserDefaultsKeys.settingsScreenShowInviteFriends)
defaults.removeObject(forKey: UserDefaultsKeys.settingsScreenShowEnableStunServerFallback)
defaults.removeObject(forKey: UserDefaultsKeys.settingsSecurityScreenShowSessions)
defaults.removeObject(forKey: UserDefaultsKeys.settingsSecurityScreenShowSetupBackup)
defaults.removeObject(forKey: UserDefaultsKeys.settingsSecurityScreenShowRestoreBackup)
defaults.removeObject(forKey: UserDefaultsKeys.settingsSecurityScreenShowDeleteBackup)
defaults.removeObject(forKey: UserDefaultsKeys.settingsSecurityScreenShowCryptographyInfo)
defaults.removeObject(forKey: UserDefaultsKeys.settingsSecurityScreenShowCryptographyExport)
defaults.removeObject(forKey: UserDefaultsKeys.settingsSecurityScreenShowAdvancedUnverifiedDevices)
}
// MARK: Servers
var homeserverUrlString: String {
@@ -216,27 +236,106 @@ final class RiotSettings: NSObject {
}
}
var inviteFriendsNotAllowed: Bool {
// MARK: General Settings
var settingsScreenShowChangePassword: Bool {
get {
return defaults.bool(forKey: UserDefaultsKeys.inviteFriendsNotAllowed)
guard defaults.object(forKey: UserDefaultsKeys.settingsScreenShowChangePassword) != nil else {
return BuildSettings.settingsScreenShowChangePassword
}
return defaults.bool(forKey: UserDefaultsKeys.settingsScreenShowChangePassword)
} set {
defaults.set(newValue, forKey: UserDefaultsKeys.inviteFriendsNotAllowed)
defaults.set(newValue, forKey: UserDefaultsKeys.settingsScreenShowChangePassword)
}
}
var accountManagedExternally: Bool {
var settingsScreenShowInviteFriends: Bool {
get {
return defaults.bool(forKey: UserDefaultsKeys.accountManagedExternally)
guard defaults.object(forKey: UserDefaultsKeys.settingsScreenShowInviteFriends) != nil else {
return BuildSettings.settingsScreenShowInviteFriends
}
return defaults.bool(forKey: UserDefaultsKeys.settingsScreenShowInviteFriends)
} set {
defaults.set(newValue, forKey: UserDefaultsKeys.accountManagedExternally)
defaults.set(newValue, forKey: UserDefaultsKeys.settingsScreenShowInviteFriends)
}
}
var callsSettingsManagedExternally: Bool {
var settingsScreenShowEnableStunServerFallback: Bool {
get {
return defaults.bool(forKey: UserDefaultsKeys.callsSettingsManagedExternally)
guard defaults.object(forKey: UserDefaultsKeys.settingsScreenShowInviteFriends) != nil else {
return BuildSettings.settingsScreenShowEnableStunServerFallback
}
return defaults.bool(forKey: UserDefaultsKeys.settingsScreenShowEnableStunServerFallback)
} set {
defaults.set(newValue, forKey: UserDefaultsKeys.callsSettingsManagedExternally)
defaults.set(newValue, forKey: UserDefaultsKeys.settingsScreenShowEnableStunServerFallback)
}
}
var settingsSecurityScreenShowSessions: Bool {
get {
guard defaults.object(forKey: UserDefaultsKeys.settingsSecurityScreenShowSessions) != nil else {
return BuildSettings.settingsSecurityScreenShowSessions
}
return defaults.bool(forKey: UserDefaultsKeys.settingsSecurityScreenShowSessions)
} set {
defaults.set(newValue, forKey: UserDefaultsKeys.settingsSecurityScreenShowSessions)
}
}
var settingsSecurityScreenShowSetupBackup: Bool {
get {
guard defaults.object(forKey: UserDefaultsKeys.settingsSecurityScreenShowSetupBackup) != nil else {
return BuildSettings.settingsSecurityScreenShowSetupBackup
}
return defaults.bool(forKey: UserDefaultsKeys.settingsSecurityScreenShowSetupBackup)
} set {
defaults.set(newValue, forKey: UserDefaultsKeys.settingsSecurityScreenShowSetupBackup)
}
}
var settingsSecurityScreenShowRestoreBackup: Bool {
get {
guard defaults.object(forKey: UserDefaultsKeys.settingsSecurityScreenShowRestoreBackup) != nil else {
return BuildSettings.settingsSecurityScreenShowRestoreBackup
}
return defaults.bool(forKey: UserDefaultsKeys.settingsSecurityScreenShowRestoreBackup)
} set {
defaults.set(newValue, forKey: UserDefaultsKeys.settingsSecurityScreenShowRestoreBackup)
}
}
var settingsSecurityScreenShowDeleteBackup: Bool {
get {
guard defaults.object(forKey: UserDefaultsKeys.settingsSecurityScreenShowDeleteBackup) != nil else {
return BuildSettings.settingsSecurityScreenShowDeleteBackup
}
return defaults.bool(forKey: UserDefaultsKeys.settingsSecurityScreenShowDeleteBackup)
} set {
defaults.set(newValue, forKey: UserDefaultsKeys.settingsSecurityScreenShowDeleteBackup)
}
}
var settingsSecurityScreenShowCryptographyInfo: Bool {
get {
guard defaults.object(forKey: UserDefaultsKeys.settingsSecurityScreenShowCryptographyInfo) != nil else {
return BuildSettings.settingsSecurityScreenShowCryptographyInfo
}
return defaults.bool(forKey: UserDefaultsKeys.settingsSecurityScreenShowCryptographyInfo)
} set {
defaults.set(newValue, forKey: UserDefaultsKeys.settingsSecurityScreenShowCryptographyInfo)
}
}
var settingsSecurityScreenShowCryptographyExport: Bool {
get {
guard defaults.object(forKey: UserDefaultsKeys.settingsSecurityScreenShowCryptographyExport) != nil else {
return BuildSettings.settingsSecurityScreenShowCryptographyExport
}
return defaults.bool(forKey: UserDefaultsKeys.settingsSecurityScreenShowCryptographyExport)
} set {
defaults.set(newValue, forKey: UserDefaultsKeys.settingsSecurityScreenShowCryptographyExport)
}
}
var settingsSecurityScreenShowAdvancedUnverifiedDevices: Bool {
get {
guard defaults.object(forKey: UserDefaultsKeys.settingsSecurityScreenShowAdvancedUnverifiedDevices) != nil else {
return BuildSettings.settingsSecurityScreenShowAdvancedUnverifiedDevices
}
return defaults.bool(forKey: UserDefaultsKeys.settingsSecurityScreenShowAdvancedUnverifiedDevices)
} set {
defaults.set(newValue, forKey: UserDefaultsKeys.settingsSecurityScreenShowAdvancedUnverifiedDevices)
}
}
}