From 36d64312c8b0944c337c37035155ee4cc7b92693 Mon Sep 17 00:00:00 2001 From: Arushi Kesarwani Date: Mon, 18 Mar 2024 11:54:03 -0700 Subject: [PATCH] Refactor ReactDelegate to provide DevSupportManager (#43520) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43520 Refactor ReactDelegate to have a private `getDevSupportManager()` that can also be re-used by `reload()` This method conditionally provides the correct DevSupportManager in cases of Bridge & Bridgeless Changelog: [Internal] internal Reviewed By: cortinico Differential Revision: D54967130 fbshipit-source-id: 37d585de33a50b98d01803d3080c5693a8c494b9 --- .../com/facebook/react/ReactDelegate.java | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java index e5d2713ca4d..b59be2d17dd 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java @@ -82,6 +82,20 @@ public class ReactDelegate { mReactNativeHost = reactNativeHost; } + @Nullable + private DevSupportManager getDevSupportManager() { + if (ReactFeatureFlags.enableBridgelessArchitecture + && mReactHost != null + && mReactHost.getDevSupportManager() != null) { + return mReactHost.getDevSupportManager(); + } else if (getReactNativeHost().hasInstance() + && getReactNativeHost().getUseDeveloperSupport()) { + return getReactNativeHost().getReactInstanceManager().getDevSupportManager(); + } else { + return null; + } + } + public void onHostResume() { if (ReactFeatureFlags.enableBridgelessArchitecture) { if (mActivity instanceof DefaultHardwareBackBtnHandler) { @@ -261,15 +275,8 @@ public class ReactDelegate { * application. */ public boolean shouldShowDevMenuOrReload(int keyCode, KeyEvent event) { - DevSupportManager devSupportManager = null; - if (ReactFeatureFlags.enableBridgelessArchitecture - && mReactHost != null - && mReactHost.getDevSupportManager() != null) { - devSupportManager = mReactHost.getDevSupportManager(); - } else if (getReactNativeHost().hasInstance() - && getReactNativeHost().getUseDeveloperSupport()) { - devSupportManager = getReactNativeHost().getReactInstanceManager().getDevSupportManager(); - } else { + DevSupportManager devSupportManager = getDevSupportManager(); + if (devSupportManager == null) { return false; }