From 47779de4249ff50c521ccc7a0516046d7f94780d Mon Sep 17 00:00:00 2001 From: Joshua Gross Date: Fri, 5 Mar 2021 18:36:25 -0800 Subject: [PATCH] Make sure that FrescoModule is subscribed to LifecycleEventListener events, and unsubscribes in onCatalystInstanceDestroy Summary: If modules are *not* eagerly init'd and expect lifecycle events, make sure (1) onHostResume is called immediately it it's currently active and (2) that listeners are removed in onCatalystInstanceDestroy. Changelog: [Internal] Reviewed By: mdvacca Differential Revision: D26859161 fbshipit-source-id: 654c055c53c0e420c6d9f2b0135055aec34269c9 --- .../facebook/react/modules/fresco/FrescoModule.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.java index ac70eff2adc..145f1a28e8c 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.java @@ -105,7 +105,7 @@ public class FrescoModule extends ReactContextBaseJavaModule @Override public void initialize() { super.initialize(); - getReactApplicationContext().addLifecycleEventListener(this); + getReactApplicationContext().addLifecycleEventListenerAndCheckState(this); if (!hasBeenInitialized()) { if (mConfig == null) { mConfig = getDefaultConfig(getReactApplicationContext()); @@ -194,4 +194,14 @@ public class FrescoModule extends ReactContextBaseJavaModule } return mImagePipeline; } + + @Override + public void onCatalystInstanceDestroy() { + super.onCatalystInstanceDestroy(); + + ReactApplicationContext applicationContext = getReactApplicationContextIfActiveOrWarn(); + if (applicationContext != null) { + applicationContext.removeLifecycleEventListener(this); + } + } }