diff --git a/StikJIT/Utilities/FeatureFlags.swift b/StikJIT/Utilities/FeatureFlags.swift index 3ceec3b..7ee4344 100644 --- a/StikJIT/Utilities/FeatureFlags.swift +++ b/StikJIT/Utilities/FeatureFlags.swift @@ -2,9 +2,11 @@ import Foundation enum FeatureFlags { /// Global toggle for exposing location spoofing UI/logic. - static let isLocationSpoofingEnabled = false + static let isLocationSpoofingEnabled = true /// Controls visibility of beta-quality tabs and UI. static let showBetaTabs = true /// Forces the Theme Expansion to be unlocked and visible everywhere. static let alwaysUnlockThemeExpansion = true + /// Controls visibility of the Mini Tools tab and related UI. + static let isMiniToolsEnabled = true } diff --git a/StikJIT/Utilities/TabConfiguration.swift b/StikJIT/Utilities/TabConfiguration.swift index f820ec4..cb17690 100644 --- a/StikJIT/Utilities/TabConfiguration.swift +++ b/StikJIT/Utilities/TabConfiguration.swift @@ -3,9 +3,12 @@ import Foundation enum TabConfiguration { static let storageKey = "enabledTabIdentifiers" static let maxSelectableTabs = 4 - private static let coreIDs: [String] = ["home", "console", "scripts", "profiles", "deviceinfo", "tools"] + private static let coreIDs: [String] = ["home", "console", "scripts", "profiles", "deviceinfo"] static var allowedIDs: [String] { var ids = coreIDs + if FeatureFlags.isMiniToolsEnabled { + ids.append("tools") + } if FeatureFlags.showBetaTabs { ids.append("processes") ids.append("devicelibrary") diff --git a/StikJIT/Views/MainTabView.swift b/StikJIT/Views/MainTabView.swift index cbf1852..2853153 100644 --- a/StikJIT/Views/MainTabView.swift +++ b/StikJIT/Views/MainTabView.swift @@ -55,9 +55,11 @@ struct MainTabView: View { TabDescriptor(id: "console", title: "Console", systemImage: "terminal") { AnyView(ConsoleLogsView()) }, 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: "tools", title: "Mini Tools", systemImage: "shippingbox.fill") { AnyView(MiniToolListView()) }, + TabDescriptor(id: "deviceinfo", title: "Device Info", systemImage: "iphone.and.arrow.forward") { AnyView(DeviceInfoView()) } ] + if FeatureFlags.isMiniToolsEnabled { + tabs.append(TabDescriptor(id: "tools", title: "Mini Tools", systemImage: "shippingbox.fill") { AnyView(MiniToolListView()) }) + } if FeatureFlags.showBetaTabs { 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()) }) diff --git a/StikJIT/Views/SettingsView.swift b/StikJIT/Views/SettingsView.swift index d895fef..8be0339 100644 --- a/StikJIT/Views/SettingsView.swift +++ b/StikJIT/Views/SettingsView.swift @@ -88,11 +88,15 @@ struct SettingsView: View { var options: [TabOption] = [ TabOption(id: "home", title: "Home", detail: "Dashboard overview", icon: "house", isBeta: false), TabOption(id: "console", title: "Console", detail: "Live device logs", icon: "terminal", isBeta: false), - TabOption(id: "scripts", title: "Scripts", detail: "Manage automation scripts", icon: "scroll", isBeta: false), - TabOption(id: "tools", title: "Mini Tools", detail: "Import and run stiktool bundles", icon: "shippingbox", isBeta: false), + TabOption(id: "scripts", title: "Scripts", detail: "Manage automation scripts", icon: "scroll", isBeta: false) + ] + if FeatureFlags.isMiniToolsEnabled { + options.append(TabOption(id: "tools", title: "Mini Tools", detail: "Import and run stiktool bundles", icon: "shippingbox", isBeta: true)) + } + options.append(contentsOf: [ TabOption(id: "profiles", title: "Profiles", detail: "Install/remove profiles", icon: "magazine", isBeta: false), TabOption(id: "deviceinfo", title: "Device Info", detail: "View detailed device metadata", icon: "iphone.and.arrow.forward", isBeta: false) - ] + ]) 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: "devicelibrary", title: "Devices", detail: "Manage external devices", icon: "list.bullet.rectangle", isBeta: true))