From c1e65b0826bca3531b2f494a3ebac8a84db98f32 Mon Sep 17 00:00:00 2001
From: neon443 <69979447+neon443@users.noreply.github.com>
Date: Mon, 10 Nov 2025 09:46:03 +0000
Subject: [PATCH] fix appstore connect whining
---
ShhShell.xcodeproj/project.pbxproj | 4 --
ShhShell/Info.plist | 4 +-
ShhShell/Settings/AppSettings.swift | 18 +++++++
ShhShell/Views/Settings/SettingsView.swift | 56 +++++++++-----------
ShhShell/Views/Snippets/AddSnippetView.swift | 2 +-
5 files changed, 46 insertions(+), 38 deletions(-)
diff --git a/ShhShell.xcodeproj/project.pbxproj b/ShhShell.xcodeproj/project.pbxproj
index 4c31274..ff092fe 100644
--- a/ShhShell.xcodeproj/project.pbxproj
+++ b/ShhShell.xcodeproj/project.pbxproj
@@ -1092,10 +1092,8 @@
INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO;
INFOPLIST_KEY_NSFaceIDUsageDescription = "ShhShell uses Face ID to verify your identity";
INFOPLIST_KEY_NSLocalNetworkUsageDescription = "Needed to communicate with SSH Servers";
- INFOPLIST_KEY_NSLocationAlwaysAndWhenInUseUsageDescription = "Required to keep SSH connections alive, if enabled";
INFOPLIST_KEY_NSLocationAlwaysUsageDescription = "Required to keep SSH connections alive, if enabled";
INFOPLIST_KEY_NSLocationUsageDescription = "Required to keep SSH connections alive, if enabled";
- INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "Required to keep SSH connections alive, if enabled";
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
@@ -1136,10 +1134,8 @@
INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO;
INFOPLIST_KEY_NSFaceIDUsageDescription = "ShhShell uses Face ID to verify your identity";
INFOPLIST_KEY_NSLocalNetworkUsageDescription = "Needed to communicate with SSH Servers";
- INFOPLIST_KEY_NSLocationAlwaysAndWhenInUseUsageDescription = "Required to keep SSH connections alive, if enabled";
INFOPLIST_KEY_NSLocationAlwaysUsageDescription = "Required to keep SSH connections alive, if enabled";
INFOPLIST_KEY_NSLocationUsageDescription = "Required to keep SSH connections alive, if enabled";
- INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "Required to keep SSH connections alive, if enabled";
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
diff --git a/ShhShell/Info.plist b/ShhShell/Info.plist
index 6e66e9e..cd0e652 100644
--- a/ShhShell/Info.plist
+++ b/ShhShell/Info.plist
@@ -23,8 +23,6 @@
JetBrainsMonoNerdFontMono-BoldItalic.ttf
UIBackgroundModes
-
- location
-
+
diff --git a/ShhShell/Settings/AppSettings.swift b/ShhShell/Settings/AppSettings.swift
index c6570b7..1fcbc1a 100644
--- a/ShhShell/Settings/AppSettings.swift
+++ b/ShhShell/Settings/AppSettings.swift
@@ -102,4 +102,22 @@ enum AppIcon: Codable, CaseIterable, Equatable, CustomStringConvertible {
return "Blueprint"
}
}
+
+ var isiOS26: Bool {
+ switch self {
+ case .regular:
+ return true
+ case .beta, .betaBlueprint:
+ return false
+ }
+ }
+
+ var radius: CGFloat {
+ switch isiOS26 {
+ case true, false:
+ return 17.578125
+// case false:
+// return 16.5
+ }
+ }
}
diff --git a/ShhShell/Views/Settings/SettingsView.swift b/ShhShell/Views/Settings/SettingsView.swift
index 459c1cb..c4e6d93 100644
--- a/ShhShell/Views/Settings/SettingsView.swift
+++ b/ShhShell/Views/Settings/SettingsView.swift
@@ -38,7 +38,7 @@ struct SettingsView: View {
hostsManager.selectedTheme.background.suiColor.opacity(0.7)
.ignoresSafeArea(.all)
List {
- Section("Terminal") {
+ Section("Display") {
VStack(alignment: .leading) {
HStack {
Label("Scrollback", systemImage: "scroll")
@@ -52,7 +52,21 @@ struct SettingsView: View {
step: 250
)
}
+ Toggle("Keep Display Awake", systemImage: "cup.and.saucer.fill", isOn: $hostsManager.settings.caffeinate)
+ if #unavailable(iOS 17), hostsManager.settings.filter == .crt {
+ Label("iOS 17 Required", systemImage: "exclamationmark.triangle.fill")
+ .foregroundStyle(.yellow)
+ .transition(.opacity)
+ }
+ Picker("", selection: $hostsManager.settings.filter) {
+ ForEach(TerminalFilter.allCases, id: \.self) { filter in
+ Text(filter.description).tag(filter)
+ }
+ }
+ .pickerStyle(.inline)
+ .labelsHidden()
}
+ .animation(.spring, value: hostsManager.settings.filter)
Section("Cursor") {
HStack(spacing: 20) {
@@ -154,51 +168,34 @@ struct SettingsView: View {
}
}
- Section("Keepalive") {
- Toggle("Location Persistence", systemImage: "location.fill", isOn: $hostsManager.settings.locationPersist)
- .onChange(of: hostsManager.settings.locationPersist) { _ in
- if hostsManager.settings.locationPersist && !Backgrounder.shared.checkPermsStatus() {
- Backgrounder.shared.requestPerms()
- }
- }
- Toggle("Keep Display Awake", systemImage: "cup.and.saucer.fill", isOn: $hostsManager.settings.caffeinate)
- }
+// Section("Keepalive") {
+// Toggle("Location Persistence", systemImage: "location.fill", isOn: $hostsManager.settings.locationPersist)
+// .onChange(of: hostsManager.settings.locationPersist) { _ in
+// if hostsManager.settings.locationPersist && !Backgrounder.shared.checkPermsStatus() {
+// Backgrounder.shared.requestPerms()
+// }
+// }
+// }
Section("Bell Feedback") {
Toggle("Sound", systemImage: "bell.and.waves.left.and.right", isOn: $hostsManager.settings.bellSound)
Toggle("Haptic",systemImage: "iphone.radiowaves.left.and.right", isOn: $hostsManager.settings.bellHaptic)
}
-
- Section("Terminal Filter") {
- if #unavailable(iOS 17), hostsManager.settings.filter == .crt {
- Label("iOS 17 Required", systemImage: "exclamationmark.triangle.fill")
- .foregroundStyle(.yellow)
- .transition(.opacity)
- }
- Picker("", selection: $hostsManager.settings.filter) {
- ForEach(TerminalFilter.allCases, id: \.self) { filter in
- Text(filter.description).tag(filter)
- }
- }
- .pickerStyle(.inline)
- .labelsHidden()
- }
- .animation(.spring, value: hostsManager.settings.filter)
-
Section("App Icon") {
ScrollView(.horizontal) {
HStack {
ForEach(AppIcon.allCases, id: \.self) { icon in
let isSelected = hostsManager.settings.appIcon == icon
ZStack(alignment: .top) {
- RoundedRectangle(cornerRadius: 21.5)
+ RoundedRectangle(cornerRadius: icon.radius + 5)
.foregroundStyle(.gray.opacity(0.5))
.opacity(isSelected ? 1 : 0)
VStack(spacing: 0) {
icon.image
.resizable().scaledToFit()
- .clipShape(RoundedRectangle(cornerRadius: 16.5))
+ .frame(width: 85, height: 85)
+ .clipShape(RoundedRectangle(cornerRadius: icon.radius))
.padding(5)
Text(icon.description).tag(icon)
.font(.caption)
@@ -207,7 +204,6 @@ struct SettingsView: View {
.multilineTextAlignment(.center)
}
}
- .frame(maxWidth: 85, maxHeight: 110)
.onTapGesture {
withAnimation {
hostsManager.settings.appIcon = icon
diff --git a/ShhShell/Views/Snippets/AddSnippetView.swift b/ShhShell/Views/Snippets/AddSnippetView.swift
index 52e35c3..b47d3db 100644
--- a/ShhShell/Views/Snippets/AddSnippetView.swift
+++ b/ShhShell/Views/Snippets/AddSnippetView.swift
@@ -34,7 +34,7 @@ struct AddSnippetView: View {
TextEditor(text: $content)
.autocorrectionDisabled()
.textInputAutocapitalization(.never)
- .background(.black)
+// .background(.black)
.clipShape(RoundedRectangle(cornerRadius: 5))
.padding(.bottom)
.frame(minHeight: 50)