mirror of
https://github.com/StikDebug/StikDebug.git
synced 2026-10-15 20:10:30 +00:00
Fix my mistakes and get update ready
This commit is contained in:
parent
222328e708
commit
da0a3f76d3
6 changed files with 28 additions and 26 deletions
|
|
@ -15,13 +15,17 @@
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
|
<key>NSBonjourServices</key>
|
||||||
<key>ITSAppUsesNonExemptEncryption</key>
|
<array>
|
||||||
<false/>
|
<string>_stikdebug._tcp</string>
|
||||||
|
<string>_stikdebug._udp</string>
|
||||||
|
</array>
|
||||||
|
<key>UIBackgroundModes</key>
|
||||||
|
<array>
|
||||||
|
<string>audio</string>
|
||||||
|
</array>
|
||||||
<key>UIFileSharingEnabled</key>
|
<key>UIFileSharingEnabled</key>
|
||||||
<true/>
|
<true/>
|
||||||
|
|
||||||
<key>UTExportedTypeDeclarations</key>
|
<key>UTExportedTypeDeclarations</key>
|
||||||
<array>
|
<array>
|
||||||
<dict>
|
<dict>
|
||||||
|
|
@ -44,14 +48,5 @@
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
|
|
||||||
<key>NSLocalNetworkUsageDescription</key>
|
|
||||||
<string>StikDebug needs access to devices on your local network so it can connect to the targets you add to the Device Library.</string>
|
|
||||||
|
|
||||||
<key>NSBonjourServices</key>
|
|
||||||
<array>
|
|
||||||
<string>_stikdebug._tcp</string>
|
|
||||||
<string>_stikdebug._udp</string>
|
|
||||||
</array>
|
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,11 @@ import Foundation
|
||||||
|
|
||||||
enum FeatureFlags {
|
enum FeatureFlags {
|
||||||
/// Global toggle for exposing location spoofing UI/logic.
|
/// Global toggle for exposing location spoofing UI/logic.
|
||||||
static let isLocationSpoofingEnabled = true
|
static let isLocationSpoofingEnabled = false
|
||||||
/// Controls visibility of beta-quality tabs and UI.
|
/// Controls visibility of beta-quality tabs and UI.
|
||||||
static let showBetaTabs = true
|
static let showBetaTabs = false
|
||||||
/// Forces the Theme Expansion to be unlocked and visible everywhere.
|
/// Forces the Theme Expansion to be unlocked and visible everywhere.
|
||||||
static let alwaysUnlockThemeExpansion = true
|
static let alwaysUnlockThemeExpansion = false
|
||||||
/// Controls visibility of the Mini Tools tab and related UI.
|
/// Controls visibility of the Mini Tools tab and related UI.
|
||||||
static let isMiniToolsEnabled = true
|
static let isMiniToolsEnabled = false
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,13 +3,14 @@ import Foundation
|
||||||
enum TabConfiguration {
|
enum TabConfiguration {
|
||||||
static let storageKey = "enabledTabIdentifiers"
|
static let storageKey = "enabledTabIdentifiers"
|
||||||
static let maxSelectableTabs = 4
|
static let maxSelectableTabs = 4
|
||||||
private static let coreIDs: [String] = ["home", "console", "scripts", "profiles", "deviceinfo"]
|
private static let coreIDs: [String] = ["home", "console", "scripts", "deviceinfo"]
|
||||||
static var allowedIDs: [String] {
|
static var allowedIDs: [String] {
|
||||||
var ids = coreIDs
|
var ids = coreIDs
|
||||||
if FeatureFlags.isMiniToolsEnabled {
|
if FeatureFlags.isMiniToolsEnabled {
|
||||||
ids.append("tools")
|
ids.append("tools")
|
||||||
}
|
}
|
||||||
if FeatureFlags.showBetaTabs {
|
if FeatureFlags.showBetaTabs {
|
||||||
|
ids.append("profiles")
|
||||||
ids.append("processes")
|
ids.append("processes")
|
||||||
ids.append("devicelibrary")
|
ids.append("devicelibrary")
|
||||||
if FeatureFlags.isLocationSpoofingEnabled {
|
if FeatureFlags.isLocationSpoofingEnabled {
|
||||||
|
|
@ -18,7 +19,7 @@ enum TabConfiguration {
|
||||||
}
|
}
|
||||||
return ids
|
return ids
|
||||||
}
|
}
|
||||||
static let defaultIDs: [String] = ["home", "console", "scripts", "profiles"]
|
static let defaultIDs: [String] = ["home", "console", "scripts", "deviceinfo"]
|
||||||
static let defaultRawValue = serialize(defaultIDs)
|
static let defaultRawValue = serialize(defaultIDs)
|
||||||
|
|
||||||
static func sanitize(raw: String) -> [String] {
|
static func sanitize(raw: String) -> [String] {
|
||||||
|
|
|
||||||
|
|
@ -77,6 +77,7 @@ struct DisplayView: View {
|
||||||
@State private var selectedAccentColor: Color = .blue
|
@State private var selectedAccentColor: Color = .blue
|
||||||
@Environment(\.colorScheme) private var colorScheme
|
@Environment(\.colorScheme) private var colorScheme
|
||||||
@Environment(\.themeExpansionManager) private var themeExpansionOptional
|
@Environment(\.themeExpansionManager) private var themeExpansionOptional
|
||||||
|
@Environment(\.dismiss) private var dismiss
|
||||||
|
|
||||||
@State private var justSaved = false
|
@State private var justSaved = false
|
||||||
@State private var showingCreateCustomTheme = false
|
@State private var showingCreateCustomTheme = false
|
||||||
|
|
@ -171,6 +172,11 @@ struct DisplayView: View {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.navigationTitle("Display")
|
.navigationTitle("Display")
|
||||||
|
.toolbar {
|
||||||
|
ToolbarItem(placement: .primaryAction) {
|
||||||
|
Button("Close") { dismiss() }
|
||||||
|
}
|
||||||
|
}
|
||||||
.onAppear {
|
.onAppear {
|
||||||
if !hasThemeExpansion, let manager = themeExpansion, manager.isCustomThemeIdentifier(appThemeRaw) {
|
if !hasThemeExpansion, let manager = themeExpansion, manager.isCustomThemeIdentifier(appThemeRaw) {
|
||||||
appThemeRaw = AppTheme.system.rawValue
|
appThemeRaw = AppTheme.system.rawValue
|
||||||
|
|
|
||||||
|
|
@ -54,13 +54,13 @@ struct MainTabView: View {
|
||||||
TabDescriptor(id: "home", title: "Home", systemImage: "house") { AnyView(HomeView()) },
|
TabDescriptor(id: "home", title: "Home", systemImage: "house") { AnyView(HomeView()) },
|
||||||
TabDescriptor(id: "console", title: "Console", systemImage: "terminal") { AnyView(ConsoleLogsView()) },
|
TabDescriptor(id: "console", title: "Console", systemImage: "terminal") { AnyView(ConsoleLogsView()) },
|
||||||
TabDescriptor(id: "scripts", title: "Scripts", systemImage: "scroll") { AnyView(ScriptListView()) },
|
TabDescriptor(id: "scripts", title: "Scripts", systemImage: "scroll") { AnyView(ScriptListView()) },
|
||||||
TabDescriptor(id: "profiles", title: "Profiles", systemImage: "magazine.fill") { AnyView(ProfileView()) },
|
|
||||||
TabDescriptor(id: "deviceinfo", title: "Device Info", systemImage: "iphone.and.arrow.forward") { AnyView(DeviceInfoView()) }
|
TabDescriptor(id: "deviceinfo", title: "Device Info", systemImage: "iphone.and.arrow.forward") { AnyView(DeviceInfoView()) }
|
||||||
]
|
]
|
||||||
if FeatureFlags.isMiniToolsEnabled {
|
if FeatureFlags.isMiniToolsEnabled {
|
||||||
tabs.append(TabDescriptor(id: "tools", title: "Mini Tools", systemImage: "shippingbox.fill") { AnyView(MiniToolListView()) })
|
tabs.append(TabDescriptor(id: "tools", title: "Mini Tools", systemImage: "shippingbox.fill") { AnyView(MiniToolListView()) })
|
||||||
}
|
}
|
||||||
if FeatureFlags.showBetaTabs {
|
if FeatureFlags.showBetaTabs {
|
||||||
|
tabs.append(TabDescriptor(id: "profiles", title: "Profiles", systemImage: "magazine.fill") { AnyView(ProfileView()) })
|
||||||
tabs.append(TabDescriptor(id: "processes", title: "Processes", systemImage: "rectangle.stack.person.crop") { AnyView(ProcessInspectorView()) })
|
tabs.append(TabDescriptor(id: "processes", title: "Processes", systemImage: "rectangle.stack.person.crop") { AnyView(ProcessInspectorView()) })
|
||||||
tabs.append(TabDescriptor(id: "devicelibrary", title: "Devices", systemImage: "list.bullet.rectangle") { AnyView(DeviceLibraryView()) })
|
tabs.append(TabDescriptor(id: "devicelibrary", title: "Devices", systemImage: "list.bullet.rectangle") { AnyView(DeviceLibraryView()) })
|
||||||
if FeatureFlags.isLocationSpoofingEnabled {
|
if FeatureFlags.isLocationSpoofingEnabled {
|
||||||
|
|
|
||||||
|
|
@ -93,10 +93,10 @@ struct SettingsView: View {
|
||||||
if FeatureFlags.isMiniToolsEnabled {
|
if FeatureFlags.isMiniToolsEnabled {
|
||||||
options.append(TabOption(id: "tools", title: "Mini Tools", detail: "Import and run stiktool bundles", icon: "shippingbox", isBeta: true))
|
options.append(TabOption(id: "tools", title: "Mini Tools", detail: "Import and run stiktool bundles", icon: "shippingbox", isBeta: true))
|
||||||
}
|
}
|
||||||
options.append(contentsOf: [
|
options.append(TabOption(id: "deviceinfo", title: "Device Info", detail: "View detailed device metadata", icon: "iphone.and.arrow.forward", isBeta: false))
|
||||||
TabOption(id: "profiles", title: "Profiles", detail: "Install/remove profiles", icon: "magazine", isBeta: false),
|
if FeatureFlags.showBetaTabs {
|
||||||
TabOption(id: "deviceinfo", title: "Device Info", detail: "View detailed device metadata", icon: "iphone.and.arrow.forward", isBeta: false)
|
options.append(TabOption(id: "profiles", title: "Profiles", detail: "Install/remove profiles", icon: "magazine", isBeta: true))
|
||||||
])
|
}
|
||||||
if FeatureFlags.showBetaTabs {
|
if FeatureFlags.showBetaTabs {
|
||||||
options.append(TabOption(id: "processes", title: "Processes", detail: "Inspect running apps", icon: "rectangle.stack.person.crop", isBeta: true))
|
options.append(TabOption(id: "processes", title: "Processes", detail: "Inspect running apps", icon: "rectangle.stack.person.crop", isBeta: true))
|
||||||
options.append(TabOption(id: "devicelibrary", title: "Devices", detail: "Manage external devices", icon: "list.bullet.rectangle", isBeta: true))
|
options.append(TabOption(id: "devicelibrary", title: "Devices", detail: "Manage external devices", icon: "list.bullet.rectangle", isBeta: true))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue