mirror of
https://github.com/neon443/ShhShell.git
synced 2026-03-11 05:19:13 +00:00
fix appstore connect whining
This commit is contained in:
@@ -1092,10 +1092,8 @@
|
|||||||
INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO;
|
INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO;
|
||||||
INFOPLIST_KEY_NSFaceIDUsageDescription = "ShhShell uses Face ID to verify your identity";
|
INFOPLIST_KEY_NSFaceIDUsageDescription = "ShhShell uses Face ID to verify your identity";
|
||||||
INFOPLIST_KEY_NSLocalNetworkUsageDescription = "Needed to communicate with SSH Servers";
|
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_NSLocationAlwaysUsageDescription = "Required to keep SSH connections alive, if enabled";
|
||||||
INFOPLIST_KEY_NSLocationUsageDescription = "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_UIApplicationSceneManifest_Generation = YES;
|
||||||
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
|
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
|
||||||
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
|
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
|
||||||
@@ -1136,10 +1134,8 @@
|
|||||||
INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO;
|
INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO;
|
||||||
INFOPLIST_KEY_NSFaceIDUsageDescription = "ShhShell uses Face ID to verify your identity";
|
INFOPLIST_KEY_NSFaceIDUsageDescription = "ShhShell uses Face ID to verify your identity";
|
||||||
INFOPLIST_KEY_NSLocalNetworkUsageDescription = "Needed to communicate with SSH Servers";
|
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_NSLocationAlwaysUsageDescription = "Required to keep SSH connections alive, if enabled";
|
||||||
INFOPLIST_KEY_NSLocationUsageDescription = "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_UIApplicationSceneManifest_Generation = YES;
|
||||||
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
|
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
|
||||||
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
|
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
|
||||||
|
|||||||
@@ -23,8 +23,6 @@
|
|||||||
<string>JetBrainsMonoNerdFontMono-BoldItalic.ttf</string>
|
<string>JetBrainsMonoNerdFontMono-BoldItalic.ttf</string>
|
||||||
</array>
|
</array>
|
||||||
<key>UIBackgroundModes</key>
|
<key>UIBackgroundModes</key>
|
||||||
<array>
|
<array/>
|
||||||
<string>location</string>
|
|
||||||
</array>
|
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|||||||
@@ -102,4 +102,22 @@ enum AppIcon: Codable, CaseIterable, Equatable, CustomStringConvertible {
|
|||||||
return "Blueprint"
|
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
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ struct SettingsView: View {
|
|||||||
hostsManager.selectedTheme.background.suiColor.opacity(0.7)
|
hostsManager.selectedTheme.background.suiColor.opacity(0.7)
|
||||||
.ignoresSafeArea(.all)
|
.ignoresSafeArea(.all)
|
||||||
List {
|
List {
|
||||||
Section("Terminal") {
|
Section("Display") {
|
||||||
VStack(alignment: .leading) {
|
VStack(alignment: .leading) {
|
||||||
HStack {
|
HStack {
|
||||||
Label("Scrollback", systemImage: "scroll")
|
Label("Scrollback", systemImage: "scroll")
|
||||||
@@ -52,7 +52,21 @@ struct SettingsView: View {
|
|||||||
step: 250
|
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") {
|
Section("Cursor") {
|
||||||
HStack(spacing: 20) {
|
HStack(spacing: 20) {
|
||||||
@@ -154,51 +168,34 @@ struct SettingsView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Section("Keepalive") {
|
// Section("Keepalive") {
|
||||||
Toggle("Location Persistence", systemImage: "location.fill", isOn: $hostsManager.settings.locationPersist)
|
// Toggle("Location Persistence", systemImage: "location.fill", isOn: $hostsManager.settings.locationPersist)
|
||||||
.onChange(of: hostsManager.settings.locationPersist) { _ in
|
// .onChange(of: hostsManager.settings.locationPersist) { _ in
|
||||||
if hostsManager.settings.locationPersist && !Backgrounder.shared.checkPermsStatus() {
|
// if hostsManager.settings.locationPersist && !Backgrounder.shared.checkPermsStatus() {
|
||||||
Backgrounder.shared.requestPerms()
|
// Backgrounder.shared.requestPerms()
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
Toggle("Keep Display Awake", systemImage: "cup.and.saucer.fill", isOn: $hostsManager.settings.caffeinate)
|
// }
|
||||||
}
|
|
||||||
|
|
||||||
Section("Bell Feedback") {
|
Section("Bell Feedback") {
|
||||||
Toggle("Sound", systemImage: "bell.and.waves.left.and.right", isOn: $hostsManager.settings.bellSound)
|
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)
|
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") {
|
Section("App Icon") {
|
||||||
ScrollView(.horizontal) {
|
ScrollView(.horizontal) {
|
||||||
HStack {
|
HStack {
|
||||||
ForEach(AppIcon.allCases, id: \.self) { icon in
|
ForEach(AppIcon.allCases, id: \.self) { icon in
|
||||||
let isSelected = hostsManager.settings.appIcon == icon
|
let isSelected = hostsManager.settings.appIcon == icon
|
||||||
ZStack(alignment: .top) {
|
ZStack(alignment: .top) {
|
||||||
RoundedRectangle(cornerRadius: 21.5)
|
RoundedRectangle(cornerRadius: icon.radius + 5)
|
||||||
.foregroundStyle(.gray.opacity(0.5))
|
.foregroundStyle(.gray.opacity(0.5))
|
||||||
.opacity(isSelected ? 1 : 0)
|
.opacity(isSelected ? 1 : 0)
|
||||||
VStack(spacing: 0) {
|
VStack(spacing: 0) {
|
||||||
icon.image
|
icon.image
|
||||||
.resizable().scaledToFit()
|
.resizable().scaledToFit()
|
||||||
.clipShape(RoundedRectangle(cornerRadius: 16.5))
|
.frame(width: 85, height: 85)
|
||||||
|
.clipShape(RoundedRectangle(cornerRadius: icon.radius))
|
||||||
.padding(5)
|
.padding(5)
|
||||||
Text(icon.description).tag(icon)
|
Text(icon.description).tag(icon)
|
||||||
.font(.caption)
|
.font(.caption)
|
||||||
@@ -207,7 +204,6 @@ struct SettingsView: View {
|
|||||||
.multilineTextAlignment(.center)
|
.multilineTextAlignment(.center)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.frame(maxWidth: 85, maxHeight: 110)
|
|
||||||
.onTapGesture {
|
.onTapGesture {
|
||||||
withAnimation {
|
withAnimation {
|
||||||
hostsManager.settings.appIcon = icon
|
hostsManager.settings.appIcon = icon
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ struct AddSnippetView: View {
|
|||||||
TextEditor(text: $content)
|
TextEditor(text: $content)
|
||||||
.autocorrectionDisabled()
|
.autocorrectionDisabled()
|
||||||
.textInputAutocapitalization(.never)
|
.textInputAutocapitalization(.never)
|
||||||
.background(.black)
|
// .background(.black)
|
||||||
.clipShape(RoundedRectangle(cornerRadius: 5))
|
.clipShape(RoundedRectangle(cornerRadius: 5))
|
||||||
.padding(.bottom)
|
.padding(.bottom)
|
||||||
.frame(minHeight: 50)
|
.frame(minHeight: 50)
|
||||||
|
|||||||
Reference in New Issue
Block a user