From 61326ed63a5a19a86bdc63efd3bbdec9c51db85d Mon Sep 17 00:00:00 2001 From: Stefan Ceriu Date: Fri, 1 Sep 2023 13:35:27 +0300 Subject: [PATCH] Be more lenient with fatalErrors coming out of equal transitions, caused by asynchronicity on the UI layer --- ElementX/Sources/Application/AppCoordinator.swift | 6 +++++- ElementX/Sources/FlowCoordinators/RoomFlowCoordinator.swift | 6 +++++- .../FlowCoordinators/UserSessionFlowCoordinator.swift | 6 +++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/ElementX/Sources/Application/AppCoordinator.swift b/ElementX/Sources/Application/AppCoordinator.swift index d9a882a95..591c11d7d 100644 --- a/ElementX/Sources/Application/AppCoordinator.swift +++ b/ElementX/Sources/Application/AppCoordinator.swift @@ -277,7 +277,11 @@ class AppCoordinator: AppCoordinatorProtocol, AuthenticationCoordinatorDelegate, } stateMachine.addErrorHandler { context in - fatalError("Failed transition with context: \(context)") + if context.fromState == context.toState { + MXLog.error("Failed transition from equal states: \(context.fromState)") + } else { + fatalError("Failed transition with context: \(context)") + } } } diff --git a/ElementX/Sources/FlowCoordinators/RoomFlowCoordinator.swift b/ElementX/Sources/FlowCoordinators/RoomFlowCoordinator.swift index dbf87b58d..bc30116af 100644 --- a/ElementX/Sources/FlowCoordinators/RoomFlowCoordinator.swift +++ b/ElementX/Sources/FlowCoordinators/RoomFlowCoordinator.swift @@ -254,7 +254,11 @@ class RoomFlowCoordinator: FlowCoordinatorProtocol { } stateMachine.addErrorHandler { context in - fatalError("Failed transition with context: \(context)") + if context.fromState == context.toState { + MXLog.error("Failed transition from equal states: \(context.fromState)") + } else { + fatalError("Failed transition with context: \(context)") + } } } diff --git a/ElementX/Sources/FlowCoordinators/UserSessionFlowCoordinator.swift b/ElementX/Sources/FlowCoordinators/UserSessionFlowCoordinator.swift index a1f073ade..19fb2111a 100644 --- a/ElementX/Sources/FlowCoordinators/UserSessionFlowCoordinator.swift +++ b/ElementX/Sources/FlowCoordinators/UserSessionFlowCoordinator.swift @@ -209,7 +209,11 @@ class UserSessionFlowCoordinator: FlowCoordinatorProtocol { } stateMachine.addErrorHandler { context in - fatalError("Failed transition with context: \(context)") + if context.fromState == context.toState { + MXLog.error("Failed transition from equal states: \(context.fromState)") + } else { + fatalError("Failed transition with context: \(context)") + } } }