diff --git a/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevInternalSettings.java b/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevInternalSettings.java
index 9474e2396d4..a653763be6d 100644
--- a/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevInternalSettings.java
+++ b/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevInternalSettings.java
@@ -36,6 +36,7 @@ public class DevInternalSettings
private static final String PREFS_INSPECTOR_DEBUG_KEY = "inspector_debug";
private static final String PREFS_HOT_MODULE_REPLACEMENT_KEY = "hot_module_replacement";
private static final String PREFS_REMOTE_JS_DEBUG_KEY = "remote_js_debug";
+ private static final String PREFS_SAMPLING_PROFILER_ENABLED = "sampling_profiler_enabled";
private final SharedPreferences mPreferences;
private final Listener mListener;
diff --git a/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerImpl.java b/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerImpl.java
index 9d101741a48..0fea0516b9f 100644
--- a/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerImpl.java
+++ b/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerImpl.java
@@ -95,6 +95,9 @@ public class DevSupportManagerImpl
private static final int JSEXCEPTION_ERROR_COOKIE = -1;
private static final String JS_BUNDLE_FILE_NAME = "ReactNativeDevBundle.js";
private static final String RELOAD_APP_ACTION_SUFFIX = ".RELOAD_APP_ACTION";
+ private static final String ENABLE_SAMPLING_PROFILER = ".ENABLE_SAMPLING_PROFILER";
+ private static final String DISABLE_SAMPLING_PROFILER = ".DISABLE_SAMPLING_PROFILER";
+ private boolean mIsSamplingProfilerEnabled = false;
private enum ErrorType {
JS,
@@ -543,6 +546,24 @@ public class DevSupportManagerImpl
}
}
});
+ options.put(
+ mIsSamplingProfilerEnabled
+ ? mApplicationContext.getString(R.string.catalyst_sample_profiler_disable)
+ : mApplicationContext.getString(R.string.catalyst_sample_profiler_enable),
+ new DevOptionHandler() {
+ @Override
+ public void onOptionSelected() {
+ Intent intent =
+ new Intent(
+ mApplicationContext.getPackageName()
+ + (mIsSamplingProfilerEnabled
+ ? DISABLE_SAMPLING_PROFILER
+ : ENABLE_SAMPLING_PROFILER));
+ mApplicationContext.sendBroadcast(intent);
+ mIsSamplingProfilerEnabled = !mIsSamplingProfilerEnabled;
+ }
+ });
+
options.put(
mDevSettings.isFpsDebugEnabled()
? mApplicationContext.getString(R.string.catalyst_perf_monitor_stop)
diff --git a/ReactAndroid/src/main/res/devsupport/values/strings.xml b/ReactAndroid/src/main/res/devsupport/values/strings.xml
index 750b8acffed..82db0a9b7ec 100644
--- a/ReactAndroid/src/main/res/devsupport/values/strings.xml
+++ b/ReactAndroid/src/main/res/devsupport/values/strings.xml
@@ -26,4 +26,6 @@
Copy\n
Report
Loading from %1$s…
+ Disable Sampling Profiler
+ Enable Sampling Profiler