diff --git a/Mail/Views/LockedAppView.swift b/Mail/Views/LockedAppView.swift index 5e9ac6c41..9b8844224 100644 --- a/Mail/Views/LockedAppView.swift +++ b/Mail/Views/LockedAppView.swift @@ -27,6 +27,8 @@ struct LockedAppView: View { @EnvironmentObject var navigationState: RootViewState + @State private var isEvaluatingPolicy = false + var body: some View { ZStack { VStack(spacing: UIPadding.medium) { @@ -49,6 +51,7 @@ struct LockedAppView: View { .buttonStyle(.ikPlain) .controlSize(.large) .ikButtonFullWidth(true) + .ikButtonLoading(isEvaluatingPolicy) } .padding(.top, UIPadding.onBoardingLogoTop) .padding(.bottom, value: .large) @@ -61,12 +64,17 @@ struct LockedAppView: View { } private func unlockApp() { + guard !isEvaluatingPolicy else { return } + Task { + isEvaluatingPolicy = true if await (try? appLockHelper.evaluatePolicy(reason: MailResourcesStrings.Localizable.lockAppTitle)) == true { appLockHelper.setTime() Task { navigationState.transitionToRootViewDestination(.mainView) } + } else { + isEvaluatingPolicy = false } } } diff --git a/MailCoreUI/Utils/SceneLifecycleModifier.swift b/MailCoreUI/Utils/SceneLifecycleModifier.swift index a33af5785..b69206358 100644 --- a/MailCoreUI/Utils/SceneLifecycleModifier.swift +++ b/MailCoreUI/Utils/SceneLifecycleModifier.swift @@ -1,4 +1,3 @@ -// /* Infomaniak Mail - iOS App Copyright (C) 2024 Infomaniak Network SA