From 1f918f10c5eee29d9fe94efc0402fab2ab32fa94 Mon Sep 17 00:00:00 2001 From: EricKuck Date: Thu, 3 Nov 2022 15:29:15 -0400 Subject: [PATCH] Fix ControllerLifecycleOwner crash when onContextAvailable was never called --- .../conductor/archlifecycle/ControllerLifecycleOwner.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/conductor-modules/arch-components-lifecycle/src/main/java/com/bluelinelabs/conductor/archlifecycle/ControllerLifecycleOwner.java b/conductor-modules/arch-components-lifecycle/src/main/java/com/bluelinelabs/conductor/archlifecycle/ControllerLifecycleOwner.java index 980cfb0..d5d6a39 100644 --- a/conductor-modules/arch-components-lifecycle/src/main/java/com/bluelinelabs/conductor/archlifecycle/ControllerLifecycleOwner.java +++ b/conductor-modules/arch-components-lifecycle/src/main/java/com/bluelinelabs/conductor/archlifecycle/ControllerLifecycleOwner.java @@ -51,7 +51,10 @@ public class ControllerLifecycleOwner implements LifecycleOwner { @Override public void preDestroy(@NonNull Controller controller) { - lifecycleRegistry.handleLifecycleEvent(Event.ON_DESTROY); // --> State.DESTROYED; + // Only act on Controllers that have had at least the onContextAvailable call made on them. + if (lifecycleRegistry.getCurrentState() != Lifecycle.State.INITIALIZED) { + lifecycleRegistry.handleLifecycleEvent(Event.ON_DESTROY); // --> State.DESTROYED; + } } });