Quit after delay

This commit is contained in:
Christoph Hagen 2023-12-31 15:24:20 +01:00
parent e4f93d94a9
commit 03735d9e72
2 changed files with 8 additions and 9 deletions

View File

@ -41,7 +41,7 @@ struct ContentView: View {
.aspectRatio(contentMode: .fit)
.fontWeight(.ultraLight)
.padding()
.onTapGesture { unlock(quit: true) }
.onTapGesture { coordinator.startUnlock() }
if coordinator.isPerformingRequest {
ProgressView()
.progressViewStyle(CircularProgressViewStyle())
@ -59,14 +59,10 @@ struct ContentView: View {
guard launched else {
return
}
unlock(quit: true)
coordinator.startUnlock(quitAfterSuccess: true)
didLaunchFromComplication = false
}
}
private func unlock(quit: Bool) {
coordinator.startUnlock(quitAfterSuccess: quit)
}
}
#Preview {

View File

@ -65,13 +65,16 @@ final class RequestCoordinator: ObservableObject {
isPerformingRequest = true
Task {
let finalResult = await performFullChallengeResponse()
if finalResult == .unlocked, quitAfterSuccess {
exit(EXIT_SUCCESS)
}
DispatchQueue.main.async {
self.state = finalResult
self.isPerformingRequest = false
}
if finalResult == .unlocked, quitAfterSuccess {
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(3)) {
exit(EXIT_SUCCESS)
}
}
scheduleReturnToReadyState()
}
}