Skip to content

Commit 218d2f6

Browse files
sbuggayfacebook-github-bot
authored andcommitted
PerfMonitor - Add show/hide to dev menu (#53958)
Summary: Pull Request resolved: #53958 Adds a dev menu option to enable/disable the overlay, in case devs want to screenshot/record without disabling it at buildtime. Changelog: [Internal] Reviewed By: huntie Differential Revision: D83293591 fbshipit-source-id: 3564b83a279db296d1cd22a8e8a83876cc705dbd
1 parent 456e01b commit 218d2f6

File tree

3 files changed

+25
-0
lines changed

3 files changed

+25
-0
lines changed

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.kt

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -398,6 +398,24 @@ public abstract class DevSupportManagerBase(
398398
}
399399
}
400400

401+
if (ReactNativeFeatureFlags.perfMonitorV2Enabled()) {
402+
val isConnected = isPackagerConnected
403+
404+
val togglePerfMonitorItemString =
405+
if (perfMonitorOverlayManager?.isEnabled == true)
406+
applicationContext.getString(R.string.catalyst_performance_disable)
407+
else applicationContext.getString(R.string.catalyst_performance_enable)
408+
409+
if (!isConnected) {
410+
disabledItemKeys.add(togglePerfMonitorItemString)
411+
}
412+
413+
options[togglePerfMonitorItemString] =
414+
if (perfMonitorOverlayManager?.isEnabled == true)
415+
DevOptionHandler { perfMonitorOverlayManager?.disable() }
416+
else DevOptionHandler { perfMonitorOverlayManager?.enable() }
417+
}
418+
401419
options[applicationContext.getString(R.string.catalyst_change_bundle_location)] =
402420
DevOptionHandler {
403421
val context = reactInstanceDevHelper.currentActivity

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayManager.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ internal class PerfMonitorOverlayManager(
1515
private val onRequestOpenDevTools: () -> Unit,
1616
) : PerfMonitorUpdateListener {
1717
private var enabled: Boolean = false
18+
19+
/** Whether the Perf Monitor overlay is currently enabled. */
20+
val isEnabled: Boolean
21+
get() = enabled
22+
1823
private var view: PerfMonitorOverlayView? = null
1924
private var tracingState: TracingState = TracingState.ENABLEDINCDPMODE
2025

packages/react-native/ReactAndroid/src/main/res/devsupport/values/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
<string name="catalyst_performance_background" project="catalyst" translatable="false">Finish performance trace</string>
1414
<string name="catalyst_performance_disabled" project="catalyst" translatable="false">Start performance trace</string>
1515
<string name="catalyst_performance_cdp" project="catalyst" translatable="false">Performance tracing disabled</string>
16+
<string name="catalyst_performance_enable" project="catalyst" translatable="false">Show performance overlay</string>
17+
<string name="catalyst_performance_disable" project="catalyst" translatable="false">Hide performance overlay</string>
1618
<string name="catalyst_debug_open_disabled" project="catalyst" translatable="false">Connect to the bundler to debug JavaScript</string>
1719
<string name="catalyst_debug_connecting" project="catalyst" translatable="false">Connecting to debugger...</string>
1820
<string name="catalyst_debug_error" project="catalyst" translatable="false">Failed to connect to debugger!</string>

0 commit comments

Comments
 (0)