Skip to content
This repository was archived by the owner on Mar 7, 2026. It is now read-only.

Commit 10f79c7

Browse files
authored
Update CertificateView.swift
1 parent cec38de commit 10f79c7

File tree

1 file changed

+35
-20
lines changed

1 file changed

+35
-20
lines changed

Sources/prostore/views/CertificateView.swift

Lines changed: 35 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -272,29 +272,43 @@ private func reloadCertificatesAndEnsureSelection() {
272272
let mp = try Data(contentsOf: mpURL)
273273
let pw = (try? String(contentsOf: pwURL, encoding: .utf8))?.trimmingCharacters(in: .whitespacesAndNewlines) ?? ""
274274

275-
let parsed = try await CertChecker.checkCert(
276-
mobileProvision: mp,
277-
mobileProvisionFilename: "profile.mobileprovision",
278-
p12: p12,
279-
p12Filename: "certificate.p12",
280-
password: pw
281-
)
282-
283-
let status = (parsed["certificate"] as? [String: String])?["status"] ??
284-
(parsed["certificate_matching_status"] as? String) ??
285-
"Unknown"
286-
287-
await MainActor.run {
288-
certStatuses[certCopy.folderName] = status
275+
// 1) show cached immediately (if available)
276+
if let cached = CertChecker.cachedResult(p12Data: p12, mpData: mp, password: pw) {
277+
let status = (cached["certificate"] as? [String: String])?["status"]
278+
?? (cached["certificate_matching_status"] as? String)
279+
?? (cached["overall_status"] as? String)
280+
?? "Unknown"
281+
await MainActor.run {
282+
certStatuses[certCopy.folderName] = status + " (cached)"
283+
}
284+
}
285+
286+
// 2) then fetch fresh and update (awaits network)
287+
do {
288+
let parsed = try await CertChecker.checkCert(
289+
mobileProvision: mp,
290+
mobileProvisionFilename: "profile.mobileprovision",
291+
p12: p12,
292+
p12Filename: "certificate.p12",
293+
password: pw
294+
)
295+
296+
let status = (parsed["certificate"] as? [String: String])?["status"]
297+
?? (parsed["certificate_matching_status"] as? String)
298+
?? (parsed["overall_status"] as? String)
299+
?? "Unknown"
300+
301+
await MainActor.run {
302+
certStatuses[certCopy.folderName] = status
303+
}
304+
} catch {
305+
await MainActor.run {
306+
certStatuses[certCopy.folderName] = "Check Error"
307+
}
289308
}
290-
} catch {
291-
await MainActor.run {
292-
certStatuses[certCopy.folderName] = "Check Error"
293-
}
294309
}
295-
}
310+
}
296311
}
297-
}
298312
private func loadExpiries() {
299313
for cert in customCertificates {
300314
let folderName = cert.folderName
@@ -524,3 +538,4 @@ struct AddCertificateView: View {
524538
}
525539

526540

541+

0 commit comments

Comments
 (0)