Skip to content

Commit

Permalink
Add spec for Settings (#24879)
Browse files Browse the repository at this point in the history
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: #24879

Reviewed By: RSNara

Differential Revision: D15543012

Pulled By: fkgozali

fbshipit-source-id: a1df3096a2fc5fe8e65d0ed2398912530bd3911a
  • Loading branch information
ericlewis authored and facebook-github-bot committed May 30, 2019
1 parent 82fe1b0 commit aaa4127
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 4 deletions.
24 changes: 24 additions & 0 deletions 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<string>) => void;
}

export default TurboModuleRegistry.getEnforcing<Spec>('SettingsManager');
8 changes: 4 additions & 4 deletions Libraries/Settings/Settings.ios.js
Expand Up @@ -11,23 +11,23 @@
'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<string>, callback: ?Function}> = [];

const Settings = {
_settings: RCTSettingsManager && RCTSettingsManager.settings,
_settings:
NativeSettingsManager && NativeSettingsManager.getConstants().settings,

get(key: string): mixed {
return this._settings[key];
},

set(settings: Object) {
this._settings = Object.assign(this._settings, settings);
RCTSettingsManager.setValues(settings);
NativeSettingsManager.setValues(settings);
},

watchKeys(keys: string | Array<string>, callback: Function): number {
Expand Down

0 comments on commit aaa4127

Please sign in to comment.