From 80e1dd70b0b27195b9b71ea531728eef9799caa9 Mon Sep 17 00:00:00 2001 From: Ramanpreet Nara Date: Tue, 25 Jun 2024 07:13:39 -0700 Subject: [PATCH] ReactHost: Make ReactInstanceEventListener APIs public Summary: The ReactInstanceManager allows applications to register a ReactInstanceEventListener with itself. Exposing a similar functionality to ReactHost. So, applications can do the same in bridgeless. Changelog: [Android][Added] - Make ReactInstanceEventListener available on ReactHost Reviewed By: christophpurrer Differential Revision: D58890092 fbshipit-source-id: c18ee8a45d274c5cba859c6a5b4049904f1d308a --- packages/react-native/ReactAndroid/api/ReactAndroid.api | 2 ++ .../src/main/java/com/facebook/react/ReactHost.kt | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index 9f750344ea5..7b2dd863b50 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -208,6 +208,7 @@ public class com/facebook/react/ReactFragment$Builder { public abstract interface class com/facebook/react/ReactHost { public abstract fun addBeforeDestroyListener (Lkotlin/jvm/functions/Function0;)V + public abstract fun addReactInstanceEventListener (Lcom/facebook/react/ReactInstanceEventListener;)V public abstract fun createSurface (Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)Lcom/facebook/react/interfaces/fabric/ReactSurface; public abstract fun destroy (Ljava/lang/String;Ljava/lang/Exception;)Lcom/facebook/react/interfaces/TaskInterface; public abstract fun getCurrentReactContext ()Lcom/facebook/react/bridge/ReactContext; @@ -230,6 +231,7 @@ public abstract interface class com/facebook/react/ReactHost { public abstract fun onWindowFocusChange (Z)V public abstract fun reload (Ljava/lang/String;)Lcom/facebook/react/interfaces/TaskInterface; public abstract fun removeBeforeDestroyListener (Lkotlin/jvm/functions/Function0;)V + public abstract fun removeReactInstanceEventListener (Lcom/facebook/react/ReactInstanceEventListener;)V public abstract fun setJsEngineResolutionAlgorithm (Lcom/facebook/react/JSEngineResolutionAlgorithm;)V public abstract fun start ()Lcom/facebook/react/interfaces/TaskInterface; } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactHost.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactHost.kt index d4059bc7dc9..377b22b768a 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactHost.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactHost.kt @@ -148,4 +148,10 @@ public interface ReactHost { public fun addBeforeDestroyListener(onBeforeDestroy: () -> Unit) public fun removeBeforeDestroyListener(onBeforeDestroy: () -> Unit) + + /** Add a listener to be notified of ReactInstance events. */ + public fun addReactInstanceEventListener(listener: ReactInstanceEventListener) + + /** Remove a listener previously added with {@link #addReactInstanceEventListener}. */ + public fun removeReactInstanceEventListener(listener: ReactInstanceEventListener) }