Set up and start main content view

This commit is contained in:
Max Goedjen 2024-01-04 17:16:03 -08:00
parent 8c67ea7c73
commit de959345ed
No known key found for this signature in database
4 changed files with 164 additions and 6 deletions

View File

@ -18,6 +18,7 @@
5003EF612780081600DF2006 /* SmartCardSecretKit in Frameworks */ = {isa = PBXBuildFile; productRef = 5003EF602780081600DF2006 /* SmartCardSecretKit */; };
5003EF632780081B00DF2006 /* SecureEnclaveSecretKit in Frameworks */ = {isa = PBXBuildFile; productRef = 5003EF622780081B00DF2006 /* SecureEnclaveSecretKit */; };
5003EF652780081B00DF2006 /* SmartCardSecretKit in Frameworks */ = {isa = PBXBuildFile; productRef = 5003EF642780081B00DF2006 /* SmartCardSecretKit */; };
500B93C32B478D8400E157DE /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = 500B93C22B478D8400E157DE /* Localizable.xcstrings */; };
501421622781262300BBAA70 /* Brief in Frameworks */ = {isa = PBXBuildFile; productRef = 501421612781262300BBAA70 /* Brief */; };
501421652781268000BBAA70 /* SecretAgent.app in CopyFiles */ = {isa = PBXBuildFile; fileRef = 50A3B78A24026B7500D209EA /* SecretAgent.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
50153E20250AFCB200525160 /* UpdateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50153E1F250AFCB200525160 /* UpdateView.swift */; };
@ -108,6 +109,7 @@
50020BAF24064869003D4025 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
50033AC227813F1700253856 /* BundleIDs.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BundleIDs.swift; sourceTree = "<group>"; };
5003EF39278005C800DF2006 /* Packages */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = Packages; sourceTree = "<group>"; };
500B93C22B478D8400E157DE /* Localizable.xcstrings */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; path = Localizable.xcstrings; sourceTree = "<group>"; };
50153E1F250AFCB200525160 /* UpdateView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateView.swift; sourceTree = "<group>"; };
50153E21250DECA300525160 /* SecretListItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretListItemView.swift; sourceTree = "<group>"; };
5018F54E24064786002EB505 /* Notifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Notifier.swift; sourceTree = "<group>"; };
@ -228,6 +230,7 @@
508BF28D25B4F005009EFB7E /* InternetAccessPolicy.plist */,
50617D8F23FCE48E0099B055 /* Secretive.entitlements */,
506772C62424784600034DED /* Credits.rtf */,
500B93C22B478D8400E157DE /* Localizable.xcstrings */,
50617D8823FCE48E0099B055 /* Preview Content */,
);
path = Secretive;
@ -444,6 +447,7 @@
buildActionMask = 2147483647;
files = (
50617D8A23FCE48E0099B055 /* Preview Assets.xcassets in Resources */,
500B93C32B478D8400E157DE /* Localizable.xcstrings in Resources */,
50617D8723FCE48E0099B055 /* Assets.xcassets in Resources */,
506772C72424784600034DED /* Credits.rtf in Resources */,
508BF28E25B4F005009EFB7E /* InternetAccessPolicy.plist in Resources */,

View File

@ -0,0 +1,154 @@
{
"sourceLanguage" : "en",
"strings" : {
"\n" : {
},
"\n\n" : {
},
"✓" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "✓"
}
}
}
},
"agent_running_notice_detail_body" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "SecretAgent is a process that runs in the background to sign requests, so you don't need to keep Secretive open all the time.\\n\\n**You can close Secretive, and everything will still keep working.**"
}
}
}
},
"agent_running_notice_detail_title" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "SecretAgent is Running"
}
}
}
},
"agent_running_notice_title" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Agent is Running"
}
}
}
},
"app_not_in_applications_notice_detail_body" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Secretive needs to be in your Applications folder to work properly. Please move it and relaunch."
}
}
}
},
"app_not_in_applications_notice_title" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Secretive Is Not in Applications Folder"
}
}
}
},
"Authentication not required when Mac is unlocked" : {
},
"Confirm Name:" : {
},
"Create a new one by clicking here." : {
},
"Create a New Secret" : {
},
"Delete" : {
},
"Delete %@?" : {
},
"If you delete %@, you will not be able to recover it. Type \"%@\" to confirm." : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "If you delete %1$@, you will not be able to recover it. Type \"%2$@\" to confirm."
}
}
}
},
"Name:" : {
},
"No Secrets" : {
},
"No Secure Storage Available" : {
},
"Release Notes" : {
},
"Rename" : {
},
"Requires Authentication (Biometrics or Password) before each use" : {
},
"Secret Agent Is Not Running" : {
},
"Secretive" : {
},
"Secretive %@" : {
},
"Secretive supports EC256, EC384, RSA1024, and RSA2048 keys." : {
},
"Secretive wants to sign" : {
},
"Setup Secretive" : {
},
"This helper app is called **Secret Agent** and you may see it in Activity Manager from time to time." : {
},
"Touch ID Detail prompt.Detail two." : {
},
"Touch ID Prompt" : {
},
"Type your new name for \"%@\" below." : {
},
"Use your Smart Card's management tool to create a secret." : {
},
"Your Mac doesn't have a Secure Enclave, and there's not a compatible Smart Card inserted." : {
}
},
"version" : "1.0"
}

View File

@ -138,7 +138,7 @@ extension ContentView {
showingAgentInfo = true
}, label: {
HStack {
Text("Agent is Running")
Text("agent_running_notice_title")
.font(.headline)
.foregroundColor(colorScheme == .light ? Color(white: 0.3) : .white)
Circle()
@ -149,10 +149,10 @@ extension ContentView {
.buttonStyle(ToolbarButtonStyle(lightColor: .black.opacity(0.05), darkColor: .white.opacity(0.05)))
.popover(isPresented: $showingAgentInfo, attachmentAnchor: attachmentAnchor, arrowEdge: .bottom) {
VStack {
Text("SecretAgent is Running")
Text("agent_running_notice_detail_title")
.font(.title)
.padding(5)
Text("SecretAgent is a process that runs in the background to sign requests, so you don't need to keep Secretive open all the time.\n\n**You can close Secretive, and everything will still keep working.**")
Text("agent_running_notice_detail_body")
.frame(width: 300)
}
.padding()
@ -166,7 +166,7 @@ extension ContentView {
showingAppPathNotice = true
}, label: {
Group {
Text("Secretive Is Not in Applications Folder")
Text("app_not_in_applications_notice_title")
}
.font(.headline)
.foregroundColor(.white)
@ -178,7 +178,7 @@ extension ContentView {
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 64)
Text("Secretive needs to be in your Applications folder to work properly. Please move it and relaunch.")
Text("app_not_in_applications_notice_detail_body")
.frame(maxWidth: 300)
}
.padding()

View File

@ -150,7 +150,7 @@ struct SecretAgentSetupView: View {
bodyText: "Secretive needs to set up a helper app to work properly. It will sign requests from SSH clients in the background, so you don't need to keep the main Secretive app open.",
buttonTitle: "Install",
buttonAction: install) {
(Text("This helper app is called ") + Text("Secret Agent").bold().underline() + Text(" and you may see it in Activity Manager from time to time."))
(Text("This helper app is called **Secret Agent** and you may see it in Activity Manager from time to time."))
.multilineTextAlignment(.center)
}
}