mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-10 15:23:27 +01:00
- put SwiftUI in an unstable feature - Add Reset adi.pb to SwiftUI settings - Add localizations to more things such as Error Log and Refresh Attempts - Move debug logging into Advanced Settings - Add padding to version text at the bottom of SwiftUI settings - Add some things to Unstable Features such as nesting the Feature enum in UnstableFeatures and allowing on enable/disable hooks - Don't use ObservableObject for UnstableFeatures as it's not needed - fix a bug with unstable features where the toggle would be reverted if you go into another tab and then back - Use SwiftUI advanced settings in UIKit
94 lines
3.2 KiB
Swift
94 lines
3.2 KiB
Swift
//
|
|
// AdvancedSettingsView.swift
|
|
// SideStore
|
|
//
|
|
// Created by naturecodevoid on 2/19/23.
|
|
// Copyright © 2023 SideStore. All rights reserved.
|
|
//
|
|
|
|
import SwiftUI
|
|
import minimuxer
|
|
|
|
private struct Server: Identifiable {
|
|
var id: String { value }
|
|
var display: String
|
|
var value: String
|
|
}
|
|
|
|
struct AdvancedSettingsView: View {
|
|
@ObservedObject private var iO = Inject.observer
|
|
|
|
private let anisetteServers = [
|
|
Server(display: "SideStore", value: "https://ani.sidestore.io"),
|
|
Server(display: "Macley (US)", value: "http://us1.sternserv.tech"),
|
|
Server(display: "Macley (DE)", value: "http://de1.sternserv.tech"),
|
|
Server(display: "DrPudding", value: "https://sign.rheaa.xyz"),
|
|
Server(display: "Sideloadly", value: "https://sideloadly.io/anisette/irGb3Quww8zrhgqnzmrx"),
|
|
Server(display: "Nick", value: "http://45.33.29.114"),
|
|
Server(display: "Jawshoeadan", value: "https://anisette.jawshoeadan.me"),
|
|
Server(display: "crystall1nedev", value: "https://anisette.crystall1ne.software/"),
|
|
]
|
|
|
|
@AppStorage("textServer")
|
|
var usePreferred: Bool = true
|
|
|
|
@AppStorage("textInputAnisetteURL")
|
|
var anisetteURL: String = ""
|
|
|
|
@AppStorage("customAnisetteURL")
|
|
var selectedAnisetteServer: String = ""
|
|
|
|
@AppStorage("isDebugLoggingEnabled")
|
|
var isDebugLoggingEnabled: Bool = false
|
|
|
|
var body: some View {
|
|
List {
|
|
Section {
|
|
Picker(L10n.AdvancedSettingsView.AnisetteSettings.server, selection: $selectedAnisetteServer) {
|
|
ForEach(anisetteServers) { server in
|
|
Text(server.display)
|
|
}
|
|
}
|
|
|
|
Toggle(L10n.AdvancedSettingsView.AnisetteSettings.usePreferred, isOn: $usePreferred)
|
|
|
|
HStack {
|
|
Text(L10n.AdvancedSettingsView.AnisetteSettings.anisetteURL)
|
|
TextField("", text: $anisetteURL)
|
|
.autocapitalization(.none)
|
|
.autocorrectionDisabled(true)
|
|
}
|
|
} header: {
|
|
Text(L10n.AdvancedSettingsView.anisetteSettings)
|
|
} footer: {
|
|
Text(L10n.AdvancedSettingsView.AnisetteSettings.footer)
|
|
}
|
|
|
|
Section {
|
|
Toggle(L10n.AdvancedSettingsView.DangerZone.debugLogging, isOn: self.$isDebugLoggingEnabled)
|
|
.onChange(of: self.isDebugLoggingEnabled) { value in
|
|
UserDefaults.shared.isDebugLoggingEnabled = value
|
|
set_debug(value)
|
|
}
|
|
|
|
#if UNSTABLE
|
|
NavigationLink(L10n.UnstableFeaturesView.title) {
|
|
UnstableFeaturesView(inDevMode: false)
|
|
}
|
|
.foregroundColor(.red)
|
|
#endif
|
|
} header: {
|
|
Text(L10n.AdvancedSettingsView.dangerZone)
|
|
}
|
|
}
|
|
.navigationTitle(L10n.AdvancedSettingsView.title)
|
|
.enableInjection()
|
|
}
|
|
}
|
|
|
|
struct AdvancedSettingsView_Previews: PreviewProvider {
|
|
static var previews: some View {
|
|
AdvancedSettingsView()
|
|
}
|
|
}
|