From 66febd1e3486819f7cec84d1b239ba3f5324001b Mon Sep 17 00:00:00 2001 From: Joshua Gross Date: Fri, 5 Mar 2021 18:36:25 -0800 Subject: [PATCH] Make sure that AccessibilityInfoModule 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: D26859159 fbshipit-source-id: 8e47cedd4b218a47b33d1209f3ede2fd1531015d --- .../accessibilityinfo/AccessibilityInfoModule.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/accessibilityinfo/AccessibilityInfoModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/accessibilityinfo/AccessibilityInfoModule.java index 85a2ac54f2e..3974b0d0605 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/accessibilityinfo/AccessibilityInfoModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/accessibilityinfo/AccessibilityInfoModule.java @@ -157,7 +157,7 @@ public class AccessibilityInfoModule extends NativeAccessibilityInfoSpec @Override public void initialize() { - getReactApplicationContext().addLifecycleEventListener(this); + getReactApplicationContext().addLifecycleEventListenerAndCheckState(this); updateAndSendTouchExplorationChangeEvent(mAccessibilityManager.isTouchExplorationEnabled()); updateAndSendReduceMotionChangeEvent(); } @@ -165,7 +165,11 @@ public class AccessibilityInfoModule extends NativeAccessibilityInfoSpec @Override public void onCatalystInstanceDestroy() { super.onCatalystInstanceDestroy(); - getReactApplicationContext().removeLifecycleEventListener(this); + + ReactApplicationContext applicationContext = getReactApplicationContextIfActiveOrWarn(); + if (applicationContext != null) { + applicationContext.removeLifecycleEventListener(this); + } } @Override