mirror of
https://github.com/StikDebug/StikDebug.git
synced 2026-10-16 04:20:30 +00:00
* Change default UPLOAD_IPA value to 'false' * Part 1 of the great debloat * Remove Mini Tools, adopt native alerts in StikJITApp, and update HomeView UI * Refactor views to use native SwiftUI alerts instead of CustomErrorView * Update ProfileView to use minimal List UI style with native alerts * Fix up homeview * Squash: Redesign HomeView, remove Feature Flags, enable all tabs, refactor alerts, and updates - Redesign HomeView to a simpler style with 'Enable JIT' action. - Remove 'Help & Info' and 'Quick Launch' from Home. - Fix DDI false positive by starting heartbeat on HomeView appear. - Restore robust DDI checks and update app name to 'StikDebug'. - Remove FeatureFlags and Beta tags; enable 'profiles', 'processes', 'location' tabs by default. - Remove 'Devices' tab; add 'Target Device IP' field in Settings. - Hardcode 'Settings' tab to 4th position. - Refactor 'SettingsView' tab customization to be reorder-only. - Remove 'Appearance' theme section from Settings. - Refactor custom error cards to use native SwiftUI/UIKit alerts across the app (HomeView, ConsoleLogsView, ProfileView, etc). - Restore JS callback support and script execution logic in HomeView. - Add necessary Color extensions. - Update project version to 3.0.0. * Clean up: Remove In-App Purchases, update checker, and unused IPA installer code * delete more bloat * fix build issue * Remove widget to save on App IDs * Attempt heartbeat restart when Enable JIT button is pressed * Get rid of PIP * Update Tab Naming * remove more bloat * final changes for today * Remove unused packages * UX Improvements * revert bundle id * Update README.md * remove old idevice * add updated idevice * Fix ddi false positive errors and add templates for GitHub stuff * Remove more unused stuff. * Fix links and update README content * Update compatibility table in README.md * Improve performance of console logs * Remove old code * Change default UPLOAD_IPA value to 'true' * remove the welcome sheet * import support for .mobiledevicepair * Add back LC JIT stuff * Fix heartbeat issues with LC JIT * update the build yml for nightly stuff * Update README.md * Update README.md * Update GitHub Actions workflow for IPA build * Update GitHub Actions workflow for nightly builds * Add URL scheme to kill tasks stikjit://kill-process?pid=1234 * fix build issues * Added App Intents * Unify the error handling style across the app
44 lines
1.4 KiB
Swift
44 lines
1.4 KiB
Swift
import Foundation
|
|
|
|
enum TabConfiguration {
|
|
static let storageKey = "enabledTabIdentifiers"
|
|
static let maxSelectableTabs = 12
|
|
private static let coreIDs: [String] = ["home", "scripts", "tools", "deviceinfo"]
|
|
static var allowedIDs: [String] {
|
|
var ids = coreIDs
|
|
ids.append("profiles")
|
|
ids.append("processes")
|
|
ids.append("location")
|
|
return ids
|
|
}
|
|
static let defaultIDs: [String] = ["home", "scripts", "tools", "deviceinfo", "profiles", "processes", "location"]
|
|
static let defaultRawValue = serialize(defaultIDs)
|
|
|
|
static func sanitize(raw: String) -> [String] {
|
|
let ids = raw
|
|
.split(separator: ",")
|
|
.map { String($0).trimmingCharacters(in: .whitespacesAndNewlines) }
|
|
return sanitize(ids: ids)
|
|
}
|
|
|
|
static func sanitize(ids: [String]) -> [String] {
|
|
var result: [String] = []
|
|
for id in ids {
|
|
guard allowedIDs.contains(id) else { continue }
|
|
if !result.contains(id) {
|
|
result.append(id)
|
|
}
|
|
if result.count == maxSelectableTabs {
|
|
break
|
|
}
|
|
}
|
|
if result.isEmpty {
|
|
result = defaultIDs
|
|
}
|
|
return result
|
|
}
|
|
|
|
static func serialize(_ ids: [String]) -> String {
|
|
sanitize(ids: ids).joined(separator: ",")
|
|
}
|
|
}
|