From aaa4127332ae858ae5d3ea40d1fcfbbe9c3ef5b0 Mon Sep 17 00:00:00 2001 From: Eric Lewis Date: Wed, 29 May 2019 18:23:47 -0700 Subject: [PATCH] Add spec for Settings (#24879) Summary: part of #24875. I again, am not completely sure how the call site here works- appears settings can be directly accessed? ## Changelog [General] [Added] - Add TM spec for Settings Pull Request resolved: https://github.com/facebook/react-native/pull/24879 Reviewed By: RSNara Differential Revision: D15543012 Pulled By: fkgozali fbshipit-source-id: a1df3096a2fc5fe8e65d0ed2398912530bd3911a --- Libraries/Settings/NativeSettingsManager.js | 24 +++++++++++++++++++++ Libraries/Settings/Settings.ios.js | 8 +++---- 2 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 Libraries/Settings/NativeSettingsManager.js diff --git a/Libraries/Settings/NativeSettingsManager.js b/Libraries/Settings/NativeSettingsManager.js new file mode 100644 index 00000000000000..fd050c996b7cf4 --- /dev/null +++ b/Libraries/Settings/NativeSettingsManager.js @@ -0,0 +1,24 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + * @format + */ + +'use strict'; + +import type {TurboModule} from 'RCTExport'; +import * as TurboModuleRegistry from 'TurboModuleRegistry'; + +export interface Spec extends TurboModule { + +getConstants: () => {| + settings: Object, + |}; + +setValues: (values: Object) => void; + +deleteValues: (values: Array) => void; +} + +export default TurboModuleRegistry.getEnforcing('SettingsManager'); diff --git a/Libraries/Settings/Settings.ios.js b/Libraries/Settings/Settings.ios.js index 4084364721ec3e..c802759f764d1b 100644 --- a/Libraries/Settings/Settings.ios.js +++ b/Libraries/Settings/Settings.ios.js @@ -11,15 +11,15 @@ 'use strict'; const RCTDeviceEventEmitter = require('../EventEmitter/RCTDeviceEventEmitter'); -const RCTSettingsManager = require('../BatchedBridge/NativeModules') - .SettingsManager; +import NativeSettingsManager from './NativeSettingsManager'; const invariant = require('invariant'); const subscriptions: Array<{keys: Array, callback: ?Function}> = []; const Settings = { - _settings: RCTSettingsManager && RCTSettingsManager.settings, + _settings: + NativeSettingsManager && NativeSettingsManager.getConstants().settings, get(key: string): mixed { return this._settings[key]; @@ -27,7 +27,7 @@ const Settings = { set(settings: Object) { this._settings = Object.assign(this._settings, settings); - RCTSettingsManager.setValues(settings); + NativeSettingsManager.setValues(settings); }, watchKeys(keys: string | Array, callback: Function): number {