Better anisette settings

adds multivalue selector for some anisette servers
This commit is contained in:
bogotesr
2022-12-03 13:48:33 -07:00
parent aed3e20e08
commit 03034768d9
3 changed files with 67 additions and 5 deletions

View File

@@ -8,15 +8,61 @@
<string>group.$(APP_GROUP_IDENTIFIER)</string>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>Type</key>
<string>PSMultiValueSpecifier</string>
<key>Title</key>
<string>Anisette Server</string>
<key>Key</key>
<string>customAnisetteURL</string>
<key>DefaultValue</key>
<string>http://191.101.206.188:6969</string>
<key>Titles</key>
<array>
<string>Macley (US)</string>
<string>Macley (DE)</string>
<string>DrPudding</string>
<string>jkcoxson (AltServer)</string>
<string>jkcoxson (Provision)</string>
<string>Sideloadly</string>
<string>Nick</string>
<string>Jawshoeadan</string>
</array>
<key>Values</key>
<array>
<string>http://us1.sternserv.tech</string>
<string>http://de1.sternserv.tech</string>
<string>https://sign.rheaa.xyz</string>
<string>http://jkcoxson.com:2095</string>
<string>http://jkcoxson.com:2052</string>
<string>https://sideloadly.io/anisette/irGb3Quww8zrhgqnzmrx</string>
<string>http://45.33.29.114</string>
<string>https://anisette.jawshoeadan.me</string>
</array>
</dict>
<dict>
<key>Type</key>
<string>PSGroupSpecifier</string>
<key>Title</key>
<string>Danger Zone</string>
</dict>
<dict>
<key>Type</key>
<string>PSToggleSwitchSpecifier</string>
<key>Title</key>
<string>Use preferred servers</string>
<key>Key</key>
<string>textServer</string>
<key>DefaultValue</key>
<true/>
</dict>
<dict>
<key>Type</key>
<string>PSTextFieldSpecifier</string>
<key>Title</key>
<string>Anisette URL</string>
<key>Key</key>
<string>customAnisetteURL</string>
<key>IsSecure</key>
<string>Alphabet</string>
<string>textInputAnisetteURL</string>
<key>AutocapitalizationType</key>
<string>None</string>
<key>AutocorrectionType</key>

View File

@@ -12,13 +12,27 @@ public struct AnisetteManager {
/// User defined URL from Settings/UserDefaults
static var userURL: String? {
guard let urlString = UserDefaults.standard.customAnisetteURL, !urlString.isEmpty else { return nil }
var urlString: String?
if UserDefaults.standard.textServer == false {
urlString = UserDefaults.standard.textInputAnisetteURL
}
else {
urlString = UserDefaults.standard.customAnisetteURL
}
// guard let urlString = UserDefaults.standard.customAnisetteURL, !urlString.isEmpty else { return nil }
// Test it's a valid URL
if let urlString = urlString {
guard URL(string: urlString) != nil else {
ELOG("UserDefaults has invalid `customAnisetteURL`")
assertionFailure("UserDefaults has invalid `customAnisetteURL`")
return nil
}
}
return urlString
}
static var defaultURL: String {

View File

@@ -21,6 +21,8 @@ public extension UserDefaults
@NSManaged var firstLaunch: Date?
@NSManaged var requiresAppGroupMigration: Bool
@NSManaged var textServer: Bool
@NSManaged var textInputAnisetteURL: String?
@NSManaged var customAnisetteURL: String?
@NSManaged var preferredServerID: String?