diff --git a/packages/react-native/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js b/packages/react-native/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js deleted file mode 100644 index f5399c48e19574..00000000000000 --- a/packages/react-native/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +++ /dev/null @@ -1,35 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @flow strict-local - * @format - */ - -import DevSettings from '../Utilities/DevSettings'; -import NativeDevToolsSettingsManager from './NativeDevToolsSettingsManager'; - -module.exports = { - setConsolePatchSettings(newSettings: string) { - NativeDevToolsSettingsManager?.setConsolePatchSettings(newSettings); - }, - getConsolePatchSettings(): ?string { - return NativeDevToolsSettingsManager?.getConsolePatchSettings(); - }, - setProfilingSettings(newSettings: string) { - if (NativeDevToolsSettingsManager?.setProfilingSettings != null) { - NativeDevToolsSettingsManager.setProfilingSettings(newSettings); - } - }, - getProfilingSettings(): ?string { - if (NativeDevToolsSettingsManager?.getProfilingSettings != null) { - return NativeDevToolsSettingsManager.getProfilingSettings(); - } - return null; - }, - reload(): void { - DevSettings?.reload(); - }, -}; diff --git a/packages/react-native/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts b/packages/react-native/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts deleted file mode 100644 index cbb59711fa5b2b..00000000000000 --- a/packages/react-native/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @flow strict - * @format - */ - -export interface DevToolsSettingsManagerStatic { - reload(): void; - setConsolePatchSettings(newSettings: string): void; - getConsolePatchSettings(): string | null; - setProfilingSettings(newSettings: string): void; - getProfilingSettings(): string | null; -} - -export const DevToolsSettingsManager: DevToolsSettingsManagerStatic; -export type DevToolsSettingsManager = DevToolsSettingsManagerStatic; diff --git a/packages/react-native/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js b/packages/react-native/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js deleted file mode 100644 index 534152bff758d2..00000000000000 --- a/packages/react-native/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +++ /dev/null @@ -1,49 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @flow strict-local - * @format - */ - -import Settings from '../Settings/Settings'; -import DevSettings from '../Utilities/DevSettings'; - -const CONSOLE_PATCH_SETTINGS_KEY = 'ReactDevTools::ConsolePatchSettings'; -const PROFILING_SETTINGS_KEY = 'ReactDevTools::ProfilingSettings'; - -const DevToolsSettingsManager = { - setConsolePatchSettings(newConsolePatchSettings: string): void { - Settings.set({ - [CONSOLE_PATCH_SETTINGS_KEY]: newConsolePatchSettings, - }); - }, - getConsolePatchSettings(): ?string { - const value = Settings.get(CONSOLE_PATCH_SETTINGS_KEY); - if (typeof value === 'string') { - return value; - } - return null; - }, - - setProfilingSettings(newProfilingSettings: string): void { - Settings.set({ - [PROFILING_SETTINGS_KEY]: newProfilingSettings, - }); - }, - getProfilingSettings(): ?string { - const value = Settings.get(PROFILING_SETTINGS_KEY); - if (typeof value === 'string') { - return value; - } - return null; - }, - - reload(): void { - DevSettings?.reload(); - }, -}; - -module.exports = DevToolsSettingsManager; diff --git a/packages/react-native/Libraries/DevToolsSettings/DevToolsSettingsManager.js.flow b/packages/react-native/Libraries/DevToolsSettings/DevToolsSettingsManager.js.flow deleted file mode 100644 index 0650524eb35b73..00000000000000 --- a/packages/react-native/Libraries/DevToolsSettings/DevToolsSettingsManager.js.flow +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @flow strict-local - * @format - */ - -declare const DevToolsSettingsManager: { - setConsolePatchSettings(newConsolePatchSettings: string): void, - getConsolePatchSettings(): ?string, - setProfilingSettings(newProfilingSettings: string): void, - getProfilingSettings(): ?string, - reload(): void, -}; - -module.exports = DevToolsSettingsManager; diff --git a/packages/react-native/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js b/packages/react-native/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js deleted file mode 100644 index ad27f81296571f..00000000000000 --- a/packages/react-native/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @flow strict - * @format - */ - -export * from '../../src/private/specs/modules/NativeDevToolsSettingsManager'; -import NativeDevToolsSettingsManager from '../../src/private/specs/modules/NativeDevToolsSettingsManager'; -export default NativeDevToolsSettingsManager; diff --git a/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap b/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap index 8910afc37cacee..dedaf4c48f8e9d 100644 --- a/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap +++ b/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap @@ -4548,24 +4548,6 @@ declare export default typeof useSubscribeToDebuggingOverlayRegistry; " `; -exports[`public API should not change unintentionally Libraries/DevToolsSettings/DevToolsSettingsManager.js.flow 1`] = ` -"declare const DevToolsSettingsManager: { - setConsolePatchSettings(newConsolePatchSettings: string): void, - getConsolePatchSettings(): ?string, - setProfilingSettings(newProfilingSettings: string): void, - getProfilingSettings(): ?string, - reload(): void, -}; -declare module.exports: DevToolsSettingsManager; -" -`; - -exports[`public API should not change unintentionally Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js 1`] = ` -"export * from \\"../../src/private/specs/modules/NativeDevToolsSettingsManager\\"; -declare export default typeof NativeDevToolsSettingsManager; -" -`; - exports[`public API should not change unintentionally Libraries/EventEmitter/NativeEventEmitter.js 1`] = ` "interface NativeModule { addListener(eventType: string): void; diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index ec0187c019c11d..e46ce57521c7c5 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -3405,14 +3405,6 @@ public final class com/facebook/react/modules/devloading/DevLoadingModule : com/ public final class com/facebook/react/modules/devloading/DevLoadingModule$Companion { } -public final class com/facebook/react/modules/devtoolssettings/DevToolsSettingsManagerModule : com/facebook/fbreact/specs/NativeDevToolsSettingsManagerSpec { - public fun (Lcom/facebook/react/bridge/ReactApplicationContext;)V - public fun getConsolePatchSettings ()Ljava/lang/String; - public fun getProfilingSettings ()Ljava/lang/String; - public fun setConsolePatchSettings (Ljava/lang/String;)V - public fun setProfilingSettings (Ljava/lang/String;)V -} - public class com/facebook/react/modules/dialog/AlertFragment : androidx/fragment/app/DialogFragment, android/content/DialogInterface$OnClickListener { public fun ()V public fun (Lcom/facebook/react/modules/dialog/DialogModule$AlertFragmentListener;Landroid/os/Bundle;)V @@ -3670,6 +3662,12 @@ public final class com/facebook/react/modules/permissions/PermissionsModule : co public fun shouldShowRequestPermissionRationale (Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V } +public final class com/facebook/react/modules/reactdevtoolssettings/ReactDevToolsSettingsManagerModule : com/facebook/fbreact/specs/NativeReactDevToolsSettingsManagerSpec { + public fun (Lcom/facebook/react/bridge/ReactApplicationContext;)V + public fun getGlobalHookSettings ()Ljava/lang/String; + public fun setGlobalHookSettings (Ljava/lang/String;)V +} + public final class com/facebook/react/modules/share/ShareModule : com/facebook/fbreact/specs/NativeShareModuleSpec { public static final field Companion Lcom/facebook/react/modules/share/ShareModule$Companion; public static final field ERROR_INVALID_CONTENT Ljava/lang/String; diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/devtoolssettings/DevToolsSettingsManagerModule.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/devtoolssettings/DevToolsSettingsManagerModule.kt deleted file mode 100644 index 4b1305fe066dd9..00000000000000 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/devtoolssettings/DevToolsSettingsManagerModule.kt +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -package com.facebook.react.modules.devtoolssettings - -import android.content.Context -import android.content.SharedPreferences -import com.facebook.fbreact.specs.NativeDevToolsSettingsManagerSpec -import com.facebook.react.bridge.ReactApplicationContext -import com.facebook.react.module.annotations.ReactModule - -@ReactModule(name = NativeDevToolsSettingsManagerSpec.NAME) -public class DevToolsSettingsManagerModule(reactContext: ReactApplicationContext) : - NativeDevToolsSettingsManagerSpec(reactContext) { - - private val sharedPreferences: SharedPreferences = - reactContext.getSharedPreferences(SHARED_PREFERENCES_PREFIX, Context.MODE_PRIVATE) - - public override fun getConsolePatchSettings(): String? = - sharedPreferences.getString(KEY_CONSOLE_PATCH_SETTINGS, null) - - public override fun setConsolePatchSettings(newSettings: String?): Unit = - sharedPreferences.edit().putString(KEY_CONSOLE_PATCH_SETTINGS, newSettings).apply() - - public override fun getProfilingSettings(): String? = - sharedPreferences.getString(KEY_PROFILING_SETTINGS, null) - - public override fun setProfilingSettings(newSettings: String?): Unit = - sharedPreferences.edit().putString(KEY_PROFILING_SETTINGS, newSettings).apply() - - private companion object { - private const val SHARED_PREFERENCES_PREFIX = "ReactNative__DevToolsSettings" - private const val KEY_CONSOLE_PATCH_SETTINGS = "ConsolePatchSettings" - private const val KEY_PROFILING_SETTINGS = "ProfilingSettings" - } -} diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/reactdevtoolssettings/ReactDevToolsSettingsManagerModule.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/reactdevtoolssettings/ReactDevToolsSettingsManagerModule.kt new file mode 100644 index 00000000000000..fc4b24e4fd3732 --- /dev/null +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/reactdevtoolssettings/ReactDevToolsSettingsManagerModule.kt @@ -0,0 +1,33 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +package com.facebook.react.modules.reactdevtoolssettings + +import android.content.Context +import android.content.SharedPreferences +import com.facebook.fbreact.specs.NativeReactDevToolsSettingsManagerSpec +import com.facebook.react.bridge.ReactApplicationContext +import com.facebook.react.module.annotations.ReactModule + +@ReactModule(name = NativeReactDevToolsSettingsManagerSpec.NAME) +public class ReactDevToolsSettingsManagerModule(reactContext: ReactApplicationContext) : + NativeReactDevToolsSettingsManagerSpec(reactContext) { + + private val sharedPreferences: SharedPreferences = + reactContext.getSharedPreferences(SHARED_PREFERENCES_PREFIX, Context.MODE_PRIVATE) + + public override fun setGlobalHookSettings(settings: String): Unit = + sharedPreferences.edit().putString(KEY_HOOK_SETTINGS, settings).apply() + + public override fun getGlobalHookSettings(): String? = + sharedPreferences.getString(KEY_HOOK_SETTINGS, null) + + private companion object { + private const val SHARED_PREFERENCES_PREFIX = "ReactNative__DevToolsSettings" + private const val KEY_HOOK_SETTINGS = "HookSettings" + } +} diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java index 2546a181fc8770..73fd51287006e0 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java @@ -28,7 +28,6 @@ import com.facebook.react.modules.camera.ImageStoreManager; import com.facebook.react.modules.clipboard.ClipboardModule; import com.facebook.react.modules.devloading.DevLoadingModule; -import com.facebook.react.modules.devtoolssettings.DevToolsSettingsManagerModule; import com.facebook.react.modules.dialog.DialogModule; import com.facebook.react.modules.fresco.FrescoModule; import com.facebook.react.modules.i18nmanager.I18nManagerModule; @@ -36,6 +35,7 @@ import com.facebook.react.modules.intent.IntentModule; import com.facebook.react.modules.network.NetworkingModule; import com.facebook.react.modules.permissions.PermissionsModule; +import com.facebook.react.modules.reactdevtoolssettings.ReactDevToolsSettingsManagerModule; import com.facebook.react.modules.share.ShareModule; import com.facebook.react.modules.sound.SoundManagerModule; import com.facebook.react.modules.statusbar.StatusBarModule; @@ -153,8 +153,8 @@ public MainReactPackage(MainPackageConfig config) { return new VibrationModule(context); case WebSocketModule.NAME: return new WebSocketModule(context); - case DevToolsSettingsManagerModule.NAME: - return new DevToolsSettingsManagerModule(context); + case ReactDevToolsSettingsManagerModule.NAME: + return new ReactDevToolsSettingsManagerModule(context); default: return null; } @@ -300,7 +300,7 @@ private ReactModuleInfoProvider fallbackForMissingClass() { NativeAnimatedModule.class, NetworkingModule.class, PermissionsModule.class, - DevToolsSettingsManagerModule.class, + ReactDevToolsSettingsManagerModule.class, ShareModule.class, StatusBarModule.class, SoundManagerModule.class, diff --git a/packages/react-native/src/private/reactdevtools/ReactDevToolsSettingsManager.android.js b/packages/react-native/src/private/reactdevtools/ReactDevToolsSettingsManager.android.js new file mode 100644 index 00000000000000..e80d4c32b44203 --- /dev/null +++ b/packages/react-native/src/private/reactdevtools/ReactDevToolsSettingsManager.android.js @@ -0,0 +1,20 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow strict-local + * @format + */ + +import NativeReactDevToolsSettingsManager from '../specs/modules/NativeReactDevToolsSettingsManager'; + +module.exports = { + setGlobalHookSettings(settings: string) { + NativeReactDevToolsSettingsManager?.setGlobalHookSettings(settings); + }, + getGlobalHookSettings(): ?string { + return NativeReactDevToolsSettingsManager?.getGlobalHookSettings(); + }, +}; diff --git a/packages/react-native/src/private/reactdevtools/ReactDevToolsSettingsManager.ios.js b/packages/react-native/src/private/reactdevtools/ReactDevToolsSettingsManager.ios.js new file mode 100644 index 00000000000000..b5bc2a655587a1 --- /dev/null +++ b/packages/react-native/src/private/reactdevtools/ReactDevToolsSettingsManager.ios.js @@ -0,0 +1,30 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow strict-local + * @format + */ + +import Settings from '../../../Libraries/Settings/Settings'; + +const GLOBAL_HOOK_SETTINGS = 'ReactDevTools::HookSettings'; + +const ReactDevToolsSettingsManager = { + setGlobalHookSettings(settings: string): void { + Settings.set({ + [GLOBAL_HOOK_SETTINGS]: settings, + }); + }, + getGlobalHookSettings(): ?string { + const value = Settings.get(GLOBAL_HOOK_SETTINGS); + if (typeof value === 'string') { + return value; + } + return null; + }, +}; + +module.exports = ReactDevToolsSettingsManager; diff --git a/packages/react-native/src/private/reactdevtools/ReactDevToolsSettingsManager.js.flow b/packages/react-native/src/private/reactdevtools/ReactDevToolsSettingsManager.js.flow new file mode 100644 index 00000000000000..f0e19aa5b53f57 --- /dev/null +++ b/packages/react-native/src/private/reactdevtools/ReactDevToolsSettingsManager.js.flow @@ -0,0 +1,16 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow strict-local + * @format + */ + +declare const ReactDevToolsSettingsManager: { + setGlobalHookSettings(settings: string): void, + getGlobalHookSettings(): ?string, +}; + +module.exports = ReactDevToolsSettingsManager; diff --git a/packages/react-native/src/private/specs/modules/NativeDevToolsSettingsManager.js b/packages/react-native/src/private/specs/modules/NativeReactDevToolsSettingsManager.js similarity index 66% rename from packages/react-native/src/private/specs/modules/NativeDevToolsSettingsManager.js rename to packages/react-native/src/private/specs/modules/NativeReactDevToolsSettingsManager.js index 7a645018e71bf3..6c76ee5f823d01 100644 --- a/packages/react-native/src/private/specs/modules/NativeDevToolsSettingsManager.js +++ b/packages/react-native/src/private/specs/modules/NativeReactDevToolsSettingsManager.js @@ -13,12 +13,10 @@ import type {TurboModule} from '../../../../Libraries/TurboModule/RCTExport'; import * as TurboModuleRegistry from '../../../../Libraries/TurboModule/TurboModuleRegistry'; export interface Spec extends TurboModule { - +setConsolePatchSettings: (newConsolePatchSettings: string) => void; - +getConsolePatchSettings: () => ?string; - +setProfilingSettings?: (newProfilingSettings: string) => void; - +getProfilingSettings?: () => ?string; + +setGlobalHookSettings: (settings: string) => void; + +getGlobalHookSettings: () => ?string; } export default (TurboModuleRegistry.get( - 'DevToolsSettingsManager', + 'ReactDevToolsSettingsManager', ): ?Spec); diff --git a/packages/react-native/types/index.d.ts b/packages/react-native/types/index.d.ts index 5aeec0685ed009..208611110ed579 100644 --- a/packages/react-native/types/index.d.ts +++ b/packages/react-native/types/index.d.ts @@ -104,7 +104,6 @@ export * from '../Libraries/Components/View/ViewAccessibility'; export * from '../Libraries/Components/View/ViewPropTypes'; export * from '../Libraries/Components/Button'; export * from '../Libraries/Core/registerCallableModule'; -export * from '../Libraries/DevToolsSettings/DevToolsSettingsManager'; export * from '../Libraries/EventEmitter/NativeEventEmitter'; export * from '../Libraries/EventEmitter/RCTDeviceEventEmitter'; export * from '../Libraries/EventEmitter/RCTNativeAppEventEmitter';