From 4e44fda261d49640e6f7224ff85c34f46f38d973 Mon Sep 17 00:00:00 2001 From: David Vacca Date: Tue, 1 Aug 2023 08:55:40 -0700 Subject: [PATCH] Add reload to ReactHostInterface (#38698) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/38698 Add reload to ReactHostInterface changelog: [internal] internal Reviewed By: rshest Differential Revision: D47915444 fbshipit-source-id: f423b7daf2f086370c80b3135c2139315e32c9f5 --- .../com/facebook/react/bridgeless/ReactHost.java | 3 ++- .../facebook/react/interfaces/ReactHostInterface.kt | 12 +++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridgeless/ReactHost.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridgeless/ReactHost.java index 54463778e1a..91746f68675 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridgeless/ReactHost.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridgeless/ReactHost.java @@ -427,7 +427,8 @@ public class ReactHost implements ReactHostInterface { * tap on reload button) * @return A task that completes when React Native reloads */ - public Task reload(String reason) { + @Override + public TaskInterface reload(String reason) { final String method = "reload()"; if (ReactFeatureFlags.enableBridgelessArchitectureNewCreateReloadDestroy) { return Task.call( diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/interfaces/ReactHostInterface.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/interfaces/ReactHostInterface.kt index 3b01bf85f76..94a7def5dbb 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/interfaces/ReactHostInterface.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/interfaces/ReactHostInterface.kt @@ -82,5 +82,15 @@ interface ReactHostInterface { * errors occur during initialization, and will be cancelled if ReactHost.destroy() is called * before it completes. */ - fun start(): TaskInterface? + fun start(): TaskInterface + + /** + * Entrypoint to reload the ReactInstance. If the ReactInstance is destroying, will wait until + * destroy is finished, before reloading. + * + * @param reason [String] describing why ReactHost is being reloaded (e.g. js error, user tap on + * reload button) + * @return A task that completes when React Native reloads + */ + fun reload(reason: String): TaskInterface }