From 4f38973b06d9f56f2302fd5db02133c4a978bf24 Mon Sep 17 00:00:00 2001 From: Joshua Gross Date: Fri, 5 Mar 2021 18:36:25 -0800 Subject: [PATCH] Make sure that DeviceInfoModule 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: D26859157 fbshipit-source-id: 754a5b4ede8defa8b7742cc42e09cc7cbfe4e18d --- .../react/modules/deviceinfo/DeviceInfoModule.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/DeviceInfoModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/DeviceInfoModule.java index 2de4acce4ef..470322b9aca 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/DeviceInfoModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/DeviceInfoModule.java @@ -105,4 +105,14 @@ public class DeviceInfoModule extends NativeDeviceInfoSpec implements LifecycleE @Override public void invalidate() {} + + @Override + public void onCatalystInstanceDestroy() { + super.onCatalystInstanceDestroy(); + + ReactApplicationContext applicationContext = getReactApplicationContextIfActiveOrWarn(); + if (applicationContext != null) { + applicationContext.removeLifecycleEventListener(this); + } + } }