diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.kt index f6f4faa3bf6..c29044beef6 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.kt @@ -398,6 +398,24 @@ public abstract class DevSupportManagerBase( } } + if (ReactNativeFeatureFlags.perfMonitorV2Enabled()) { + val isConnected = isPackagerConnected + + val togglePerfMonitorItemString = + if (perfMonitorOverlayManager?.isEnabled == true) + applicationContext.getString(R.string.catalyst_performance_disable) + else applicationContext.getString(R.string.catalyst_performance_enable) + + if (!isConnected) { + disabledItemKeys.add(togglePerfMonitorItemString) + } + + options[togglePerfMonitorItemString] = + if (perfMonitorOverlayManager?.isEnabled == true) + DevOptionHandler { perfMonitorOverlayManager?.disable() } + else DevOptionHandler { perfMonitorOverlayManager?.enable() } + } + options[applicationContext.getString(R.string.catalyst_change_bundle_location)] = DevOptionHandler { val context = reactInstanceDevHelper.currentActivity diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayManager.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayManager.kt index 795fd1e2f13..f093c0b92df 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayManager.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayManager.kt @@ -15,6 +15,11 @@ internal class PerfMonitorOverlayManager( private val onRequestOpenDevTools: () -> Unit, ) : PerfMonitorUpdateListener { private var enabled: Boolean = false + + /** Whether the Perf Monitor overlay is currently enabled. */ + val isEnabled: Boolean + get() = enabled + private var view: PerfMonitorOverlayView? = null private var tracingState: TracingState = TracingState.ENABLEDINCDPMODE diff --git a/packages/react-native/ReactAndroid/src/main/res/devsupport/values/strings.xml b/packages/react-native/ReactAndroid/src/main/res/devsupport/values/strings.xml index 19e9c21abc7..29a8b8d1dea 100644 --- a/packages/react-native/ReactAndroid/src/main/res/devsupport/values/strings.xml +++ b/packages/react-native/ReactAndroid/src/main/res/devsupport/values/strings.xml @@ -13,6 +13,8 @@ Finish performance trace Start performance trace Performance tracing disabled + Show performance overlay + Hide performance overlay Connect to the bundler to debug JavaScript Connecting to debugger... Failed to connect to debugger!