2015-02-20 23:45:12 +00:00
|
|
|
// !$*UTF8*$!
|
|
|
|
{
|
|
|
|
archiveVersion = 1;
|
|
|
|
classes = {
|
|
|
|
};
|
|
|
|
objectVersion = 46;
|
|
|
|
objects = {
|
|
|
|
|
|
|
|
/* Begin PBXBuildFile section */
|
2015-03-13 00:49:54 +00:00
|
|
|
000E6CEB1AB0E980000CDF4D /* RCTSourceCode.m in Sources */ = {isa = PBXBuildFile; fileRef = 000E6CEA1AB0E980000CDF4D /* RCTSourceCode.m */; };
|
2016-07-11 13:05:51 +00:00
|
|
|
008341F61D1DB34400876D9A /* RCTJSStackFrame.m in Sources */ = {isa = PBXBuildFile; fileRef = 008341F41D1DB34400876D9A /* RCTJSStackFrame.m */; };
|
Add SegmentedControlIOS
Summary:
Fixes #534:
![screen shot 2015-03-31 at 7 52 10 pm](https://cloud.githubusercontent.com/assets/153704/6934038/742ddd34-d7e3-11e4-8f55-3eb7d9d3f1cd.png)
```jsx
<SegmentedControlIOS
tintColor="#ff0000"
values={['One', 'Two', 'Three', 'Four']}
selectedtIndex={0}
momentary={false}
enabled={true}
onValueChange={ (value) => console.log(value) } />
```
This only supports string-based segments, not images. Also doesn't support full customization (no separator images etc); I figure this is a good MVP to lock-down a basic API
I also included a snapshot test case, but the images keep coming out funky. When I look at the sim, I see that the text labels show up for the selected segment, but the snapshot keeps coming out with no text on those segments. I tried forcing a delay, but same result. Is that explainable?
Obviously happy to change anything about the API, code-style nitpicks, etc
Closes https://github.com/facebook/react-native/pull/564
Github Author: Clay Allsopp <clay.allsopp@gmail.com>
Test Plan: Imported from GitHub, without a `Test Plan:` line.
2015-04-29 15:15:28 +00:00
|
|
|
131B6AF41AF1093D00FFC3E0 /* RCTSegmentedControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 131B6AF11AF1093D00FFC3E0 /* RCTSegmentedControl.m */; };
|
|
|
|
131B6AF51AF1093D00FFC3E0 /* RCTSegmentedControlManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 131B6AF31AF1093D00FFC3E0 /* RCTSegmentedControlManager.m */; };
|
2016-07-20 20:26:57 +00:00
|
|
|
1321C8D01D3EB50800D58318 /* CSSNodeList.c in Sources */ = {isa = PBXBuildFile; fileRef = 1321C8CE1D3EB50800D58318 /* CSSNodeList.c */; };
|
2016-07-14 13:12:34 +00:00
|
|
|
133683521D37ACA10077D0C3 /* CSSLayout.c in Sources */ = {isa = PBXBuildFile; fileRef = 133683441D37ACA10077D0C3 /* CSSLayout.c */; };
|
Added mechanism for directly mapping JS event handlers to blocks
Summary:
Currently, the system for mapping JS event handlers to blocks is quite clean on the JS side, but is clunky on the native side. The event property is passed as a boolean, which can then be checked by the native side, and if true, the native side is supposed to send an event via the event dispatcher.
This diff adds the facility to declare the property as a block instead. This means that the event side can simply call the block, and it will automatically send the event. Because the blocks for bubbling and direct events are named differently, we can also use this to generate the event registration data and get rid of the arrays of event names.
The name of the event is inferred from the property name, which means that the property for an event called "load" must be called `onLoad` or the mapping won't work. This can be optionally remapped to a different property name on the view itself if necessary, e.g.
RCT_REMAP_VIEW_PROPERTY(onLoad, loadEventBlock, RCTDirectEventBlock)
If you don't want to use this mechanism then for now it is still possible to declare the property as a BOOL instead and use the old mechanism (this approach is now deprecated however, and may eventually be removed altogether).
2015-09-02 12:58:10 +00:00
|
|
|
133CAE8E1B8E5CFD00F6AD92 /* RCTDatePicker.m in Sources */ = {isa = PBXBuildFile; fileRef = 133CAE8D1B8E5CFD00F6AD92 /* RCTDatePicker.m */; };
|
2015-04-15 00:51:28 +00:00
|
|
|
13456E931ADAD2DE009F94A7 /* RCTConvert+CoreLocation.m in Sources */ = {isa = PBXBuildFile; fileRef = 13456E921ADAD2DE009F94A7 /* RCTConvert+CoreLocation.m */; };
|
|
|
|
13456E961ADAD482009F94A7 /* RCTConvert+MapKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 13456E951ADAD482009F94A7 /* RCTConvert+MapKit.m */; };
|
2016-04-21 15:58:29 +00:00
|
|
|
134FCB3D1A6E7F0800051CC8 /* RCTJSCExecutor.mm in Sources */ = {isa = PBXBuildFile; fileRef = 134FCB3A1A6E7F0800051CC8 /* RCTJSCExecutor.mm */; };
|
2015-06-03 16:49:22 +00:00
|
|
|
13513F3C1B1F43F400FCE529 /* RCTProgressViewManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 13513F3B1B1F43F400FCE529 /* RCTProgressViewManager.m */; };
|
2015-02-20 23:45:12 +00:00
|
|
|
13723B501A82FD3C00F88898 /* RCTStatusBarManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 13723B4F1A82FD3C00F88898 /* RCTStatusBarManager.m */; };
|
2015-03-11 20:53:30 +00:00
|
|
|
1372B70A1AB030C200659ED6 /* RCTAppState.m in Sources */ = {isa = PBXBuildFile; fileRef = 1372B7091AB030C200659ED6 /* RCTAppState.m */; };
|
2015-03-06 00:36:41 +00:00
|
|
|
137327E71AA5CF210034F82E /* RCTTabBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 137327E01AA5CF210034F82E /* RCTTabBar.m */; };
|
|
|
|
137327E81AA5CF210034F82E /* RCTTabBarItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 137327E21AA5CF210034F82E /* RCTTabBarItem.m */; };
|
|
|
|
137327E91AA5CF210034F82E /* RCTTabBarItemManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 137327E41AA5CF210034F82E /* RCTTabBarItemManager.m */; };
|
|
|
|
137327EA1AA5CF210034F82E /* RCTTabBarManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 137327E61AA5CF210034F82E /* RCTTabBarManager.m */; };
|
2015-08-08 09:58:30 +00:00
|
|
|
13A0C2891B74F71200B29F6F /* RCTDevLoadingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 13A0C2861B74F71200B29F6F /* RCTDevLoadingView.m */; };
|
|
|
|
13A0C28A1B74F71200B29F6F /* RCTDevMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 13A0C2881B74F71200B29F6F /* RCTDevMenu.m */; };
|
2015-02-20 23:45:12 +00:00
|
|
|
13A1F71E1A75392D00D3D453 /* RCTKeyCommands.m in Sources */ = {isa = PBXBuildFile; fileRef = 13A1F71D1A75392D00D3D453 /* RCTKeyCommands.m */; };
|
2015-12-10 18:09:04 +00:00
|
|
|
13A6E20E1C19AA0C00845B82 /* RCTParserUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 13A6E20D1C19AA0C00845B82 /* RCTParserUtils.m */; };
|
2015-08-06 22:44:15 +00:00
|
|
|
13AB90C11B6FA36700713B4F /* RCTComponentData.m in Sources */ = {isa = PBXBuildFile; fileRef = 13AB90C01B6FA36700713B4F /* RCTComponentData.m */; };
|
2015-04-21 22:08:20 +00:00
|
|
|
13AF20451AE707F9005F5298 /* RCTSlider.m in Sources */ = {isa = PBXBuildFile; fileRef = 13AF20441AE707F9005F5298 /* RCTSlider.m */; };
|
Add Polyline support to MapView
Summary: Per issue #1925, add support for Polyline to MapView.
Briefly, if you have a MapView declared as:
<MapView
annotations={this.state.annotations}
overlays={this.state.overlays}
style={styles.map}
region={this.state.region}
ref="mapView"
/>
then setting
this.state.overlays = [{
coordinates: [
{ latitude: 35.5, longitude: -5.5 },
{ latitude: 35.6, longitude: -5.6 },
...
],
strokeColor: 'rgba(255, 0, 0, 0.5)',
lineWidth: 3,
}];
will draw a red line between the points in locations with a width of 3 and equally blended with the background.
Closes https://github.com/facebook/react-native/pull/4153
Reviewed By: svcscm
Differential Revision: D2697347
Pulled By: nicklockwood
fb-gh-sync-id: a436e4ed8d4e43f2872b39b4694fad7c02de8fe5
2015-11-26 15:09:59 +00:00
|
|
|
13AFBCA01C07247D00BBAEAA /* RCTMapOverlay.m in Sources */ = {isa = PBXBuildFile; fileRef = 13AFBC9F1C07247D00BBAEAA /* RCTMapOverlay.m */; };
|
2015-02-20 23:45:12 +00:00
|
|
|
13B07FEF1A69327A00A75B9A /* RCTAlertManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FE81A69327A00A75B9A /* RCTAlertManager.m */; };
|
|
|
|
13B07FF01A69327A00A75B9A /* RCTExceptionsManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FEA1A69327A00A75B9A /* RCTExceptionsManager.m */; };
|
|
|
|
13B07FF21A69327A00A75B9A /* RCTTiming.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FEE1A69327A00A75B9A /* RCTTiming.m */; };
|
|
|
|
13B080051A6947C200A75B9A /* RCTScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FF71A6947C200A75B9A /* RCTScrollView.m */; };
|
|
|
|
13B080061A6947C200A75B9A /* RCTScrollViewManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FF91A6947C200A75B9A /* RCTScrollViewManager.m */; };
|
|
|
|
13B0801A1A69489C00A75B9A /* RCTNavigator.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B0800D1A69489C00A75B9A /* RCTNavigator.m */; };
|
|
|
|
13B0801B1A69489C00A75B9A /* RCTNavigatorManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B0800F1A69489C00A75B9A /* RCTNavigatorManager.m */; };
|
|
|
|
13B0801C1A69489C00A75B9A /* RCTNavItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B080111A69489C00A75B9A /* RCTNavItem.m */; };
|
|
|
|
13B0801D1A69489C00A75B9A /* RCTNavItemManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B080131A69489C00A75B9A /* RCTNavItemManager.m */; };
|
2015-04-26 09:22:34 +00:00
|
|
|
13B080201A69489C00A75B9A /* RCTActivityIndicatorViewManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B080191A69489C00A75B9A /* RCTActivityIndicatorViewManager.m */; };
|
2015-02-20 23:45:12 +00:00
|
|
|
13B080261A694A8400A75B9A /* RCTWrapperViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B080241A694A8400A75B9A /* RCTWrapperViewController.m */; };
|
Add Polyline support to MapView
Summary: Per issue #1925, add support for Polyline to MapView.
Briefly, if you have a MapView declared as:
<MapView
annotations={this.state.annotations}
overlays={this.state.overlays}
style={styles.map}
region={this.state.region}
ref="mapView"
/>
then setting
this.state.overlays = [{
coordinates: [
{ latitude: 35.5, longitude: -5.5 },
{ latitude: 35.6, longitude: -5.6 },
...
],
strokeColor: 'rgba(255, 0, 0, 0.5)',
lineWidth: 3,
}];
will draw a red line between the points in locations with a width of 3 and equally blended with the background.
Closes https://github.com/facebook/react-native/pull/4153
Reviewed By: svcscm
Differential Revision: D2697347
Pulled By: nicklockwood
fb-gh-sync-id: a436e4ed8d4e43f2872b39b4694fad7c02de8fe5
2015-11-26 15:09:59 +00:00
|
|
|
13B202041BFB948C00C07393 /* RCTMapAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B202031BFB948C00C07393 /* RCTMapAnnotation.m */; };
|
2015-12-09 18:00:19 +00:00
|
|
|
13BB3D021BECD54500932C10 /* RCTImageSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 13BB3D011BECD54500932C10 /* RCTImageSource.m */; };
|
2016-03-21 10:20:49 +00:00
|
|
|
13BCE8091C99CB9D00DD7AAD /* RCTRootShadowView.m in Sources */ = {isa = PBXBuildFile; fileRef = 13BCE8081C99CB9D00DD7AAD /* RCTRootShadowView.m */; };
|
2015-03-14 08:22:25 +00:00
|
|
|
13C156051AB1A2840079392D /* RCTWebView.m in Sources */ = {isa = PBXBuildFile; fileRef = 13C156021AB1A2840079392D /* RCTWebView.m */; };
|
|
|
|
13C156061AB1A2840079392D /* RCTWebViewManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 13C156041AB1A2840079392D /* RCTWebViewManager.m */; };
|
2015-05-28 15:52:46 +00:00
|
|
|
13CC8A821B17642100940AE7 /* RCTBorderDrawing.m in Sources */ = {isa = PBXBuildFile; fileRef = 13CC8A811B17642100940AE7 /* RCTBorderDrawing.m */; };
|
2015-12-09 18:00:19 +00:00
|
|
|
13D033631C1837FE0021DC29 /* RCTClipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = 13D033621C1837FE0021DC29 /* RCTClipboard.m */; };
|
Added native event emitter
Summary:
This is a solution for the problem I raised in https://www.facebook.com/groups/react.native.community/permalink/768218933313687/
I've added a new native base class, `RCTEventEmitter` as well as an equivalent JS class/module `NativeEventEmitter` (RCTEventEmitter.js and EventEmitter.js were taken already).
Instead of arbitrary modules sending events via `bridge.eventDispatcher`, the idea is that any module that sends events should now subclass `RCTEventEmitter`, and provide an equivalent JS module that subclasses `NativeEventEmitter`.
JS code that wants to observe the events should now observe it via the specific JS module rather than via `RCTDeviceEventEmitter` directly. e.g. to observer a keyboard event, instead of writing:
const RCTDeviceEventEmitter = require('RCTDeviceEventEmitter');
RCTDeviceEventEmitter.addListener('keyboardWillShow', (event) => { ... });
You'd now write:
const Keyboard = require('Keyboard');
Keyboard.addListener('keyboardWillShow', (event) => { ... });
Within a component, you can also use the `Subscribable.Mixin` as you would previously, but instead of:
this.addListenerOn(RCTDeviceEventEmitter, 'keyboardWillShow', ...);
Write:
this.addListenerOn(Keyboard, 'keyboardWillShow', ...);
This approach allows the native `RCTKeyboardObserver` module to be created lazily the first time a listener is added, and to stop sending events when the last listener is removed. It also allows us to validate that the event strings being observed and omitted match the supported events for that module.
As a proof-of-concept, I've converted the `RCTStatusBarManager` and `RCTKeyboardObserver` modules to use the new system. I'll convert the rest in a follow up diff.
For now, the new `NativeEventEmitter` JS module wraps the `RCTDeviceEventEmitter` JS module, and just uses the native `RCTEventEmitter` module for bookkeeping. This allows for full backwards compatibility (code that is observing the event via `RCTDeviceEventEmitter` instead of the specific module will still work as expected, albeit with a warning). Once all legacy calls have been removed, this could be refactored to something more elegant internally, whilst maintaining the same public interface.
Note: currently, all device events still share a single global namespace, since they're really all registered on the same emitter instance internally. We should move away from that as soon as possible because it's not intuitive and will likely lead to strange bugs if people add generic events such as "onChange" or "onError" to their modules (which is common practice for components, where it's not a problem).
Reviewed By: javache
Differential Revision: D3269966
fbshipit-source-id: 1412daba850cd373020e1086673ba38ef9193050
2016-05-11 13:26:53 +00:00
|
|
|
13D9FEEB1CDCCECF00158BD7 /* RCTEventEmitter.m in Sources */ = {isa = PBXBuildFile; fileRef = 13D9FEEA1CDCCECF00158BD7 /* RCTEventEmitter.m */; };
|
|
|
|
13D9FEEE1CDCD93000158BD7 /* RCTKeyboardObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = 13D9FEED1CDCD93000158BD7 /* RCTKeyboardObserver.m */; };
|
2015-02-20 23:45:12 +00:00
|
|
|
13E0674A1A70F434002CDEE1 /* RCTUIManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 13E067491A70F434002CDEE1 /* RCTUIManager.m */; };
|
|
|
|
13E067551A70F44B002CDEE1 /* RCTShadowView.m in Sources */ = {isa = PBXBuildFile; fileRef = 13E0674C1A70F44B002CDEE1 /* RCTShadowView.m */; };
|
|
|
|
13E067561A70F44B002CDEE1 /* RCTViewManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 13E0674E1A70F44B002CDEE1 /* RCTViewManager.m */; };
|
|
|
|
13E067571A70F44B002CDEE1 /* RCTView.m in Sources */ = {isa = PBXBuildFile; fileRef = 13E067501A70F44B002CDEE1 /* RCTView.m */; };
|
2015-03-26 09:58:06 +00:00
|
|
|
13E067591A70F44B002CDEE1 /* UIView+React.m in Sources */ = {isa = PBXBuildFile; fileRef = 13E067541A70F44B002CDEE1 /* UIView+React.m */; };
|
2015-11-25 11:09:00 +00:00
|
|
|
13E41EEB1C05CA0B00CD8DAC /* RCTProfileTrampoline-i386.S in Sources */ = {isa = PBXBuildFile; fileRef = 14BF717F1C04793D00C97D0C /* RCTProfileTrampoline-i386.S */; };
|
2015-08-19 12:27:43 +00:00
|
|
|
13F17A851B8493E5007D4C75 /* RCTRedBox.m in Sources */ = {isa = PBXBuildFile; fileRef = 13F17A841B8493E5007D4C75 /* RCTRedBox.m */; };
|
2015-04-02 14:33:21 +00:00
|
|
|
14200DAA1AC179B3008EE6BA /* RCTJavaScriptLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = 14200DA91AC179B3008EE6BA /* RCTJavaScriptLoader.m */; };
|
2015-06-19 21:59:42 +00:00
|
|
|
142014191B32094000CC17BA /* RCTPerformanceLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 142014171B32094000CC17BA /* RCTPerformanceLogger.m */; };
|
2015-03-11 20:53:30 +00:00
|
|
|
14435CE51AAC4AE100FC20F4 /* RCTMap.m in Sources */ = {isa = PBXBuildFile; fileRef = 14435CE21AAC4AE100FC20F4 /* RCTMap.m */; };
|
|
|
|
14435CE61AAC4AE100FC20F4 /* RCTMapManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 14435CE41AAC4AE100FC20F4 /* RCTMapManager.m */; };
|
2015-11-10 13:24:54 +00:00
|
|
|
1450FF861BCFF28A00208362 /* RCTProfile.m in Sources */ = {isa = PBXBuildFile; fileRef = 1450FF811BCFF28A00208362 /* RCTProfile.m */; };
|
|
|
|
1450FF871BCFF28A00208362 /* RCTProfileTrampoline-arm.S in Sources */ = {isa = PBXBuildFile; fileRef = 1450FF821BCFF28A00208362 /* RCTProfileTrampoline-arm.S */; };
|
|
|
|
1450FF881BCFF28A00208362 /* RCTProfileTrampoline-arm64.S in Sources */ = {isa = PBXBuildFile; fileRef = 1450FF831BCFF28A00208362 /* RCTProfileTrampoline-arm64.S */; };
|
|
|
|
1450FF8A1BCFF28A00208362 /* RCTProfileTrampoline-x86_64.S in Sources */ = {isa = PBXBuildFile; fileRef = 1450FF851BCFF28A00208362 /* RCTProfileTrampoline-x86_64.S */; };
|
2015-12-15 21:38:48 +00:00
|
|
|
14A43DF31C20B1C900794BC8 /* RCTJSCProfiler.m in Sources */ = {isa = PBXBuildFile; fileRef = 14A43DF21C20B1C900794BC8 /* RCTJSCProfiler.m */; };
|
[ReactNative] Move module info from bridge to RCTModuleData
Summary:
@public
The info about bridge modules (such as id, name, queue, methods...) was spread
across arrays & dictionaries on the bridge, move it into a specific class.
It also removes a lot of information that was statically cached, and now have
the same lifecycle of the bridge.
Also moved RCTModuleMethod, RCTFrameUpdate and RCTBatchedBridge into it's own
files, for organization sake.
NOTE: This diff seems huge, but most of it was just moving code :)
Test Plan:
Tested UIExplorer & UIExplorer tests, Catalyst, MAdMan and Groups. Everything
looks fine.
2015-06-24 23:34:56 +00:00
|
|
|
14C2CA711B3AC63800E6CBB2 /* RCTModuleMethod.m in Sources */ = {isa = PBXBuildFile; fileRef = 14C2CA701B3AC63800E6CBB2 /* RCTModuleMethod.m */; };
|
|
|
|
14C2CA741B3AC64300E6CBB2 /* RCTModuleData.m in Sources */ = {isa = PBXBuildFile; fileRef = 14C2CA731B3AC64300E6CBB2 /* RCTModuleData.m */; };
|
|
|
|
14C2CA761B3AC64F00E6CBB2 /* RCTFrameUpdate.m in Sources */ = {isa = PBXBuildFile; fileRef = 14C2CA751B3AC64F00E6CBB2 /* RCTFrameUpdate.m */; };
|
|
|
|
14C2CA781B3ACB0400E6CBB2 /* RCTBatchedBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = 14C2CA771B3ACB0400E6CBB2 /* RCTBatchedBridge.m */; };
|
2015-03-09 20:19:07 +00:00
|
|
|
14F3620D1AABD06A001CE568 /* RCTSwitch.m in Sources */ = {isa = PBXBuildFile; fileRef = 14F362081AABD06A001CE568 /* RCTSwitch.m */; };
|
|
|
|
14F3620E1AABD06A001CE568 /* RCTSwitchManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 14F3620A1AABD06A001CE568 /* RCTSwitchManager.m */; };
|
2015-03-09 21:42:55 +00:00
|
|
|
14F484561AABFCE100FDF6B9 /* RCTSliderManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 14F484551AABFCE100FDF6B9 /* RCTSliderManager.m */; };
|
2015-11-10 13:24:54 +00:00
|
|
|
14F7A0EC1BDA3B3C003C6C10 /* RCTPerfMonitor.m in Sources */ = {isa = PBXBuildFile; fileRef = 14F7A0EB1BDA3B3C003C6C10 /* RCTPerfMonitor.m */; };
|
|
|
|
14F7A0F01BDA714B003C6C10 /* RCTFPSGraph.m in Sources */ = {isa = PBXBuildFile; fileRef = 14F7A0EF1BDA714B003C6C10 /* RCTFPSGraph.m */; };
|
2016-01-04 15:59:10 +00:00
|
|
|
191E3EBE1C29D9AF00C180A6 /* RCTRefreshControlManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 191E3EBD1C29D9AF00C180A6 /* RCTRefreshControlManager.m */; };
|
|
|
|
191E3EC11C29DC3800C180A6 /* RCTRefreshControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 191E3EC01C29DC3800C180A6 /* RCTRefreshControl.m */; };
|
2016-06-21 22:37:37 +00:00
|
|
|
352DCFF01D19F4C20056D623 /* RCTI18nUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 352DCFEF1D19F4C20056D623 /* RCTI18nUtil.m */; };
|
2016-02-03 15:09:55 +00:00
|
|
|
391E86A41C623EC800009732 /* RCTTouchEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 391E86A21C623EC800009732 /* RCTTouchEvent.m */; };
|
2016-03-30 10:07:57 +00:00
|
|
|
3D1E68DB1CABD13900DD7465 /* RCTDisplayLink.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D1E68D91CABD13900DD7465 /* RCTDisplayLink.m */; };
|
2016-08-05 19:29:20 +00:00
|
|
|
3D37B5821D522B190042D5B5 /* RCTFont.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3D37B5811D522B190042D5B5 /* RCTFont.mm */; };
|
2016-07-18 18:27:55 +00:00
|
|
|
3EDCA8A51D3591E700450C31 /* RCTErrorInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 3EDCA8A41D3591E700450C31 /* RCTErrorInfo.m */; };
|
2015-03-10 16:32:20 +00:00
|
|
|
58114A161AAE854800E7D092 /* RCTPicker.m in Sources */ = {isa = PBXBuildFile; fileRef = 58114A131AAE854800E7D092 /* RCTPicker.m */; };
|
|
|
|
58114A171AAE854800E7D092 /* RCTPickerManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 58114A151AAE854800E7D092 /* RCTPickerManager.m */; };
|
2015-03-11 19:06:03 +00:00
|
|
|
58114A501AAE93D500E7D092 /* RCTAsyncLocalStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 58114A4E1AAE93D500E7D092 /* RCTAsyncLocalStorage.m */; };
|
2015-03-13 00:49:54 +00:00
|
|
|
58C571C11AA56C1900CDF9C8 /* RCTDatePickerManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 58C571BF1AA56C1900CDF9C8 /* RCTDatePickerManager.m */; };
|
2016-05-31 11:56:49 +00:00
|
|
|
68EFE4EE1CF6EB3900A1DE13 /* RCTBundleURLProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 68EFE4ED1CF6EB3900A1DE13 /* RCTBundleURLProvider.m */; };
|
2015-02-20 23:45:12 +00:00
|
|
|
830A229E1A66C68A008503DA /* RCTRootView.m in Sources */ = {isa = PBXBuildFile; fileRef = 830A229D1A66C68A008503DA /* RCTRootView.m */; };
|
2015-07-28 14:31:26 +00:00
|
|
|
83392EB31B6634E10013B15F /* RCTModalHostViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 83392EB21B6634E10013B15F /* RCTModalHostViewController.m */; };
|
|
|
|
83A1FE8C1B62640A00BE0E65 /* RCTModalHostView.m in Sources */ = {isa = PBXBuildFile; fileRef = 83A1FE8B1B62640A00BE0E65 /* RCTModalHostView.m */; };
|
|
|
|
83A1FE8F1B62643A00BE0E65 /* RCTModalHostViewManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 83A1FE8E1B62643A00BE0E65 /* RCTModalHostViewManager.m */; };
|
2015-02-20 23:45:12 +00:00
|
|
|
83CBBA511A601E3B00E9B192 /* RCTAssert.m in Sources */ = {isa = PBXBuildFile; fileRef = 83CBBA4B1A601E3B00E9B192 /* RCTAssert.m */; };
|
|
|
|
83CBBA521A601E3B00E9B192 /* RCTLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 83CBBA4E1A601E3B00E9B192 /* RCTLog.m */; };
|
|
|
|
83CBBA531A601E3B00E9B192 /* RCTUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 83CBBA501A601E3B00E9B192 /* RCTUtils.m */; };
|
|
|
|
83CBBA601A601EAA00E9B192 /* RCTBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = 83CBBA5F1A601EAA00E9B192 /* RCTBridge.m */; };
|
|
|
|
83CBBA691A601EF300E9B192 /* RCTEventDispatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 83CBBA661A601EF300E9B192 /* RCTEventDispatcher.m */; };
|
|
|
|
83CBBA981A6020BB00E9B192 /* RCTTouchHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 83CBBA971A6020BB00E9B192 /* RCTTouchHandler.m */; };
|
|
|
|
83CBBACC1A6023D300E9B192 /* RCTConvert.m in Sources */ = {isa = PBXBuildFile; fileRef = 83CBBACB1A6023D300E9B192 /* RCTConvert.m */; };
|
2016-05-31 19:50:48 +00:00
|
|
|
85C199EE1CD2407900DAD810 /* RCTJSCWrapper.mm in Sources */ = {isa = PBXBuildFile; fileRef = 85C199ED1CD2407900DAD810 /* RCTJSCWrapper.mm */; };
|
2016-07-06 23:26:59 +00:00
|
|
|
B233E6EA1D2D845D00BC68BA /* RCTI18nManager.m in Sources */ = {isa = PBXBuildFile; fileRef = B233E6E91D2D845D00BC68BA /* RCTI18nManager.m */; };
|
2016-06-28 00:10:50 +00:00
|
|
|
B95154321D1B34B200FE7B80 /* RCTActivityIndicatorView.m in Sources */ = {isa = PBXBuildFile; fileRef = B95154311D1B34B200FE7B80 /* RCTActivityIndicatorView.m */; };
|
2015-07-31 14:37:12 +00:00
|
|
|
E9B20B7B1B500126007A2DA7 /* RCTAccessibilityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E9B20B7A1B500126007A2DA7 /* RCTAccessibilityManager.m */; };
|
2015-02-20 23:45:12 +00:00
|
|
|
/* End PBXBuildFile section */
|
|
|
|
|
|
|
|
/* Begin PBXCopyFilesBuildPhase section */
|
|
|
|
83CBBA2C1A601D0E00E9B192 /* Copy Files */ = {
|
|
|
|
isa = PBXCopyFilesBuildPhase;
|
|
|
|
buildActionMask = 2147483647;
|
|
|
|
dstPath = "include/$(PRODUCT_NAME)";
|
|
|
|
dstSubfolderSpec = 16;
|
|
|
|
files = (
|
|
|
|
);
|
|
|
|
name = "Copy Files";
|
|
|
|
runOnlyForDeploymentPostprocessing = 0;
|
|
|
|
};
|
|
|
|
/* End PBXCopyFilesBuildPhase section */
|
|
|
|
|
|
|
|
/* Begin PBXFileReference section */
|
2015-03-13 00:49:54 +00:00
|
|
|
000E6CE91AB0E97F000CDF4D /* RCTSourceCode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTSourceCode.h; sourceTree = "<group>"; };
|
|
|
|
000E6CEA1AB0E980000CDF4D /* RCTSourceCode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTSourceCode.m; sourceTree = "<group>"; };
|
2016-07-11 13:05:51 +00:00
|
|
|
008341F41D1DB34400876D9A /* RCTJSStackFrame.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTJSStackFrame.m; sourceTree = "<group>"; };
|
|
|
|
008341F51D1DB34400876D9A /* RCTJSStackFrame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTJSStackFrame.h; sourceTree = "<group>"; };
|
2016-07-20 15:46:00 +00:00
|
|
|
131541CF1D3E4893006A0E08 /* CSSLayout-internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "CSSLayout-internal.h"; sourceTree = "<group>"; };
|
Add SegmentedControlIOS
Summary:
Fixes #534:
![screen shot 2015-03-31 at 7 52 10 pm](https://cloud.githubusercontent.com/assets/153704/6934038/742ddd34-d7e3-11e4-8f55-3eb7d9d3f1cd.png)
```jsx
<SegmentedControlIOS
tintColor="#ff0000"
values={['One', 'Two', 'Three', 'Four']}
selectedtIndex={0}
momentary={false}
enabled={true}
onValueChange={ (value) => console.log(value) } />
```
This only supports string-based segments, not images. Also doesn't support full customization (no separator images etc); I figure this is a good MVP to lock-down a basic API
I also included a snapshot test case, but the images keep coming out funky. When I look at the sim, I see that the text labels show up for the selected segment, but the snapshot keeps coming out with no text on those segments. I tried forcing a delay, but same result. Is that explainable?
Obviously happy to change anything about the API, code-style nitpicks, etc
Closes https://github.com/facebook/react-native/pull/564
Github Author: Clay Allsopp <clay.allsopp@gmail.com>
Test Plan: Imported from GitHub, without a `Test Plan:` line.
2015-04-29 15:15:28 +00:00
|
|
|
131B6AF01AF1093D00FFC3E0 /* RCTSegmentedControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTSegmentedControl.h; sourceTree = "<group>"; };
|
|
|
|
131B6AF11AF1093D00FFC3E0 /* RCTSegmentedControl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTSegmentedControl.m; sourceTree = "<group>"; };
|
|
|
|
131B6AF21AF1093D00FFC3E0 /* RCTSegmentedControlManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTSegmentedControlManager.h; sourceTree = "<group>"; };
|
|
|
|
131B6AF31AF1093D00FFC3E0 /* RCTSegmentedControlManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTSegmentedControlManager.m; sourceTree = "<group>"; };
|
2016-07-20 20:26:57 +00:00
|
|
|
1321C8CE1D3EB50800D58318 /* CSSNodeList.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = CSSNodeList.c; sourceTree = "<group>"; };
|
|
|
|
1321C8CF1D3EB50800D58318 /* CSSNodeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSSNodeList.h; sourceTree = "<group>"; };
|
2016-07-14 13:12:34 +00:00
|
|
|
133683441D37ACA10077D0C3 /* CSSLayout.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = CSSLayout.c; sourceTree = "<group>"; };
|
|
|
|
133683451D37ACA10077D0C3 /* CSSLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSSLayout.h; sourceTree = "<group>"; };
|
|
|
|
133683481D37ACA10077D0C3 /* CSSMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSSMacros.h; sourceTree = "<group>"; };
|
Added mechanism for directly mapping JS event handlers to blocks
Summary:
Currently, the system for mapping JS event handlers to blocks is quite clean on the JS side, but is clunky on the native side. The event property is passed as a boolean, which can then be checked by the native side, and if true, the native side is supposed to send an event via the event dispatcher.
This diff adds the facility to declare the property as a block instead. This means that the event side can simply call the block, and it will automatically send the event. Because the blocks for bubbling and direct events are named differently, we can also use this to generate the event registration data and get rid of the arrays of event names.
The name of the event is inferred from the property name, which means that the property for an event called "load" must be called `onLoad` or the mapping won't work. This can be optionally remapped to a different property name on the view itself if necessary, e.g.
RCT_REMAP_VIEW_PROPERTY(onLoad, loadEventBlock, RCTDirectEventBlock)
If you don't want to use this mechanism then for now it is still possible to declare the property as a BOOL instead and use the old mechanism (this approach is now deprecated however, and may eventually be removed altogether).
2015-09-02 12:58:10 +00:00
|
|
|
133CAE8C1B8E5CFD00F6AD92 /* RCTDatePicker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTDatePicker.h; sourceTree = "<group>"; };
|
|
|
|
133CAE8D1B8E5CFD00F6AD92 /* RCTDatePicker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTDatePicker.m; sourceTree = "<group>"; };
|
2015-03-06 00:36:41 +00:00
|
|
|
13442BF21AA90E0B0037E5B0 /* RCTAnimationType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTAnimationType.h; sourceTree = "<group>"; };
|
|
|
|
13442BF31AA90E0B0037E5B0 /* RCTPointerEvents.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTPointerEvents.h; sourceTree = "<group>"; };
|
|
|
|
13442BF41AA90E0B0037E5B0 /* RCTViewControllerProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTViewControllerProtocol.h; sourceTree = "<group>"; };
|
2015-04-15 00:51:28 +00:00
|
|
|
13456E911ADAD2DE009F94A7 /* RCTConvert+CoreLocation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "RCTConvert+CoreLocation.h"; sourceTree = "<group>"; };
|
|
|
|
13456E921ADAD2DE009F94A7 /* RCTConvert+CoreLocation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "RCTConvert+CoreLocation.m"; sourceTree = "<group>"; };
|
|
|
|
13456E941ADAD482009F94A7 /* RCTConvert+MapKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "RCTConvert+MapKit.h"; sourceTree = "<group>"; };
|
|
|
|
13456E951ADAD482009F94A7 /* RCTConvert+MapKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "RCTConvert+MapKit.m"; sourceTree = "<group>"; };
|
2015-06-09 19:25:33 +00:00
|
|
|
1345A83A1B265A0E00583190 /* RCTURLRequestDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTURLRequestDelegate.h; sourceTree = "<group>"; };
|
|
|
|
1345A83B1B265A0E00583190 /* RCTURLRequestHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTURLRequestHandler.h; sourceTree = "<group>"; };
|
2015-12-16 10:49:27 +00:00
|
|
|
134FCB391A6E7F0800051CC8 /* RCTJSCExecutor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTJSCExecutor.h; sourceTree = "<group>"; };
|
2016-04-21 15:58:29 +00:00
|
|
|
134FCB3A1A6E7F0800051CC8 /* RCTJSCExecutor.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RCTJSCExecutor.mm; sourceTree = "<group>"; };
|
2015-06-03 16:49:22 +00:00
|
|
|
13513F3A1B1F43F400FCE529 /* RCTProgressViewManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTProgressViewManager.h; sourceTree = "<group>"; };
|
|
|
|
13513F3B1B1F43F400FCE529 /* RCTProgressViewManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTProgressViewManager.m; sourceTree = "<group>"; };
|
2015-02-20 23:45:12 +00:00
|
|
|
13723B4E1A82FD3C00F88898 /* RCTStatusBarManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTStatusBarManager.h; sourceTree = "<group>"; };
|
|
|
|
13723B4F1A82FD3C00F88898 /* RCTStatusBarManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTStatusBarManager.m; sourceTree = "<group>"; };
|
2015-03-11 20:53:30 +00:00
|
|
|
1372B7081AB030C200659ED6 /* RCTAppState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTAppState.h; sourceTree = "<group>"; };
|
|
|
|
1372B7091AB030C200659ED6 /* RCTAppState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTAppState.m; sourceTree = "<group>"; };
|
2015-03-06 00:36:41 +00:00
|
|
|
137327DF1AA5CF210034F82E /* RCTTabBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTTabBar.h; sourceTree = "<group>"; };
|
|
|
|
137327E01AA5CF210034F82E /* RCTTabBar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTTabBar.m; sourceTree = "<group>"; };
|
|
|
|
137327E11AA5CF210034F82E /* RCTTabBarItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTTabBarItem.h; sourceTree = "<group>"; };
|
|
|
|
137327E21AA5CF210034F82E /* RCTTabBarItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTTabBarItem.m; sourceTree = "<group>"; };
|
|
|
|
137327E31AA5CF210034F82E /* RCTTabBarItemManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTTabBarItemManager.h; sourceTree = "<group>"; };
|
|
|
|
137327E41AA5CF210034F82E /* RCTTabBarItemManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTTabBarItemManager.m; sourceTree = "<group>"; };
|
|
|
|
137327E51AA5CF210034F82E /* RCTTabBarManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTTabBarManager.h; sourceTree = "<group>"; };
|
|
|
|
137327E61AA5CF210034F82E /* RCTTabBarManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTTabBarManager.m; sourceTree = "<group>"; };
|
2015-08-08 09:58:30 +00:00
|
|
|
13A0C2851B74F71200B29F6F /* RCTDevLoadingView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTDevLoadingView.h; sourceTree = "<group>"; };
|
|
|
|
13A0C2861B74F71200B29F6F /* RCTDevLoadingView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTDevLoadingView.m; sourceTree = "<group>"; };
|
|
|
|
13A0C2871B74F71200B29F6F /* RCTDevMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTDevMenu.h; sourceTree = "<group>"; };
|
|
|
|
13A0C2881B74F71200B29F6F /* RCTDevMenu.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTDevMenu.m; sourceTree = "<group>"; };
|
2015-02-20 23:45:12 +00:00
|
|
|
13A1F71C1A75392D00D3D453 /* RCTKeyCommands.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTKeyCommands.h; sourceTree = "<group>"; };
|
|
|
|
13A1F71D1A75392D00D3D453 /* RCTKeyCommands.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTKeyCommands.m; sourceTree = "<group>"; };
|
2015-12-10 18:09:04 +00:00
|
|
|
13A6E20C1C19AA0C00845B82 /* RCTParserUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTParserUtils.h; sourceTree = "<group>"; };
|
|
|
|
13A6E20D1C19AA0C00845B82 /* RCTParserUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTParserUtils.m; sourceTree = "<group>"; };
|
|
|
|
13A6E20F1C19ABC700845B82 /* RCTNullability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTNullability.h; sourceTree = "<group>"; };
|
2015-08-06 22:44:15 +00:00
|
|
|
13AB90BF1B6FA36700713B4F /* RCTComponentData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTComponentData.h; sourceTree = "<group>"; };
|
|
|
|
13AB90C01B6FA36700713B4F /* RCTComponentData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTComponentData.m; sourceTree = "<group>"; };
|
2015-04-21 20:25:19 +00:00
|
|
|
13AF1F851AE6E777005F5298 /* RCTDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTDefines.h; sourceTree = "<group>"; };
|
2015-04-21 22:08:20 +00:00
|
|
|
13AF20431AE707F8005F5298 /* RCTSlider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTSlider.h; sourceTree = "<group>"; };
|
|
|
|
13AF20441AE707F9005F5298 /* RCTSlider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTSlider.m; sourceTree = "<group>"; };
|
Add Polyline support to MapView
Summary: Per issue #1925, add support for Polyline to MapView.
Briefly, if you have a MapView declared as:
<MapView
annotations={this.state.annotations}
overlays={this.state.overlays}
style={styles.map}
region={this.state.region}
ref="mapView"
/>
then setting
this.state.overlays = [{
coordinates: [
{ latitude: 35.5, longitude: -5.5 },
{ latitude: 35.6, longitude: -5.6 },
...
],
strokeColor: 'rgba(255, 0, 0, 0.5)',
lineWidth: 3,
}];
will draw a red line between the points in locations with a width of 3 and equally blended with the background.
Closes https://github.com/facebook/react-native/pull/4153
Reviewed By: svcscm
Differential Revision: D2697347
Pulled By: nicklockwood
fb-gh-sync-id: a436e4ed8d4e43f2872b39b4694fad7c02de8fe5
2015-11-26 15:09:59 +00:00
|
|
|
13AFBC9E1C07247D00BBAEAA /* RCTMapOverlay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTMapOverlay.h; sourceTree = "<group>"; };
|
|
|
|
13AFBC9F1C07247D00BBAEAA /* RCTMapOverlay.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTMapOverlay.m; sourceTree = "<group>"; };
|
|
|
|
13AFBCA11C07287B00BBAEAA /* RCTBridgeMethod.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTBridgeMethod.h; sourceTree = "<group>"; };
|
|
|
|
13AFBCA21C07287B00BBAEAA /* RCTRootViewDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTRootViewDelegate.h; sourceTree = "<group>"; };
|
2015-02-20 23:45:12 +00:00
|
|
|
13B07FE71A69327A00A75B9A /* RCTAlertManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTAlertManager.h; sourceTree = "<group>"; };
|
|
|
|
13B07FE81A69327A00A75B9A /* RCTAlertManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTAlertManager.m; sourceTree = "<group>"; };
|
|
|
|
13B07FE91A69327A00A75B9A /* RCTExceptionsManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTExceptionsManager.h; sourceTree = "<group>"; };
|
|
|
|
13B07FEA1A69327A00A75B9A /* RCTExceptionsManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTExceptionsManager.m; sourceTree = "<group>"; };
|
|
|
|
13B07FED1A69327A00A75B9A /* RCTTiming.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTTiming.h; sourceTree = "<group>"; };
|
|
|
|
13B07FEE1A69327A00A75B9A /* RCTTiming.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTTiming.m; sourceTree = "<group>"; };
|
|
|
|
13B07FF61A6947C200A75B9A /* RCTScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTScrollView.h; sourceTree = "<group>"; };
|
|
|
|
13B07FF71A6947C200A75B9A /* RCTScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTScrollView.m; sourceTree = "<group>"; };
|
|
|
|
13B07FF81A6947C200A75B9A /* RCTScrollViewManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTScrollViewManager.h; sourceTree = "<group>"; };
|
|
|
|
13B07FF91A6947C200A75B9A /* RCTScrollViewManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTScrollViewManager.m; sourceTree = "<group>"; };
|
|
|
|
13B0800C1A69489C00A75B9A /* RCTNavigator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTNavigator.h; sourceTree = "<group>"; };
|
|
|
|
13B0800D1A69489C00A75B9A /* RCTNavigator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTNavigator.m; sourceTree = "<group>"; };
|
|
|
|
13B0800E1A69489C00A75B9A /* RCTNavigatorManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTNavigatorManager.h; sourceTree = "<group>"; };
|
|
|
|
13B0800F1A69489C00A75B9A /* RCTNavigatorManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTNavigatorManager.m; sourceTree = "<group>"; };
|
|
|
|
13B080101A69489C00A75B9A /* RCTNavItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTNavItem.h; sourceTree = "<group>"; };
|
|
|
|
13B080111A69489C00A75B9A /* RCTNavItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTNavItem.m; sourceTree = "<group>"; };
|
|
|
|
13B080121A69489C00A75B9A /* RCTNavItemManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTNavItemManager.h; sourceTree = "<group>"; };
|
|
|
|
13B080131A69489C00A75B9A /* RCTNavItemManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTNavItemManager.m; sourceTree = "<group>"; };
|
2015-04-26 09:22:34 +00:00
|
|
|
13B080181A69489C00A75B9A /* RCTActivityIndicatorViewManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTActivityIndicatorViewManager.h; sourceTree = "<group>"; };
|
|
|
|
13B080191A69489C00A75B9A /* RCTActivityIndicatorViewManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTActivityIndicatorViewManager.m; sourceTree = "<group>"; };
|
2015-02-20 23:45:12 +00:00
|
|
|
13B080231A694A8400A75B9A /* RCTWrapperViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTWrapperViewController.h; sourceTree = "<group>"; };
|
|
|
|
13B080241A694A8400A75B9A /* RCTWrapperViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTWrapperViewController.m; sourceTree = "<group>"; };
|
Add Polyline support to MapView
Summary: Per issue #1925, add support for Polyline to MapView.
Briefly, if you have a MapView declared as:
<MapView
annotations={this.state.annotations}
overlays={this.state.overlays}
style={styles.map}
region={this.state.region}
ref="mapView"
/>
then setting
this.state.overlays = [{
coordinates: [
{ latitude: 35.5, longitude: -5.5 },
{ latitude: 35.6, longitude: -5.6 },
...
],
strokeColor: 'rgba(255, 0, 0, 0.5)',
lineWidth: 3,
}];
will draw a red line between the points in locations with a width of 3 and equally blended with the background.
Closes https://github.com/facebook/react-native/pull/4153
Reviewed By: svcscm
Differential Revision: D2697347
Pulled By: nicklockwood
fb-gh-sync-id: a436e4ed8d4e43f2872b39b4694fad7c02de8fe5
2015-11-26 15:09:59 +00:00
|
|
|
13B202021BFB948C00C07393 /* RCTMapAnnotation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTMapAnnotation.h; sourceTree = "<group>"; };
|
|
|
|
13B202031BFB948C00C07393 /* RCTMapAnnotation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTMapAnnotation.m; sourceTree = "<group>"; };
|
2015-12-09 18:00:19 +00:00
|
|
|
13BB3D001BECD54500932C10 /* RCTImageSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTImageSource.h; sourceTree = "<group>"; };
|
|
|
|
13BB3D011BECD54500932C10 /* RCTImageSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTImageSource.m; sourceTree = "<group>"; };
|
2016-03-21 10:20:49 +00:00
|
|
|
13BCE8071C99CB9D00DD7AAD /* RCTRootShadowView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTRootShadowView.h; sourceTree = "<group>"; };
|
|
|
|
13BCE8081C99CB9D00DD7AAD /* RCTRootShadowView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTRootShadowView.m; sourceTree = "<group>"; };
|
2015-03-14 08:22:25 +00:00
|
|
|
13C156011AB1A2840079392D /* RCTWebView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTWebView.h; sourceTree = "<group>"; };
|
|
|
|
13C156021AB1A2840079392D /* RCTWebView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTWebView.m; sourceTree = "<group>"; };
|
|
|
|
13C156031AB1A2840079392D /* RCTWebViewManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTWebViewManager.h; sourceTree = "<group>"; };
|
|
|
|
13C156041AB1A2840079392D /* RCTWebViewManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTWebViewManager.m; sourceTree = "<group>"; };
|
2015-03-06 00:36:41 +00:00
|
|
|
13C325261AA63B6A0048765F /* RCTAutoInsetsProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTAutoInsetsProtocol.h; sourceTree = "<group>"; };
|
|
|
|
13C325271AA63B6A0048765F /* RCTScrollableProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTScrollableProtocol.h; sourceTree = "<group>"; };
|
2015-08-06 22:44:15 +00:00
|
|
|
13C325281AA63B6A0048765F /* RCTComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTComponent.h; sourceTree = "<group>"; };
|
2015-05-28 15:52:46 +00:00
|
|
|
13CC8A801B17642100940AE7 /* RCTBorderDrawing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTBorderDrawing.h; sourceTree = "<group>"; };
|
|
|
|
13CC8A811B17642100940AE7 /* RCTBorderDrawing.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTBorderDrawing.m; sourceTree = "<group>"; };
|
2015-12-09 18:00:19 +00:00
|
|
|
13D033611C1837FE0021DC29 /* RCTClipboard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTClipboard.h; sourceTree = "<group>"; };
|
|
|
|
13D033621C1837FE0021DC29 /* RCTClipboard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTClipboard.m; sourceTree = "<group>"; };
|
Added native event emitter
Summary:
This is a solution for the problem I raised in https://www.facebook.com/groups/react.native.community/permalink/768218933313687/
I've added a new native base class, `RCTEventEmitter` as well as an equivalent JS class/module `NativeEventEmitter` (RCTEventEmitter.js and EventEmitter.js were taken already).
Instead of arbitrary modules sending events via `bridge.eventDispatcher`, the idea is that any module that sends events should now subclass `RCTEventEmitter`, and provide an equivalent JS module that subclasses `NativeEventEmitter`.
JS code that wants to observe the events should now observe it via the specific JS module rather than via `RCTDeviceEventEmitter` directly. e.g. to observer a keyboard event, instead of writing:
const RCTDeviceEventEmitter = require('RCTDeviceEventEmitter');
RCTDeviceEventEmitter.addListener('keyboardWillShow', (event) => { ... });
You'd now write:
const Keyboard = require('Keyboard');
Keyboard.addListener('keyboardWillShow', (event) => { ... });
Within a component, you can also use the `Subscribable.Mixin` as you would previously, but instead of:
this.addListenerOn(RCTDeviceEventEmitter, 'keyboardWillShow', ...);
Write:
this.addListenerOn(Keyboard, 'keyboardWillShow', ...);
This approach allows the native `RCTKeyboardObserver` module to be created lazily the first time a listener is added, and to stop sending events when the last listener is removed. It also allows us to validate that the event strings being observed and omitted match the supported events for that module.
As a proof-of-concept, I've converted the `RCTStatusBarManager` and `RCTKeyboardObserver` modules to use the new system. I'll convert the rest in a follow up diff.
For now, the new `NativeEventEmitter` JS module wraps the `RCTDeviceEventEmitter` JS module, and just uses the native `RCTEventEmitter` module for bookkeeping. This allows for full backwards compatibility (code that is observing the event via `RCTDeviceEventEmitter` instead of the specific module will still work as expected, albeit with a warning). Once all legacy calls have been removed, this could be refactored to something more elegant internally, whilst maintaining the same public interface.
Note: currently, all device events still share a single global namespace, since they're really all registered on the same emitter instance internally. We should move away from that as soon as possible because it's not intuitive and will likely lead to strange bugs if people add generic events such as "onChange" or "onError" to their modules (which is common practice for components, where it's not a problem).
Reviewed By: javache
Differential Revision: D3269966
fbshipit-source-id: 1412daba850cd373020e1086673ba38ef9193050
2016-05-11 13:26:53 +00:00
|
|
|
13D9FEE91CDCCECF00158BD7 /* RCTEventEmitter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTEventEmitter.h; sourceTree = "<group>"; };
|
|
|
|
13D9FEEA1CDCCECF00158BD7 /* RCTEventEmitter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTEventEmitter.m; sourceTree = "<group>"; };
|
|
|
|
13D9FEEC1CDCD93000158BD7 /* RCTKeyboardObserver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTKeyboardObserver.h; sourceTree = "<group>"; };
|
|
|
|
13D9FEED1CDCD93000158BD7 /* RCTKeyboardObserver.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTKeyboardObserver.m; sourceTree = "<group>"; };
|
2015-02-20 23:45:12 +00:00
|
|
|
13E067481A70F434002CDEE1 /* RCTUIManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTUIManager.h; sourceTree = "<group>"; };
|
|
|
|
13E067491A70F434002CDEE1 /* RCTUIManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTUIManager.m; sourceTree = "<group>"; };
|
|
|
|
13E0674B1A70F44B002CDEE1 /* RCTShadowView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTShadowView.h; sourceTree = "<group>"; };
|
|
|
|
13E0674C1A70F44B002CDEE1 /* RCTShadowView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTShadowView.m; sourceTree = "<group>"; };
|
|
|
|
13E0674D1A70F44B002CDEE1 /* RCTViewManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTViewManager.h; sourceTree = "<group>"; };
|
|
|
|
13E0674E1A70F44B002CDEE1 /* RCTViewManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTViewManager.m; sourceTree = "<group>"; };
|
|
|
|
13E0674F1A70F44B002CDEE1 /* RCTView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTView.h; sourceTree = "<group>"; };
|
|
|
|
13E067501A70F44B002CDEE1 /* RCTView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTView.m; sourceTree = "<group>"; };
|
2015-03-26 09:58:06 +00:00
|
|
|
13E067531A70F44B002CDEE1 /* UIView+React.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+React.h"; sourceTree = "<group>"; };
|
|
|
|
13E067541A70F44B002CDEE1 /* UIView+React.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+React.m"; sourceTree = "<group>"; };
|
2015-08-19 12:27:43 +00:00
|
|
|
13F17A831B8493E5007D4C75 /* RCTRedBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTRedBox.h; sourceTree = "<group>"; };
|
|
|
|
13F17A841B8493E5007D4C75 /* RCTRedBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTRedBox.m; sourceTree = "<group>"; };
|
2015-04-02 14:33:21 +00:00
|
|
|
14200DA81AC179B3008EE6BA /* RCTJavaScriptLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTJavaScriptLoader.h; sourceTree = "<group>"; };
|
|
|
|
14200DA91AC179B3008EE6BA /* RCTJavaScriptLoader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTJavaScriptLoader.m; sourceTree = "<group>"; };
|
2015-06-19 21:59:42 +00:00
|
|
|
142014171B32094000CC17BA /* RCTPerformanceLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTPerformanceLogger.m; sourceTree = "<group>"; };
|
|
|
|
142014181B32094000CC17BA /* RCTPerformanceLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTPerformanceLogger.h; sourceTree = "<group>"; };
|
2015-04-15 14:07:19 +00:00
|
|
|
1436DD071ADE7AA000A5ED7D /* RCTFrameUpdate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RCTFrameUpdate.h; sourceTree = "<group>"; };
|
2015-03-11 20:53:30 +00:00
|
|
|
14435CE11AAC4AE100FC20F4 /* RCTMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTMap.h; sourceTree = "<group>"; };
|
|
|
|
14435CE21AAC4AE100FC20F4 /* RCTMap.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTMap.m; sourceTree = "<group>"; };
|
|
|
|
14435CE31AAC4AE100FC20F4 /* RCTMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTMapManager.h; sourceTree = "<group>"; };
|
|
|
|
14435CE41AAC4AE100FC20F4 /* RCTMapManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTMapManager.m; sourceTree = "<group>"; };
|
2015-10-20 11:11:38 +00:00
|
|
|
1450FF801BCFF28A00208362 /* RCTProfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTProfile.h; sourceTree = "<group>"; };
|
|
|
|
1450FF811BCFF28A00208362 /* RCTProfile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTProfile.m; sourceTree = "<group>"; };
|
|
|
|
1450FF821BCFF28A00208362 /* RCTProfileTrampoline-arm.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = "RCTProfileTrampoline-arm.S"; sourceTree = "<group>"; };
|
|
|
|
1450FF831BCFF28A00208362 /* RCTProfileTrampoline-arm64.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = "RCTProfileTrampoline-arm64.S"; sourceTree = "<group>"; };
|
|
|
|
1450FF851BCFF28A00208362 /* RCTProfileTrampoline-x86_64.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = "RCTProfileTrampoline-x86_64.S"; sourceTree = "<group>"; };
|
2015-07-28 22:48:46 +00:00
|
|
|
1482F9E61B55B927000ADFF3 /* RCTBridgeDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RCTBridgeDelegate.h; sourceTree = "<group>"; };
|
2015-12-15 13:39:30 +00:00
|
|
|
14A43DB81C1F849600794BC8 /* RCTBridge+Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "RCTBridge+Private.h"; sourceTree = "<group>"; };
|
2015-12-15 21:38:48 +00:00
|
|
|
14A43DF11C20B1C900794BC8 /* RCTJSCProfiler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTJSCProfiler.h; sourceTree = "<group>"; };
|
|
|
|
14A43DF21C20B1C900794BC8 /* RCTJSCProfiler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTJSCProfiler.m; sourceTree = "<group>"; };
|
2015-11-24 14:48:04 +00:00
|
|
|
14BF717F1C04793D00C97D0C /* RCTProfileTrampoline-i386.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = "RCTProfileTrampoline-i386.S"; sourceTree = "<group>"; };
|
|
|
|
14BF71811C04795500C97D0C /* RCTMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTMacros.h; sourceTree = "<group>"; };
|
[ReactNative] Move module info from bridge to RCTModuleData
Summary:
@public
The info about bridge modules (such as id, name, queue, methods...) was spread
across arrays & dictionaries on the bridge, move it into a specific class.
It also removes a lot of information that was statically cached, and now have
the same lifecycle of the bridge.
Also moved RCTModuleMethod, RCTFrameUpdate and RCTBatchedBridge into it's own
files, for organization sake.
NOTE: This diff seems huge, but most of it was just moving code :)
Test Plan:
Tested UIExplorer & UIExplorer tests, Catalyst, MAdMan and Groups. Everything
looks fine.
2015-06-24 23:34:56 +00:00
|
|
|
14C2CA6F1B3AC63800E6CBB2 /* RCTModuleMethod.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTModuleMethod.h; sourceTree = "<group>"; };
|
|
|
|
14C2CA701B3AC63800E6CBB2 /* RCTModuleMethod.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTModuleMethod.m; sourceTree = "<group>"; };
|
|
|
|
14C2CA721B3AC64300E6CBB2 /* RCTModuleData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTModuleData.h; sourceTree = "<group>"; };
|
|
|
|
14C2CA731B3AC64300E6CBB2 /* RCTModuleData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTModuleData.m; sourceTree = "<group>"; };
|
|
|
|
14C2CA751B3AC64F00E6CBB2 /* RCTFrameUpdate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTFrameUpdate.m; sourceTree = "<group>"; };
|
|
|
|
14C2CA771B3ACB0400E6CBB2 /* RCTBatchedBridge.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTBatchedBridge.m; sourceTree = "<group>"; };
|
2015-03-09 20:19:07 +00:00
|
|
|
14F362071AABD06A001CE568 /* RCTSwitch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTSwitch.h; sourceTree = "<group>"; };
|
|
|
|
14F362081AABD06A001CE568 /* RCTSwitch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTSwitch.m; sourceTree = "<group>"; };
|
|
|
|
14F362091AABD06A001CE568 /* RCTSwitchManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTSwitchManager.h; sourceTree = "<group>"; };
|
|
|
|
14F3620A1AABD06A001CE568 /* RCTSwitchManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTSwitchManager.m; sourceTree = "<group>"; };
|
2015-03-09 21:42:55 +00:00
|
|
|
14F484541AABFCE100FDF6B9 /* RCTSliderManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTSliderManager.h; sourceTree = "<group>"; };
|
|
|
|
14F484551AABFCE100FDF6B9 /* RCTSliderManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTSliderManager.m; sourceTree = "<group>"; };
|
2015-10-23 17:53:42 +00:00
|
|
|
14F7A0EB1BDA3B3C003C6C10 /* RCTPerfMonitor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTPerfMonitor.m; sourceTree = "<group>"; };
|
|
|
|
14F7A0EE1BDA714B003C6C10 /* RCTFPSGraph.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTFPSGraph.h; sourceTree = "<group>"; };
|
|
|
|
14F7A0EF1BDA714B003C6C10 /* RCTFPSGraph.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTFPSGraph.m; sourceTree = "<group>"; };
|
2016-01-04 15:59:10 +00:00
|
|
|
191E3EBC1C29D9AF00C180A6 /* RCTRefreshControlManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTRefreshControlManager.h; sourceTree = "<group>"; };
|
|
|
|
191E3EBD1C29D9AF00C180A6 /* RCTRefreshControlManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTRefreshControlManager.m; sourceTree = "<group>"; };
|
|
|
|
191E3EBF1C29DC3800C180A6 /* RCTRefreshControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTRefreshControl.h; sourceTree = "<group>"; };
|
|
|
|
191E3EC01C29DC3800C180A6 /* RCTRefreshControl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTRefreshControl.m; sourceTree = "<group>"; };
|
2016-06-21 22:37:37 +00:00
|
|
|
352DCFEE1D19F4C20056D623 /* RCTI18nUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTI18nUtil.h; sourceTree = "<group>"; };
|
|
|
|
352DCFEF1D19F4C20056D623 /* RCTI18nUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTI18nUtil.m; sourceTree = "<group>"; };
|
2016-02-03 15:09:55 +00:00
|
|
|
391E86A21C623EC800009732 /* RCTTouchEvent.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTTouchEvent.m; sourceTree = "<group>"; };
|
|
|
|
391E86A31C623EC800009732 /* RCTTouchEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTTouchEvent.h; sourceTree = "<group>"; };
|
2016-03-30 10:07:57 +00:00
|
|
|
3D1E68D81CABD13900DD7465 /* RCTDisplayLink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTDisplayLink.h; sourceTree = "<group>"; };
|
|
|
|
3D1E68D91CABD13900DD7465 /* RCTDisplayLink.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTDisplayLink.m; sourceTree = "<group>"; };
|
2016-08-05 19:29:19 +00:00
|
|
|
3D37B5801D522B190042D5B5 /* RCTFont.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTFont.h; sourceTree = "<group>"; };
|
2016-08-05 19:29:20 +00:00
|
|
|
3D37B5811D522B190042D5B5 /* RCTFont.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RCTFont.mm; sourceTree = "<group>"; };
|
2016-02-17 15:38:11 +00:00
|
|
|
3DB910701C74B21600838BBE /* RCTWebSocketProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTWebSocketProxy.h; sourceTree = "<group>"; };
|
|
|
|
3DB910711C74B21600838BBE /* RCTWebSocketProxyDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTWebSocketProxyDelegate.h; sourceTree = "<group>"; };
|
2016-07-18 18:27:55 +00:00
|
|
|
3EDCA8A21D3591E700450C31 /* RCTErrorCustomizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTErrorCustomizer.h; sourceTree = "<group>"; };
|
|
|
|
3EDCA8A31D3591E700450C31 /* RCTErrorInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTErrorInfo.h; sourceTree = "<group>"; };
|
|
|
|
3EDCA8A41D3591E700450C31 /* RCTErrorInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTErrorInfo.m; sourceTree = "<group>"; };
|
2015-03-10 16:32:20 +00:00
|
|
|
58114A121AAE854800E7D092 /* RCTPicker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTPicker.h; sourceTree = "<group>"; };
|
|
|
|
58114A131AAE854800E7D092 /* RCTPicker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTPicker.m; sourceTree = "<group>"; };
|
|
|
|
58114A141AAE854800E7D092 /* RCTPickerManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTPickerManager.h; sourceTree = "<group>"; };
|
|
|
|
58114A151AAE854800E7D092 /* RCTPickerManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTPickerManager.m; sourceTree = "<group>"; };
|
2015-03-11 19:06:03 +00:00
|
|
|
58114A4E1AAE93D500E7D092 /* RCTAsyncLocalStorage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTAsyncLocalStorage.m; sourceTree = "<group>"; };
|
|
|
|
58114A4F1AAE93D500E7D092 /* RCTAsyncLocalStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTAsyncLocalStorage.h; sourceTree = "<group>"; };
|
2015-03-13 00:49:54 +00:00
|
|
|
58C571BF1AA56C1900CDF9C8 /* RCTDatePickerManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTDatePickerManager.m; sourceTree = "<group>"; };
|
|
|
|
58C571C01AA56C1900CDF9C8 /* RCTDatePickerManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTDatePickerManager.h; sourceTree = "<group>"; };
|
2016-05-31 11:56:49 +00:00
|
|
|
68EFE4EC1CF6EB3000A1DE13 /* RCTBundleURLProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTBundleURLProvider.h; sourceTree = "<group>"; };
|
|
|
|
68EFE4ED1CF6EB3900A1DE13 /* RCTBundleURLProvider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTBundleURLProvider.m; sourceTree = "<group>"; };
|
2015-10-27 09:41:06 +00:00
|
|
|
6A15FB0C1BDF663500531DFB /* RCTRootViewInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTRootViewInternal.h; sourceTree = "<group>"; };
|
2015-02-20 23:45:12 +00:00
|
|
|
830213F31A654E0800B993E6 /* RCTBridgeModule.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RCTBridgeModule.h; sourceTree = "<group>"; };
|
|
|
|
830A229C1A66C68A008503DA /* RCTRootView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTRootView.h; sourceTree = "<group>"; };
|
|
|
|
830A229D1A66C68A008503DA /* RCTRootView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTRootView.m; sourceTree = "<group>"; };
|
2015-07-28 14:31:26 +00:00
|
|
|
83392EB11B6634E10013B15F /* RCTModalHostViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTModalHostViewController.h; sourceTree = "<group>"; };
|
|
|
|
83392EB21B6634E10013B15F /* RCTModalHostViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTModalHostViewController.m; sourceTree = "<group>"; };
|
|
|
|
83A1FE8A1B62640A00BE0E65 /* RCTModalHostView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTModalHostView.h; sourceTree = "<group>"; };
|
|
|
|
83A1FE8B1B62640A00BE0E65 /* RCTModalHostView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTModalHostView.m; sourceTree = "<group>"; };
|
|
|
|
83A1FE8D1B62643A00BE0E65 /* RCTModalHostViewManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTModalHostViewManager.h; sourceTree = "<group>"; };
|
|
|
|
83A1FE8E1B62643A00BE0E65 /* RCTModalHostViewManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTModalHostViewManager.m; sourceTree = "<group>"; };
|
2015-03-26 09:58:06 +00:00
|
|
|
83CBBA2E1A601D0E00E9B192 /* libReact.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libReact.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
2015-02-20 23:45:12 +00:00
|
|
|
83CBBA4A1A601E3B00E9B192 /* RCTAssert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTAssert.h; sourceTree = "<group>"; };
|
|
|
|
83CBBA4B1A601E3B00E9B192 /* RCTAssert.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTAssert.m; sourceTree = "<group>"; };
|
|
|
|
83CBBA4C1A601E3B00E9B192 /* RCTInvalidating.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTInvalidating.h; sourceTree = "<group>"; };
|
|
|
|
83CBBA4D1A601E3B00E9B192 /* RCTLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTLog.h; sourceTree = "<group>"; };
|
|
|
|
83CBBA4E1A601E3B00E9B192 /* RCTLog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTLog.m; sourceTree = "<group>"; };
|
|
|
|
83CBBA4F1A601E3B00E9B192 /* RCTUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTUtils.h; sourceTree = "<group>"; };
|
|
|
|
83CBBA501A601E3B00E9B192 /* RCTUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTUtils.m; sourceTree = "<group>"; };
|
|
|
|
83CBBA5E1A601EAA00E9B192 /* RCTBridge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTBridge.h; sourceTree = "<group>"; };
|
|
|
|
83CBBA5F1A601EAA00E9B192 /* RCTBridge.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTBridge.m; sourceTree = "<group>"; };
|
|
|
|
83CBBA631A601ECA00E9B192 /* RCTJavaScriptExecutor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RCTJavaScriptExecutor.h; sourceTree = "<group>"; };
|
|
|
|
83CBBA651A601EF300E9B192 /* RCTEventDispatcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTEventDispatcher.h; sourceTree = "<group>"; };
|
|
|
|
83CBBA661A601EF300E9B192 /* RCTEventDispatcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTEventDispatcher.m; sourceTree = "<group>"; };
|
|
|
|
83CBBA961A6020BB00E9B192 /* RCTTouchHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTTouchHandler.h; sourceTree = "<group>"; };
|
|
|
|
83CBBA971A6020BB00E9B192 /* RCTTouchHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTTouchHandler.m; sourceTree = "<group>"; };
|
|
|
|
83CBBACA1A6023D300E9B192 /* RCTConvert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTConvert.h; sourceTree = "<group>"; };
|
|
|
|
83CBBACB1A6023D300E9B192 /* RCTConvert.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTConvert.m; sourceTree = "<group>"; };
|
2015-08-13 14:41:42 +00:00
|
|
|
83F15A171B7CC46900F10295 /* UIView+Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIView+Private.h"; sourceTree = "<group>"; };
|
2016-05-31 19:50:48 +00:00
|
|
|
85C199EC1CD2407900DAD810 /* RCTJSCWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTJSCWrapper.h; sourceTree = "<group>"; };
|
2016-05-31 23:28:00 +00:00
|
|
|
85C199ED1CD2407900DAD810 /* RCTJSCWrapper.mm */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; path = RCTJSCWrapper.mm; sourceTree = "<group>"; };
|
2015-12-01 15:41:20 +00:00
|
|
|
ACDD3FDA1BC7430D00E7DE33 /* RCTBorderStyle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTBorderStyle.h; sourceTree = "<group>"; };
|
2016-07-06 23:26:59 +00:00
|
|
|
B233E6E81D2D843200BC68BA /* RCTI18nManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTI18nManager.h; sourceTree = "<group>"; };
|
|
|
|
B233E6E91D2D845D00BC68BA /* RCTI18nManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTI18nManager.m; sourceTree = "<group>"; };
|
2016-06-28 00:10:50 +00:00
|
|
|
B95154301D1B34B200FE7B80 /* RCTActivityIndicatorView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTActivityIndicatorView.h; sourceTree = "<group>"; };
|
|
|
|
B95154311D1B34B200FE7B80 /* RCTActivityIndicatorView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTActivityIndicatorView.m; sourceTree = "<group>"; };
|
2015-07-07 13:03:56 +00:00
|
|
|
E3BBC8EB1ADE6F47001BBD81 /* RCTTextDecorationLineType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RCTTextDecorationLineType.h; sourceTree = "<group>"; };
|
2015-07-31 14:37:12 +00:00
|
|
|
E9B20B791B500126007A2DA7 /* RCTAccessibilityManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTAccessibilityManager.h; sourceTree = "<group>"; };
|
|
|
|
E9B20B7A1B500126007A2DA7 /* RCTAccessibilityManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTAccessibilityManager.m; sourceTree = "<group>"; };
|
2015-02-20 23:45:12 +00:00
|
|
|
/* End PBXFileReference section */
|
|
|
|
|
|
|
|
/* Begin PBXFrameworksBuildPhase section */
|
|
|
|
83CBBA2B1A601D0E00E9B192 /* Frameworks */ = {
|
|
|
|
isa = PBXFrameworksBuildPhase;
|
|
|
|
buildActionMask = 2147483647;
|
|
|
|
files = (
|
|
|
|
);
|
|
|
|
runOnlyForDeploymentPostprocessing = 0;
|
|
|
|
};
|
|
|
|
/* End PBXFrameworksBuildPhase section */
|
|
|
|
|
|
|
|
/* Begin PBXGroup section */
|
2016-07-14 13:12:34 +00:00
|
|
|
133683431D37ACA10077D0C3 /* CSSLayout */ = {
|
|
|
|
isa = PBXGroup;
|
|
|
|
children = (
|
2016-07-20 15:46:00 +00:00
|
|
|
131541CF1D3E4893006A0E08 /* CSSLayout-internal.h */,
|
2016-07-20 20:26:57 +00:00
|
|
|
1321C8CE1D3EB50800D58318 /* CSSNodeList.c */,
|
|
|
|
1321C8CF1D3EB50800D58318 /* CSSNodeList.h */,
|
2016-07-14 13:12:34 +00:00
|
|
|
133683441D37ACA10077D0C3 /* CSSLayout.c */,
|
|
|
|
133683451D37ACA10077D0C3 /* CSSLayout.h */,
|
|
|
|
133683481D37ACA10077D0C3 /* CSSMacros.h */,
|
|
|
|
);
|
|
|
|
path = CSSLayout;
|
|
|
|
sourceTree = "<group>";
|
|
|
|
};
|
2015-02-20 23:45:12 +00:00
|
|
|
134FCB381A6E7F0800051CC8 /* Executors */ = {
|
|
|
|
isa = PBXGroup;
|
|
|
|
children = (
|
2015-12-16 10:49:27 +00:00
|
|
|
134FCB391A6E7F0800051CC8 /* RCTJSCExecutor.h */,
|
2016-04-21 15:58:29 +00:00
|
|
|
134FCB3A1A6E7F0800051CC8 /* RCTJSCExecutor.mm */,
|
2016-05-31 19:50:48 +00:00
|
|
|
85C199EC1CD2407900DAD810 /* RCTJSCWrapper.h */,
|
|
|
|
85C199ED1CD2407900DAD810 /* RCTJSCWrapper.mm */,
|
2015-02-20 23:45:12 +00:00
|
|
|
);
|
|
|
|
path = Executors;
|
|
|
|
sourceTree = "<group>";
|
|
|
|
};
|
|
|
|
13B07FE01A69315300A75B9A /* Modules */ = {
|
|
|
|
isa = PBXGroup;
|
|
|
|
children = (
|
Added native event emitter
Summary:
This is a solution for the problem I raised in https://www.facebook.com/groups/react.native.community/permalink/768218933313687/
I've added a new native base class, `RCTEventEmitter` as well as an equivalent JS class/module `NativeEventEmitter` (RCTEventEmitter.js and EventEmitter.js were taken already).
Instead of arbitrary modules sending events via `bridge.eventDispatcher`, the idea is that any module that sends events should now subclass `RCTEventEmitter`, and provide an equivalent JS module that subclasses `NativeEventEmitter`.
JS code that wants to observe the events should now observe it via the specific JS module rather than via `RCTDeviceEventEmitter` directly. e.g. to observer a keyboard event, instead of writing:
const RCTDeviceEventEmitter = require('RCTDeviceEventEmitter');
RCTDeviceEventEmitter.addListener('keyboardWillShow', (event) => { ... });
You'd now write:
const Keyboard = require('Keyboard');
Keyboard.addListener('keyboardWillShow', (event) => { ... });
Within a component, you can also use the `Subscribable.Mixin` as you would previously, but instead of:
this.addListenerOn(RCTDeviceEventEmitter, 'keyboardWillShow', ...);
Write:
this.addListenerOn(Keyboard, 'keyboardWillShow', ...);
This approach allows the native `RCTKeyboardObserver` module to be created lazily the first time a listener is added, and to stop sending events when the last listener is removed. It also allows us to validate that the event strings being observed and omitted match the supported events for that module.
As a proof-of-concept, I've converted the `RCTStatusBarManager` and `RCTKeyboardObserver` modules to use the new system. I'll convert the rest in a follow up diff.
For now, the new `NativeEventEmitter` JS module wraps the `RCTDeviceEventEmitter` JS module, and just uses the native `RCTEventEmitter` module for bookkeeping. This allows for full backwards compatibility (code that is observing the event via `RCTDeviceEventEmitter` instead of the specific module will still work as expected, albeit with a warning). Once all legacy calls have been removed, this could be refactored to something more elegant internally, whilst maintaining the same public interface.
Note: currently, all device events still share a single global namespace, since they're really all registered on the same emitter instance internally. We should move away from that as soon as possible because it's not intuitive and will likely lead to strange bugs if people add generic events such as "onChange" or "onError" to their modules (which is common practice for components, where it's not a problem).
Reviewed By: javache
Differential Revision: D3269966
fbshipit-source-id: 1412daba850cd373020e1086673ba38ef9193050
2016-05-11 13:26:53 +00:00
|
|
|
13D9FEE91CDCCECF00158BD7 /* RCTEventEmitter.h */,
|
|
|
|
13D9FEEA1CDCCECF00158BD7 /* RCTEventEmitter.m */,
|
2015-07-31 14:37:12 +00:00
|
|
|
E9B20B791B500126007A2DA7 /* RCTAccessibilityManager.h */,
|
|
|
|
E9B20B7A1B500126007A2DA7 /* RCTAccessibilityManager.m */,
|
2015-02-20 23:45:12 +00:00
|
|
|
13B07FE71A69327A00A75B9A /* RCTAlertManager.h */,
|
|
|
|
13B07FE81A69327A00A75B9A /* RCTAlertManager.m */,
|
2015-07-06 09:52:38 +00:00
|
|
|
1372B7081AB030C200659ED6 /* RCTAppState.h */,
|
|
|
|
1372B7091AB030C200659ED6 /* RCTAppState.m */,
|
2015-03-11 19:06:03 +00:00
|
|
|
58114A4F1AAE93D500E7D092 /* RCTAsyncLocalStorage.h */,
|
|
|
|
58114A4E1AAE93D500E7D092 /* RCTAsyncLocalStorage.m */,
|
2015-12-09 18:00:19 +00:00
|
|
|
13D033611C1837FE0021DC29 /* RCTClipboard.h */,
|
|
|
|
13D033621C1837FE0021DC29 /* RCTClipboard.m */,
|
2015-08-08 09:58:30 +00:00
|
|
|
13A0C2851B74F71200B29F6F /* RCTDevLoadingView.h */,
|
|
|
|
13A0C2861B74F71200B29F6F /* RCTDevLoadingView.m */,
|
|
|
|
13A0C2871B74F71200B29F6F /* RCTDevMenu.h */,
|
|
|
|
13A0C2881B74F71200B29F6F /* RCTDevMenu.m */,
|
2015-02-20 23:45:12 +00:00
|
|
|
13B07FE91A69327A00A75B9A /* RCTExceptionsManager.h */,
|
|
|
|
13B07FEA1A69327A00A75B9A /* RCTExceptionsManager.m */,
|
2015-08-19 12:27:43 +00:00
|
|
|
13F17A831B8493E5007D4C75 /* RCTRedBox.h */,
|
|
|
|
13F17A841B8493E5007D4C75 /* RCTRedBox.m */,
|
2015-03-13 00:49:54 +00:00
|
|
|
000E6CE91AB0E97F000CDF4D /* RCTSourceCode.h */,
|
|
|
|
000E6CEA1AB0E980000CDF4D /* RCTSourceCode.m */,
|
2015-02-20 23:45:12 +00:00
|
|
|
13723B4E1A82FD3C00F88898 /* RCTStatusBarManager.h */,
|
|
|
|
13723B4F1A82FD3C00F88898 /* RCTStatusBarManager.m */,
|
2016-06-21 22:37:37 +00:00
|
|
|
352DCFEE1D19F4C20056D623 /* RCTI18nUtil.h */,
|
|
|
|
352DCFEF1D19F4C20056D623 /* RCTI18nUtil.m */,
|
2016-07-06 23:26:59 +00:00
|
|
|
B233E6E91D2D845D00BC68BA /* RCTI18nManager.m */,
|
|
|
|
B233E6E81D2D843200BC68BA /* RCTI18nManager.h */,
|
Added native event emitter
Summary:
This is a solution for the problem I raised in https://www.facebook.com/groups/react.native.community/permalink/768218933313687/
I've added a new native base class, `RCTEventEmitter` as well as an equivalent JS class/module `NativeEventEmitter` (RCTEventEmitter.js and EventEmitter.js were taken already).
Instead of arbitrary modules sending events via `bridge.eventDispatcher`, the idea is that any module that sends events should now subclass `RCTEventEmitter`, and provide an equivalent JS module that subclasses `NativeEventEmitter`.
JS code that wants to observe the events should now observe it via the specific JS module rather than via `RCTDeviceEventEmitter` directly. e.g. to observer a keyboard event, instead of writing:
const RCTDeviceEventEmitter = require('RCTDeviceEventEmitter');
RCTDeviceEventEmitter.addListener('keyboardWillShow', (event) => { ... });
You'd now write:
const Keyboard = require('Keyboard');
Keyboard.addListener('keyboardWillShow', (event) => { ... });
Within a component, you can also use the `Subscribable.Mixin` as you would previously, but instead of:
this.addListenerOn(RCTDeviceEventEmitter, 'keyboardWillShow', ...);
Write:
this.addListenerOn(Keyboard, 'keyboardWillShow', ...);
This approach allows the native `RCTKeyboardObserver` module to be created lazily the first time a listener is added, and to stop sending events when the last listener is removed. It also allows us to validate that the event strings being observed and omitted match the supported events for that module.
As a proof-of-concept, I've converted the `RCTStatusBarManager` and `RCTKeyboardObserver` modules to use the new system. I'll convert the rest in a follow up diff.
For now, the new `NativeEventEmitter` JS module wraps the `RCTDeviceEventEmitter` JS module, and just uses the native `RCTEventEmitter` module for bookkeeping. This allows for full backwards compatibility (code that is observing the event via `RCTDeviceEventEmitter` instead of the specific module will still work as expected, albeit with a warning). Once all legacy calls have been removed, this could be refactored to something more elegant internally, whilst maintaining the same public interface.
Note: currently, all device events still share a single global namespace, since they're really all registered on the same emitter instance internally. We should move away from that as soon as possible because it's not intuitive and will likely lead to strange bugs if people add generic events such as "onChange" or "onError" to their modules (which is common practice for components, where it's not a problem).
Reviewed By: javache
Differential Revision: D3269966
fbshipit-source-id: 1412daba850cd373020e1086673ba38ef9193050
2016-05-11 13:26:53 +00:00
|
|
|
13D9FEEC1CDCD93000158BD7 /* RCTKeyboardObserver.h */,
|
|
|
|
13D9FEED1CDCD93000158BD7 /* RCTKeyboardObserver.m */,
|
2015-02-20 23:45:12 +00:00
|
|
|
13B07FED1A69327A00A75B9A /* RCTTiming.h */,
|
|
|
|
13B07FEE1A69327A00A75B9A /* RCTTiming.m */,
|
|
|
|
13E067481A70F434002CDEE1 /* RCTUIManager.h */,
|
|
|
|
13E067491A70F434002CDEE1 /* RCTUIManager.m */,
|
|
|
|
);
|
|
|
|
path = Modules;
|
|
|
|
sourceTree = "<group>";
|
|
|
|
};
|
|
|
|
13B07FF31A6947C200A75B9A /* Views */ = {
|
|
|
|
isa = PBXGroup;
|
|
|
|
children = (
|
2016-06-28 00:10:50 +00:00
|
|
|
B95154301D1B34B200FE7B80 /* RCTActivityIndicatorView.h */,
|
|
|
|
B95154311D1B34B200FE7B80 /* RCTActivityIndicatorView.m */,
|
2015-07-06 09:52:38 +00:00
|
|
|
13B080181A69489C00A75B9A /* RCTActivityIndicatorViewManager.h */,
|
|
|
|
13B080191A69489C00A75B9A /* RCTActivityIndicatorViewManager.m */,
|
2015-03-10 16:32:20 +00:00
|
|
|
13442BF21AA90E0B0037E5B0 /* RCTAnimationType.h */,
|
|
|
|
13C325261AA63B6A0048765F /* RCTAutoInsetsProtocol.h */,
|
2015-05-28 15:52:46 +00:00
|
|
|
13CC8A801B17642100940AE7 /* RCTBorderDrawing.h */,
|
|
|
|
13CC8A811B17642100940AE7 /* RCTBorderDrawing.m */,
|
2016-08-05 19:29:19 +00:00
|
|
|
ACDD3FDA1BC7430D00E7DE33 /* RCTBorderStyle.h */,
|
2015-08-06 22:44:15 +00:00
|
|
|
13C325281AA63B6A0048765F /* RCTComponent.h */,
|
|
|
|
13AB90BF1B6FA36700713B4F /* RCTComponentData.h */,
|
|
|
|
13AB90C01B6FA36700713B4F /* RCTComponentData.m */,
|
2015-04-15 00:51:28 +00:00
|
|
|
13456E911ADAD2DE009F94A7 /* RCTConvert+CoreLocation.h */,
|
|
|
|
13456E921ADAD2DE009F94A7 /* RCTConvert+CoreLocation.m */,
|
2016-08-05 19:29:19 +00:00
|
|
|
13456E941ADAD482009F94A7 /* RCTConvert+MapKit.h */,
|
2015-04-15 00:51:28 +00:00
|
|
|
13456E951ADAD482009F94A7 /* RCTConvert+MapKit.m */,
|
Added mechanism for directly mapping JS event handlers to blocks
Summary:
Currently, the system for mapping JS event handlers to blocks is quite clean on the JS side, but is clunky on the native side. The event property is passed as a boolean, which can then be checked by the native side, and if true, the native side is supposed to send an event via the event dispatcher.
This diff adds the facility to declare the property as a block instead. This means that the event side can simply call the block, and it will automatically send the event. Because the blocks for bubbling and direct events are named differently, we can also use this to generate the event registration data and get rid of the arrays of event names.
The name of the event is inferred from the property name, which means that the property for an event called "load" must be called `onLoad` or the mapping won't work. This can be optionally remapped to a different property name on the view itself if necessary, e.g.
RCT_REMAP_VIEW_PROPERTY(onLoad, loadEventBlock, RCTDirectEventBlock)
If you don't want to use this mechanism then for now it is still possible to declare the property as a BOOL instead and use the old mechanism (this approach is now deprecated however, and may eventually be removed altogether).
2015-09-02 12:58:10 +00:00
|
|
|
133CAE8C1B8E5CFD00F6AD92 /* RCTDatePicker.h */,
|
|
|
|
133CAE8D1B8E5CFD00F6AD92 /* RCTDatePicker.m */,
|
2015-07-06 09:52:38 +00:00
|
|
|
58C571C01AA56C1900CDF9C8 /* RCTDatePickerManager.h */,
|
|
|
|
58C571BF1AA56C1900CDF9C8 /* RCTDatePickerManager.m */,
|
2016-08-05 19:29:19 +00:00
|
|
|
3D37B5801D522B190042D5B5 /* RCTFont.h */,
|
2016-08-05 19:29:20 +00:00
|
|
|
3D37B5811D522B190042D5B5 /* RCTFont.mm */,
|
2015-03-10 01:05:10 +00:00
|
|
|
14435CE11AAC4AE100FC20F4 /* RCTMap.h */,
|
|
|
|
14435CE21AAC4AE100FC20F4 /* RCTMap.m */,
|
Add Polyline support to MapView
Summary: Per issue #1925, add support for Polyline to MapView.
Briefly, if you have a MapView declared as:
<MapView
annotations={this.state.annotations}
overlays={this.state.overlays}
style={styles.map}
region={this.state.region}
ref="mapView"
/>
then setting
this.state.overlays = [{
coordinates: [
{ latitude: 35.5, longitude: -5.5 },
{ latitude: 35.6, longitude: -5.6 },
...
],
strokeColor: 'rgba(255, 0, 0, 0.5)',
lineWidth: 3,
}];
will draw a red line between the points in locations with a width of 3 and equally blended with the background.
Closes https://github.com/facebook/react-native/pull/4153
Reviewed By: svcscm
Differential Revision: D2697347
Pulled By: nicklockwood
fb-gh-sync-id: a436e4ed8d4e43f2872b39b4694fad7c02de8fe5
2015-11-26 15:09:59 +00:00
|
|
|
13B202021BFB948C00C07393 /* RCTMapAnnotation.h */,
|
|
|
|
13B202031BFB948C00C07393 /* RCTMapAnnotation.m */,
|
2015-03-10 01:05:10 +00:00
|
|
|
14435CE31AAC4AE100FC20F4 /* RCTMapManager.h */,
|
|
|
|
14435CE41AAC4AE100FC20F4 /* RCTMapManager.m */,
|
2016-08-05 19:29:19 +00:00
|
|
|
13AFBC9E1C07247D00BBAEAA /* RCTMapOverlay.h */,
|
|
|
|
13AFBC9F1C07247D00BBAEAA /* RCTMapOverlay.m */,
|
2015-07-28 14:31:26 +00:00
|
|
|
83A1FE8A1B62640A00BE0E65 /* RCTModalHostView.h */,
|
|
|
|
83A1FE8B1B62640A00BE0E65 /* RCTModalHostView.m */,
|
|
|
|
83392EB11B6634E10013B15F /* RCTModalHostViewController.h */,
|
|
|
|
83392EB21B6634E10013B15F /* RCTModalHostViewController.m */,
|
|
|
|
83A1FE8D1B62643A00BE0E65 /* RCTModalHostViewManager.h */,
|
|
|
|
83A1FE8E1B62643A00BE0E65 /* RCTModalHostViewManager.m */,
|
2015-02-20 23:45:12 +00:00
|
|
|
13B0800C1A69489C00A75B9A /* RCTNavigator.h */,
|
|
|
|
13B0800D1A69489C00A75B9A /* RCTNavigator.m */,
|
|
|
|
13B0800E1A69489C00A75B9A /* RCTNavigatorManager.h */,
|
|
|
|
13B0800F1A69489C00A75B9A /* RCTNavigatorManager.m */,
|
|
|
|
13B080101A69489C00A75B9A /* RCTNavItem.h */,
|
|
|
|
13B080111A69489C00A75B9A /* RCTNavItem.m */,
|
|
|
|
13B080121A69489C00A75B9A /* RCTNavItemManager.h */,
|
|
|
|
13B080131A69489C00A75B9A /* RCTNavItemManager.m */,
|
2015-03-10 16:32:20 +00:00
|
|
|
58114A121AAE854800E7D092 /* RCTPicker.h */,
|
|
|
|
58114A131AAE854800E7D092 /* RCTPicker.m */,
|
|
|
|
58114A141AAE854800E7D092 /* RCTPickerManager.h */,
|
|
|
|
58114A151AAE854800E7D092 /* RCTPickerManager.m */,
|
|
|
|
13442BF31AA90E0B0037E5B0 /* RCTPointerEvents.h */,
|
2015-06-03 16:49:22 +00:00
|
|
|
13513F3A1B1F43F400FCE529 /* RCTProgressViewManager.h */,
|
|
|
|
13513F3B1B1F43F400FCE529 /* RCTProgressViewManager.m */,
|
2016-01-04 15:59:10 +00:00
|
|
|
191E3EBF1C29DC3800C180A6 /* RCTRefreshControl.h */,
|
|
|
|
191E3EC01C29DC3800C180A6 /* RCTRefreshControl.m */,
|
|
|
|
191E3EBC1C29D9AF00C180A6 /* RCTRefreshControlManager.h */,
|
|
|
|
191E3EBD1C29D9AF00C180A6 /* RCTRefreshControlManager.m */,
|
2016-08-05 19:29:19 +00:00
|
|
|
13BCE8071C99CB9D00DD7AAD /* RCTRootShadowView.h */,
|
|
|
|
13BCE8081C99CB9D00DD7AAD /* RCTRootShadowView.m */,
|
2015-07-06 09:52:38 +00:00
|
|
|
13C325271AA63B6A0048765F /* RCTScrollableProtocol.h */,
|
2015-02-20 23:45:12 +00:00
|
|
|
13B07FF61A6947C200A75B9A /* RCTScrollView.h */,
|
|
|
|
13B07FF71A6947C200A75B9A /* RCTScrollView.m */,
|
|
|
|
13B07FF81A6947C200A75B9A /* RCTScrollViewManager.h */,
|
|
|
|
13B07FF91A6947C200A75B9A /* RCTScrollViewManager.m */,
|
2015-07-06 09:52:38 +00:00
|
|
|
131B6AF01AF1093D00FFC3E0 /* RCTSegmentedControl.h */,
|
|
|
|
131B6AF11AF1093D00FFC3E0 /* RCTSegmentedControl.m */,
|
|
|
|
131B6AF21AF1093D00FFC3E0 /* RCTSegmentedControlManager.h */,
|
|
|
|
131B6AF31AF1093D00FFC3E0 /* RCTSegmentedControlManager.m */,
|
2015-02-20 23:45:12 +00:00
|
|
|
13E0674B1A70F44B002CDEE1 /* RCTShadowView.h */,
|
|
|
|
13E0674C1A70F44B002CDEE1 /* RCTShadowView.m */,
|
2015-04-21 22:08:20 +00:00
|
|
|
13AF20431AE707F8005F5298 /* RCTSlider.h */,
|
|
|
|
13AF20441AE707F9005F5298 /* RCTSlider.m */,
|
2015-03-10 16:32:20 +00:00
|
|
|
14F484541AABFCE100FDF6B9 /* RCTSliderManager.h */,
|
|
|
|
14F484551AABFCE100FDF6B9 /* RCTSliderManager.m */,
|
|
|
|
14F362071AABD06A001CE568 /* RCTSwitch.h */,
|
|
|
|
14F362081AABD06A001CE568 /* RCTSwitch.m */,
|
|
|
|
14F362091AABD06A001CE568 /* RCTSwitchManager.h */,
|
|
|
|
14F3620A1AABD06A001CE568 /* RCTSwitchManager.m */,
|
|
|
|
137327DF1AA5CF210034F82E /* RCTTabBar.h */,
|
|
|
|
137327E01AA5CF210034F82E /* RCTTabBar.m */,
|
|
|
|
137327E11AA5CF210034F82E /* RCTTabBarItem.h */,
|
|
|
|
137327E21AA5CF210034F82E /* RCTTabBarItem.m */,
|
|
|
|
137327E31AA5CF210034F82E /* RCTTabBarItemManager.h */,
|
|
|
|
137327E41AA5CF210034F82E /* RCTTabBarItemManager.m */,
|
|
|
|
137327E51AA5CF210034F82E /* RCTTabBarManager.h */,
|
|
|
|
137327E61AA5CF210034F82E /* RCTTabBarManager.m */,
|
2015-07-28 14:31:26 +00:00
|
|
|
E3BBC8EB1ADE6F47001BBD81 /* RCTTextDecorationLineType.h */,
|
2015-02-20 23:45:12 +00:00
|
|
|
13E0674F1A70F44B002CDEE1 /* RCTView.h */,
|
|
|
|
13E067501A70F44B002CDEE1 /* RCTView.m */,
|
2015-03-10 16:32:20 +00:00
|
|
|
13442BF41AA90E0B0037E5B0 /* RCTViewControllerProtocol.h */,
|
2015-02-20 23:45:12 +00:00
|
|
|
13E0674D1A70F44B002CDEE1 /* RCTViewManager.h */,
|
|
|
|
13E0674E1A70F44B002CDEE1 /* RCTViewManager.m */,
|
2015-03-14 08:22:25 +00:00
|
|
|
13C156011AB1A2840079392D /* RCTWebView.h */,
|
|
|
|
13C156021AB1A2840079392D /* RCTWebView.m */,
|
|
|
|
13C156031AB1A2840079392D /* RCTWebViewManager.h */,
|
|
|
|
13C156041AB1A2840079392D /* RCTWebViewManager.m */,
|
2015-02-20 23:45:12 +00:00
|
|
|
13B080231A694A8400A75B9A /* RCTWrapperViewController.h */,
|
|
|
|
13B080241A694A8400A75B9A /* RCTWrapperViewController.m */,
|
2015-08-13 14:41:42 +00:00
|
|
|
83F15A171B7CC46900F10295 /* UIView+Private.h */,
|
2015-03-26 09:58:06 +00:00
|
|
|
13E067531A70F44B002CDEE1 /* UIView+React.h */,
|
|
|
|
13E067541A70F44B002CDEE1 /* UIView+React.m */,
|
2015-02-20 23:45:12 +00:00
|
|
|
);
|
|
|
|
path = Views;
|
|
|
|
sourceTree = "<group>";
|
|
|
|
};
|
2015-10-20 11:11:38 +00:00
|
|
|
1450FF7F1BCFF28A00208362 /* Profiler */ = {
|
|
|
|
isa = PBXGroup;
|
|
|
|
children = (
|
2015-12-15 21:38:48 +00:00
|
|
|
14A43DF11C20B1C900794BC8 /* RCTJSCProfiler.h */,
|
|
|
|
14A43DF21C20B1C900794BC8 /* RCTJSCProfiler.m */,
|
2015-11-24 14:48:04 +00:00
|
|
|
14BF71811C04795500C97D0C /* RCTMacros.h */,
|
2015-10-23 17:53:42 +00:00
|
|
|
14F7A0EB1BDA3B3C003C6C10 /* RCTPerfMonitor.m */,
|
|
|
|
14F7A0EE1BDA714B003C6C10 /* RCTFPSGraph.h */,
|
|
|
|
14F7A0EF1BDA714B003C6C10 /* RCTFPSGraph.m */,
|
2015-10-20 11:11:38 +00:00
|
|
|
1450FF801BCFF28A00208362 /* RCTProfile.h */,
|
|
|
|
1450FF811BCFF28A00208362 /* RCTProfile.m */,
|
|
|
|
1450FF821BCFF28A00208362 /* RCTProfileTrampoline-arm.S */,
|
|
|
|
1450FF831BCFF28A00208362 /* RCTProfileTrampoline-arm64.S */,
|
2015-11-25 11:09:00 +00:00
|
|
|
14BF717F1C04793D00C97D0C /* RCTProfileTrampoline-i386.S */,
|
2015-10-20 11:11:38 +00:00
|
|
|
1450FF851BCFF28A00208362 /* RCTProfileTrampoline-x86_64.S */,
|
|
|
|
);
|
|
|
|
path = Profiler;
|
|
|
|
sourceTree = "<group>";
|
|
|
|
};
|
2015-02-20 23:45:12 +00:00
|
|
|
83CBB9F61A601CBA00E9B192 = {
|
|
|
|
isa = PBXGroup;
|
|
|
|
children = (
|
2015-03-26 09:58:06 +00:00
|
|
|
83CBBA2F1A601D0F00E9B192 /* React */,
|
2015-02-20 23:45:12 +00:00
|
|
|
83CBBA001A601CBA00E9B192 /* Products */,
|
|
|
|
);
|
2015-04-02 00:24:16 +00:00
|
|
|
indentWidth = 2;
|
2015-02-20 23:45:12 +00:00
|
|
|
sourceTree = "<group>";
|
2015-04-02 00:24:16 +00:00
|
|
|
tabWidth = 2;
|
2015-02-20 23:45:12 +00:00
|
|
|
};
|
|
|
|
83CBBA001A601CBA00E9B192 /* Products */ = {
|
|
|
|
isa = PBXGroup;
|
|
|
|
children = (
|
2015-03-26 09:58:06 +00:00
|
|
|
83CBBA2E1A601D0E00E9B192 /* libReact.a */,
|
2015-02-20 23:45:12 +00:00
|
|
|
);
|
|
|
|
name = Products;
|
|
|
|
sourceTree = "<group>";
|
|
|
|
};
|
2015-03-26 09:58:06 +00:00
|
|
|
83CBBA2F1A601D0F00E9B192 /* React */ = {
|
2015-02-20 23:45:12 +00:00
|
|
|
isa = PBXGroup;
|
|
|
|
children = (
|
|
|
|
83CBBA491A601E3B00E9B192 /* Base */,
|
2016-07-14 13:12:34 +00:00
|
|
|
133683431D37ACA10077D0C3 /* CSSLayout */,
|
2015-02-20 23:45:12 +00:00
|
|
|
134FCB381A6E7F0800051CC8 /* Executors */,
|
|
|
|
13B07FE01A69315300A75B9A /* Modules */,
|
2015-10-20 11:11:38 +00:00
|
|
|
1450FF7F1BCFF28A00208362 /* Profiler */,
|
2015-02-20 23:45:12 +00:00
|
|
|
13B07FF31A6947C200A75B9A /* Views */,
|
|
|
|
);
|
2015-03-26 09:58:06 +00:00
|
|
|
name = React;
|
2015-02-20 23:45:12 +00:00
|
|
|
sourceTree = "<group>";
|
|
|
|
};
|
|
|
|
83CBBA491A601E3B00E9B192 /* Base */ = {
|
|
|
|
isa = PBXGroup;
|
|
|
|
children = (
|
2016-07-18 18:27:55 +00:00
|
|
|
3EDCA8A21D3591E700450C31 /* RCTErrorCustomizer.h */,
|
|
|
|
3EDCA8A31D3591E700450C31 /* RCTErrorInfo.h */,
|
|
|
|
3EDCA8A41D3591E700450C31 /* RCTErrorInfo.m */,
|
2016-05-31 11:56:49 +00:00
|
|
|
68EFE4ED1CF6EB3900A1DE13 /* RCTBundleURLProvider.m */,
|
|
|
|
68EFE4EC1CF6EB3000A1DE13 /* RCTBundleURLProvider.h */,
|
2015-02-20 23:45:12 +00:00
|
|
|
83CBBA4A1A601E3B00E9B192 /* RCTAssert.h */,
|
|
|
|
83CBBA4B1A601E3B00E9B192 /* RCTAssert.m */,
|
2015-07-06 09:52:38 +00:00
|
|
|
14C2CA771B3ACB0400E6CBB2 /* RCTBatchedBridge.m */,
|
2015-02-20 23:45:12 +00:00
|
|
|
83CBBA5E1A601EAA00E9B192 /* RCTBridge.h */,
|
|
|
|
83CBBA5F1A601EAA00E9B192 /* RCTBridge.m */,
|
2016-02-17 15:38:11 +00:00
|
|
|
14A43DB81C1F849600794BC8 /* RCTBridge+Private.h */,
|
2015-08-25 10:30:51 +00:00
|
|
|
1482F9E61B55B927000ADFF3 /* RCTBridgeDelegate.h */,
|
Add Polyline support to MapView
Summary: Per issue #1925, add support for Polyline to MapView.
Briefly, if you have a MapView declared as:
<MapView
annotations={this.state.annotations}
overlays={this.state.overlays}
style={styles.map}
region={this.state.region}
ref="mapView"
/>
then setting
this.state.overlays = [{
coordinates: [
{ latitude: 35.5, longitude: -5.5 },
{ latitude: 35.6, longitude: -5.6 },
...
],
strokeColor: 'rgba(255, 0, 0, 0.5)',
lineWidth: 3,
}];
will draw a red line between the points in locations with a width of 3 and equally blended with the background.
Closes https://github.com/facebook/react-native/pull/4153
Reviewed By: svcscm
Differential Revision: D2697347
Pulled By: nicklockwood
fb-gh-sync-id: a436e4ed8d4e43f2872b39b4694fad7c02de8fe5
2015-11-26 15:09:59 +00:00
|
|
|
13AFBCA11C07287B00BBAEAA /* RCTBridgeMethod.h */,
|
2016-02-17 15:38:11 +00:00
|
|
|
830213F31A654E0800B993E6 /* RCTBridgeModule.h */,
|
2015-02-20 23:45:12 +00:00
|
|
|
83CBBACA1A6023D300E9B192 /* RCTConvert.h */,
|
|
|
|
83CBBACB1A6023D300E9B192 /* RCTConvert.m */,
|
2015-04-21 20:25:19 +00:00
|
|
|
13AF1F851AE6E777005F5298 /* RCTDefines.h */,
|
2016-03-30 10:07:57 +00:00
|
|
|
3D1E68D81CABD13900DD7465 /* RCTDisplayLink.h */,
|
|
|
|
3D1E68D91CABD13900DD7465 /* RCTDisplayLink.m */,
|
2015-02-20 23:45:12 +00:00
|
|
|
83CBBA651A601EF300E9B192 /* RCTEventDispatcher.h */,
|
|
|
|
83CBBA661A601EF300E9B192 /* RCTEventDispatcher.m */,
|
2015-07-06 09:52:38 +00:00
|
|
|
1436DD071ADE7AA000A5ED7D /* RCTFrameUpdate.h */,
|
|
|
|
14C2CA751B3AC64F00E6CBB2 /* RCTFrameUpdate.m */,
|
2016-02-17 15:38:11 +00:00
|
|
|
13BB3D001BECD54500932C10 /* RCTImageSource.h */,
|
|
|
|
13BB3D011BECD54500932C10 /* RCTImageSource.m */,
|
2015-02-20 23:45:12 +00:00
|
|
|
83CBBA4C1A601E3B00E9B192 /* RCTInvalidating.h */,
|
|
|
|
83CBBA631A601ECA00E9B192 /* RCTJavaScriptExecutor.h */,
|
2015-07-06 09:52:38 +00:00
|
|
|
14200DA81AC179B3008EE6BA /* RCTJavaScriptLoader.h */,
|
|
|
|
14200DA91AC179B3008EE6BA /* RCTJavaScriptLoader.m */,
|
2016-07-11 13:05:51 +00:00
|
|
|
008341F51D1DB34400876D9A /* RCTJSStackFrame.h */,
|
|
|
|
008341F41D1DB34400876D9A /* RCTJSStackFrame.m */,
|
2015-02-20 23:45:12 +00:00
|
|
|
13A1F71C1A75392D00D3D453 /* RCTKeyCommands.h */,
|
|
|
|
13A1F71D1A75392D00D3D453 /* RCTKeyCommands.m */,
|
|
|
|
83CBBA4D1A601E3B00E9B192 /* RCTLog.h */,
|
|
|
|
83CBBA4E1A601E3B00E9B192 /* RCTLog.m */,
|
2015-07-06 09:52:38 +00:00
|
|
|
14C2CA721B3AC64300E6CBB2 /* RCTModuleData.h */,
|
|
|
|
14C2CA731B3AC64300E6CBB2 /* RCTModuleData.m */,
|
|
|
|
14C2CA6F1B3AC63800E6CBB2 /* RCTModuleMethod.h */,
|
|
|
|
14C2CA701B3AC63800E6CBB2 /* RCTModuleMethod.m */,
|
2015-12-10 18:09:04 +00:00
|
|
|
13A6E20F1C19ABC700845B82 /* RCTNullability.h */,
|
|
|
|
13A6E20C1C19AA0C00845B82 /* RCTParserUtils.h */,
|
|
|
|
13A6E20D1C19AA0C00845B82 /* RCTParserUtils.m */,
|
2015-07-06 09:52:38 +00:00
|
|
|
142014181B32094000CC17BA /* RCTPerformanceLogger.h */,
|
|
|
|
142014171B32094000CC17BA /* RCTPerformanceLogger.m */,
|
2015-02-20 23:45:12 +00:00
|
|
|
830A229C1A66C68A008503DA /* RCTRootView.h */,
|
|
|
|
830A229D1A66C68A008503DA /* RCTRootView.m */,
|
Add Polyline support to MapView
Summary: Per issue #1925, add support for Polyline to MapView.
Briefly, if you have a MapView declared as:
<MapView
annotations={this.state.annotations}
overlays={this.state.overlays}
style={styles.map}
region={this.state.region}
ref="mapView"
/>
then setting
this.state.overlays = [{
coordinates: [
{ latitude: 35.5, longitude: -5.5 },
{ latitude: 35.6, longitude: -5.6 },
...
],
strokeColor: 'rgba(255, 0, 0, 0.5)',
lineWidth: 3,
}];
will draw a red line between the points in locations with a width of 3 and equally blended with the background.
Closes https://github.com/facebook/react-native/pull/4153
Reviewed By: svcscm
Differential Revision: D2697347
Pulled By: nicklockwood
fb-gh-sync-id: a436e4ed8d4e43f2872b39b4694fad7c02de8fe5
2015-11-26 15:09:59 +00:00
|
|
|
13AFBCA21C07287B00BBAEAA /* RCTRootViewDelegate.h */,
|
2016-02-17 15:38:11 +00:00
|
|
|
6A15FB0C1BDF663500531DFB /* RCTRootViewInternal.h */,
|
2016-02-03 15:09:55 +00:00
|
|
|
391E86A31C623EC800009732 /* RCTTouchEvent.h */,
|
|
|
|
391E86A21C623EC800009732 /* RCTTouchEvent.m */,
|
2015-02-20 23:45:12 +00:00
|
|
|
83CBBA961A6020BB00E9B192 /* RCTTouchHandler.h */,
|
|
|
|
83CBBA971A6020BB00E9B192 /* RCTTouchHandler.m */,
|
2015-07-06 09:52:38 +00:00
|
|
|
1345A83A1B265A0E00583190 /* RCTURLRequestDelegate.h */,
|
|
|
|
1345A83B1B265A0E00583190 /* RCTURLRequestHandler.h */,
|
2015-02-20 23:45:12 +00:00
|
|
|
83CBBA4F1A601E3B00E9B192 /* RCTUtils.h */,
|
|
|
|
83CBBA501A601E3B00E9B192 /* RCTUtils.m */,
|
2016-02-17 15:38:11 +00:00
|
|
|
3DB910701C74B21600838BBE /* RCTWebSocketProxy.h */,
|
|
|
|
3DB910711C74B21600838BBE /* RCTWebSocketProxyDelegate.h */,
|
2015-02-20 23:45:12 +00:00
|
|
|
);
|
|
|
|
path = Base;
|
|
|
|
sourceTree = "<group>";
|
|
|
|
};
|
|
|
|
/* End PBXGroup section */
|
|
|
|
|
|
|
|
/* Begin PBXNativeTarget section */
|
2015-03-26 09:58:06 +00:00
|
|
|
83CBBA2D1A601D0E00E9B192 /* React */ = {
|
2015-02-20 23:45:12 +00:00
|
|
|
isa = PBXNativeTarget;
|
2015-03-26 09:58:06 +00:00
|
|
|
buildConfigurationList = 83CBBA3F1A601D0F00E9B192 /* Build configuration list for PBXNativeTarget "React" */;
|
2015-02-20 23:45:12 +00:00
|
|
|
buildPhases = (
|
|
|
|
006B79A01A781F38006873D1 /* ShellScript */,
|
|
|
|
83CBBA2A1A601D0E00E9B192 /* Sources */,
|
|
|
|
83CBBA2B1A601D0E00E9B192 /* Frameworks */,
|
|
|
|
83CBBA2C1A601D0E00E9B192 /* Copy Files */,
|
2015-07-20 16:14:53 +00:00
|
|
|
142C4F7F1B582EA6001F0B58 /* ShellScript */,
|
2015-02-20 23:45:12 +00:00
|
|
|
);
|
|
|
|
buildRules = (
|
|
|
|
);
|
|
|
|
dependencies = (
|
|
|
|
);
|
2015-03-26 09:58:06 +00:00
|
|
|
name = React;
|
|
|
|
productName = React;
|
|
|
|
productReference = 83CBBA2E1A601D0E00E9B192 /* libReact.a */;
|
2015-02-20 23:45:12 +00:00
|
|
|
productType = "com.apple.product-type.library.static";
|
|
|
|
};
|
|
|
|
/* End PBXNativeTarget section */
|
|
|
|
|
|
|
|
/* Begin PBXProject section */
|
|
|
|
83CBB9F71A601CBA00E9B192 /* Project object */ = {
|
|
|
|
isa = PBXProject;
|
|
|
|
attributes = {
|
|
|
|
LastUpgradeCheck = 0610;
|
|
|
|
ORGANIZATIONNAME = Facebook;
|
|
|
|
TargetAttributes = {
|
|
|
|
83CBBA2D1A601D0E00E9B192 = {
|
|
|
|
CreatedOnToolsVersion = 6.1.1;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
2015-03-26 09:58:06 +00:00
|
|
|
buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "React" */;
|
2015-02-20 23:45:12 +00:00
|
|
|
compatibilityVersion = "Xcode 3.2";
|
|
|
|
developmentRegion = English;
|
|
|
|
hasScannedForEncodings = 0;
|
|
|
|
knownRegions = (
|
|
|
|
en,
|
|
|
|
Base,
|
|
|
|
);
|
|
|
|
mainGroup = 83CBB9F61A601CBA00E9B192;
|
|
|
|
productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
|
|
|
|
projectDirPath = "";
|
|
|
|
projectRoot = "";
|
|
|
|
targets = (
|
2015-03-26 09:58:06 +00:00
|
|
|
83CBBA2D1A601D0E00E9B192 /* React */,
|
2015-02-20 23:45:12 +00:00
|
|
|
);
|
|
|
|
};
|
|
|
|
/* End PBXProject section */
|
|
|
|
|
|
|
|
/* Begin PBXShellScriptBuildPhase section */
|
|
|
|
006B79A01A781F38006873D1 /* ShellScript */ = {
|
|
|
|
isa = PBXShellScriptBuildPhase;
|
|
|
|
buildActionMask = 2147483647;
|
|
|
|
files = (
|
|
|
|
);
|
|
|
|
inputPaths = (
|
|
|
|
);
|
|
|
|
outputPaths = (
|
|
|
|
);
|
|
|
|
runOnlyForDeploymentPostprocessing = 0;
|
|
|
|
shellPath = /bin/sh;
|
Added way to not launch packager during CI build, as it hangs CI builds
Summary:
Change & motivation:
Added an environment variable, RCT_NO_LAUNCH_PACKAGER, that when set
Xcode not the launch the packager when building. This switch is needed
for CI builds, where launching the packager, which stays running, causes
the build to hang; port conflicts can be an issue as well. Really the
packager is only appropriate for interactive developer builds. This
is a problem for Visual Studio Team Services where we just added
React Native CI build support with a React Native build extension and
surely a problem for all CI systems. This fix is simple, and now if
the build machine sets RCT_NO_LAUNCH_PACKAGER globally or passes
it as an arg to xcodebuild, the packager won't launch and all is well.
Testing:
I tested by building both with & without the environment variable defined, ensuring
things work probably in both cases. I also added support to our VSTS build ask to use
this and verified it works as expected too, when setting the variable..
Closes https://github.com/facebook/react-native/pull/6180
Differential Revision: D3764648
Pulled By: sahrens
fbshipit-source-id: b41cc06152aec271bbfdb2bd52d4b83a5f9c09a7
2016-08-24 17:11:30 +00:00
|
|
|
shellScript = "if [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost 8081 ; then\n if ! curl -s \"http://localhost:8081/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port 8081 already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open \"$SRCROOT/../packager/launchPackager.command\" || echo \"Can't start packager automatically\"\n fi\nfi";
|
2015-02-20 23:45:12 +00:00
|
|
|
};
|
2015-07-20 16:14:53 +00:00
|
|
|
142C4F7F1B582EA6001F0B58 /* ShellScript */ = {
|
|
|
|
isa = PBXShellScriptBuildPhase;
|
|
|
|
buildActionMask = 2147483647;
|
|
|
|
files = (
|
|
|
|
);
|
|
|
|
inputPaths = (
|
|
|
|
);
|
|
|
|
outputPaths = (
|
|
|
|
);
|
|
|
|
runOnlyForDeploymentPostprocessing = 0;
|
|
|
|
shellPath = /bin/sh;
|
2015-09-08 13:44:28 +00:00
|
|
|
shellScript = "if [[ \"$CONFIGURATION\" == \"Debug\" ]] && [[ -d \"/tmp/RCTJSCProfiler\" ]]; then\n find \"${CONFIGURATION_BUILD_DIR}\" -name '*.app' | xargs -I{} sh -c 'cp -r /tmp/RCTJSCProfiler \"$1\"' -- {}\nfi";
|
2015-07-20 16:14:53 +00:00
|
|
|
showEnvVarsInLog = 0;
|
|
|
|
};
|
2015-02-20 23:45:12 +00:00
|
|
|
/* End PBXShellScriptBuildPhase section */
|
|
|
|
|
|
|
|
/* Begin PBXSourcesBuildPhase section */
|
|
|
|
83CBBA2A1A601D0E00E9B192 /* Sources */ = {
|
|
|
|
isa = PBXSourcesBuildPhase;
|
|
|
|
buildActionMask = 2147483647;
|
|
|
|
files = (
|
2015-04-15 00:51:28 +00:00
|
|
|
13456E961ADAD482009F94A7 /* RCTConvert+MapKit.m in Sources */,
|
2015-02-20 23:45:12 +00:00
|
|
|
13723B501A82FD3C00F88898 /* RCTStatusBarManager.m in Sources */,
|
2015-03-13 00:49:54 +00:00
|
|
|
000E6CEB1AB0E980000CDF4D /* RCTSourceCode.m in Sources */,
|
2015-12-15 21:38:48 +00:00
|
|
|
14A43DF31C20B1C900794BC8 /* RCTJSCProfiler.m in Sources */,
|
Added mechanism for directly mapping JS event handlers to blocks
Summary:
Currently, the system for mapping JS event handlers to blocks is quite clean on the JS side, but is clunky on the native side. The event property is passed as a boolean, which can then be checked by the native side, and if true, the native side is supposed to send an event via the event dispatcher.
This diff adds the facility to declare the property as a block instead. This means that the event side can simply call the block, and it will automatically send the event. Because the blocks for bubbling and direct events are named differently, we can also use this to generate the event registration data and get rid of the arrays of event names.
The name of the event is inferred from the property name, which means that the property for an event called "load" must be called `onLoad` or the mapping won't work. This can be optionally remapped to a different property name on the view itself if necessary, e.g.
RCT_REMAP_VIEW_PROPERTY(onLoad, loadEventBlock, RCTDirectEventBlock)
If you don't want to use this mechanism then for now it is still possible to declare the property as a BOOL instead and use the old mechanism (this approach is now deprecated however, and may eventually be removed altogether).
2015-09-02 12:58:10 +00:00
|
|
|
133CAE8E1B8E5CFD00F6AD92 /* RCTDatePicker.m in Sources */,
|
[ReactNative] Move module info from bridge to RCTModuleData
Summary:
@public
The info about bridge modules (such as id, name, queue, methods...) was spread
across arrays & dictionaries on the bridge, move it into a specific class.
It also removes a lot of information that was statically cached, and now have
the same lifecycle of the bridge.
Also moved RCTModuleMethod, RCTFrameUpdate and RCTBatchedBridge into it's own
files, for organization sake.
NOTE: This diff seems huge, but most of it was just moving code :)
Test Plan:
Tested UIExplorer & UIExplorer tests, Catalyst, MAdMan and Groups. Everything
looks fine.
2015-06-24 23:34:56 +00:00
|
|
|
14C2CA761B3AC64F00E6CBB2 /* RCTFrameUpdate.m in Sources */,
|
2015-02-20 23:45:12 +00:00
|
|
|
13B07FEF1A69327A00A75B9A /* RCTAlertManager.m in Sources */,
|
2016-06-21 22:37:37 +00:00
|
|
|
352DCFF01D19F4C20056D623 /* RCTI18nUtil.m in Sources */,
|
2016-07-11 13:05:51 +00:00
|
|
|
008341F61D1DB34400876D9A /* RCTJSStackFrame.m in Sources */,
|
2015-02-20 23:45:12 +00:00
|
|
|
83CBBACC1A6023D300E9B192 /* RCTConvert.m in Sources */,
|
Add SegmentedControlIOS
Summary:
Fixes #534:
![screen shot 2015-03-31 at 7 52 10 pm](https://cloud.githubusercontent.com/assets/153704/6934038/742ddd34-d7e3-11e4-8f55-3eb7d9d3f1cd.png)
```jsx
<SegmentedControlIOS
tintColor="#ff0000"
values={['One', 'Two', 'Three', 'Four']}
selectedtIndex={0}
momentary={false}
enabled={true}
onValueChange={ (value) => console.log(value) } />
```
This only supports string-based segments, not images. Also doesn't support full customization (no separator images etc); I figure this is a good MVP to lock-down a basic API
I also included a snapshot test case, but the images keep coming out funky. When I look at the sim, I see that the text labels show up for the selected segment, but the snapshot keeps coming out with no text on those segments. I tried forcing a delay, but same result. Is that explainable?
Obviously happy to change anything about the API, code-style nitpicks, etc
Closes https://github.com/facebook/react-native/pull/564
Github Author: Clay Allsopp <clay.allsopp@gmail.com>
Test Plan: Imported from GitHub, without a `Test Plan:` line.
2015-04-29 15:15:28 +00:00
|
|
|
131B6AF41AF1093D00FFC3E0 /* RCTSegmentedControl.m in Sources */,
|
2015-02-20 23:45:12 +00:00
|
|
|
830A229E1A66C68A008503DA /* RCTRootView.m in Sources */,
|
|
|
|
13B07FF01A69327A00A75B9A /* RCTExceptionsManager.m in Sources */,
|
Add Polyline support to MapView
Summary: Per issue #1925, add support for Polyline to MapView.
Briefly, if you have a MapView declared as:
<MapView
annotations={this.state.annotations}
overlays={this.state.overlays}
style={styles.map}
region={this.state.region}
ref="mapView"
/>
then setting
this.state.overlays = [{
coordinates: [
{ latitude: 35.5, longitude: -5.5 },
{ latitude: 35.6, longitude: -5.6 },
...
],
strokeColor: 'rgba(255, 0, 0, 0.5)',
lineWidth: 3,
}];
will draw a red line between the points in locations with a width of 3 and equally blended with the background.
Closes https://github.com/facebook/react-native/pull/4153
Reviewed By: svcscm
Differential Revision: D2697347
Pulled By: nicklockwood
fb-gh-sync-id: a436e4ed8d4e43f2872b39b4694fad7c02de8fe5
2015-11-26 15:09:59 +00:00
|
|
|
13B202041BFB948C00C07393 /* RCTMapAnnotation.m in Sources */,
|
2015-08-08 09:58:30 +00:00
|
|
|
13A0C28A1B74F71200B29F6F /* RCTDevMenu.m in Sources */,
|
2016-03-21 10:20:49 +00:00
|
|
|
13BCE8091C99CB9D00DD7AAD /* RCTRootShadowView.m in Sources */,
|
[ReactNative] Move module info from bridge to RCTModuleData
Summary:
@public
The info about bridge modules (such as id, name, queue, methods...) was spread
across arrays & dictionaries on the bridge, move it into a specific class.
It also removes a lot of information that was statically cached, and now have
the same lifecycle of the bridge.
Also moved RCTModuleMethod, RCTFrameUpdate and RCTBatchedBridge into it's own
files, for organization sake.
NOTE: This diff seems huge, but most of it was just moving code :)
Test Plan:
Tested UIExplorer & UIExplorer tests, Catalyst, MAdMan and Groups. Everything
looks fine.
2015-06-24 23:34:56 +00:00
|
|
|
14C2CA711B3AC63800E6CBB2 /* RCTModuleMethod.m in Sources */,
|
2016-07-20 20:26:57 +00:00
|
|
|
1321C8D01D3EB50800D58318 /* CSSNodeList.c in Sources */,
|
2015-05-28 15:52:46 +00:00
|
|
|
13CC8A821B17642100940AE7 /* RCTBorderDrawing.m in Sources */,
|
2015-02-20 23:45:12 +00:00
|
|
|
83CBBA511A601E3B00E9B192 /* RCTAssert.m in Sources */,
|
2015-04-21 22:08:20 +00:00
|
|
|
13AF20451AE707F9005F5298 /* RCTSlider.m in Sources */,
|
2015-03-11 19:06:03 +00:00
|
|
|
58114A501AAE93D500E7D092 /* RCTAsyncLocalStorage.m in Sources */,
|
2015-06-03 16:49:22 +00:00
|
|
|
13513F3C1B1F43F400FCE529 /* RCTProgressViewManager.m in Sources */,
|
2015-10-23 17:53:42 +00:00
|
|
|
14F7A0F01BDA714B003C6C10 /* RCTFPSGraph.m in Sources */,
|
2015-03-09 20:19:07 +00:00
|
|
|
14F3620D1AABD06A001CE568 /* RCTSwitch.m in Sources */,
|
2016-03-30 10:07:57 +00:00
|
|
|
3D1E68DB1CABD13900DD7465 /* RCTDisplayLink.m in Sources */,
|
2015-03-09 20:19:07 +00:00
|
|
|
14F3620E1AABD06A001CE568 /* RCTSwitchManager.m in Sources */,
|
2015-04-26 09:22:34 +00:00
|
|
|
13B080201A69489C00A75B9A /* RCTActivityIndicatorViewManager.m in Sources */,
|
2015-02-20 23:45:12 +00:00
|
|
|
13E067561A70F44B002CDEE1 /* RCTViewManager.m in Sources */,
|
2015-12-08 11:29:08 +00:00
|
|
|
13BB3D021BECD54500932C10 /* RCTImageSource.m in Sources */,
|
2015-03-07 01:13:18 +00:00
|
|
|
58C571C11AA56C1900CDF9C8 /* RCTDatePickerManager.m in Sources */,
|
2015-10-20 11:11:38 +00:00
|
|
|
1450FF8A1BCFF28A00208362 /* RCTProfileTrampoline-x86_64.S in Sources */,
|
Added native event emitter
Summary:
This is a solution for the problem I raised in https://www.facebook.com/groups/react.native.community/permalink/768218933313687/
I've added a new native base class, `RCTEventEmitter` as well as an equivalent JS class/module `NativeEventEmitter` (RCTEventEmitter.js and EventEmitter.js were taken already).
Instead of arbitrary modules sending events via `bridge.eventDispatcher`, the idea is that any module that sends events should now subclass `RCTEventEmitter`, and provide an equivalent JS module that subclasses `NativeEventEmitter`.
JS code that wants to observe the events should now observe it via the specific JS module rather than via `RCTDeviceEventEmitter` directly. e.g. to observer a keyboard event, instead of writing:
const RCTDeviceEventEmitter = require('RCTDeviceEventEmitter');
RCTDeviceEventEmitter.addListener('keyboardWillShow', (event) => { ... });
You'd now write:
const Keyboard = require('Keyboard');
Keyboard.addListener('keyboardWillShow', (event) => { ... });
Within a component, you can also use the `Subscribable.Mixin` as you would previously, but instead of:
this.addListenerOn(RCTDeviceEventEmitter, 'keyboardWillShow', ...);
Write:
this.addListenerOn(Keyboard, 'keyboardWillShow', ...);
This approach allows the native `RCTKeyboardObserver` module to be created lazily the first time a listener is added, and to stop sending events when the last listener is removed. It also allows us to validate that the event strings being observed and omitted match the supported events for that module.
As a proof-of-concept, I've converted the `RCTStatusBarManager` and `RCTKeyboardObserver` modules to use the new system. I'll convert the rest in a follow up diff.
For now, the new `NativeEventEmitter` JS module wraps the `RCTDeviceEventEmitter` JS module, and just uses the native `RCTEventEmitter` module for bookkeeping. This allows for full backwards compatibility (code that is observing the event via `RCTDeviceEventEmitter` instead of the specific module will still work as expected, albeit with a warning). Once all legacy calls have been removed, this could be refactored to something more elegant internally, whilst maintaining the same public interface.
Note: currently, all device events still share a single global namespace, since they're really all registered on the same emitter instance internally. We should move away from that as soon as possible because it's not intuitive and will likely lead to strange bugs if people add generic events such as "onChange" or "onError" to their modules (which is common practice for components, where it's not a problem).
Reviewed By: javache
Differential Revision: D3269966
fbshipit-source-id: 1412daba850cd373020e1086673ba38ef9193050
2016-05-11 13:26:53 +00:00
|
|
|
13D9FEEB1CDCCECF00158BD7 /* RCTEventEmitter.m in Sources */,
|
2015-10-23 17:53:42 +00:00
|
|
|
14F7A0EC1BDA3B3C003C6C10 /* RCTPerfMonitor.m in Sources */,
|
2015-10-20 11:11:38 +00:00
|
|
|
1450FF881BCFF28A00208362 /* RCTProfileTrampoline-arm64.S in Sources */,
|
2015-11-25 11:09:00 +00:00
|
|
|
13E41EEB1C05CA0B00CD8DAC /* RCTProfileTrampoline-i386.S in Sources */,
|
2016-08-05 19:29:20 +00:00
|
|
|
3D37B5821D522B190042D5B5 /* RCTFont.mm in Sources */,
|
2015-02-20 23:45:12 +00:00
|
|
|
13B080061A6947C200A75B9A /* RCTScrollViewManager.m in Sources */,
|
2015-04-02 14:33:21 +00:00
|
|
|
14200DAA1AC179B3008EE6BA /* RCTJavaScriptLoader.m in Sources */,
|
2015-03-06 00:36:41 +00:00
|
|
|
137327EA1AA5CF210034F82E /* RCTTabBarManager.m in Sources */,
|
2015-02-20 23:45:12 +00:00
|
|
|
13B080261A694A8400A75B9A /* RCTWrapperViewController.m in Sources */,
|
|
|
|
13B080051A6947C200A75B9A /* RCTScrollView.m in Sources */,
|
2015-07-31 14:37:12 +00:00
|
|
|
E9B20B7B1B500126007A2DA7 /* RCTAccessibilityManager.m in Sources */,
|
2015-08-08 09:58:30 +00:00
|
|
|
13A0C2891B74F71200B29F6F /* RCTDevLoadingView.m in Sources */,
|
2015-02-20 23:45:12 +00:00
|
|
|
13B07FF21A69327A00A75B9A /* RCTTiming.m in Sources */,
|
2015-03-11 20:53:30 +00:00
|
|
|
1372B70A1AB030C200659ED6 /* RCTAppState.m in Sources */,
|
2016-04-21 15:58:29 +00:00
|
|
|
134FCB3D1A6E7F0800051CC8 /* RCTJSCExecutor.mm in Sources */,
|
[ReactNative] Move module info from bridge to RCTModuleData
Summary:
@public
The info about bridge modules (such as id, name, queue, methods...) was spread
across arrays & dictionaries on the bridge, move it into a specific class.
It also removes a lot of information that was statically cached, and now have
the same lifecycle of the bridge.
Also moved RCTModuleMethod, RCTFrameUpdate and RCTBatchedBridge into it's own
files, for organization sake.
NOTE: This diff seems huge, but most of it was just moving code :)
Test Plan:
Tested UIExplorer & UIExplorer tests, Catalyst, MAdMan and Groups. Everything
looks fine.
2015-06-24 23:34:56 +00:00
|
|
|
14C2CA781B3ACB0400E6CBB2 /* RCTBatchedBridge.m in Sources */,
|
2015-03-26 09:58:06 +00:00
|
|
|
13E067591A70F44B002CDEE1 /* UIView+React.m in Sources */,
|
2015-03-09 21:42:55 +00:00
|
|
|
14F484561AABFCE100FDF6B9 /* RCTSliderManager.m in Sources */,
|
2015-12-09 18:00:19 +00:00
|
|
|
13D033631C1837FE0021DC29 /* RCTClipboard.m in Sources */,
|
2016-05-31 19:50:48 +00:00
|
|
|
85C199EE1CD2407900DAD810 /* RCTJSCWrapper.mm in Sources */,
|
[ReactNative] Move module info from bridge to RCTModuleData
Summary:
@public
The info about bridge modules (such as id, name, queue, methods...) was spread
across arrays & dictionaries on the bridge, move it into a specific class.
It also removes a lot of information that was statically cached, and now have
the same lifecycle of the bridge.
Also moved RCTModuleMethod, RCTFrameUpdate and RCTBatchedBridge into it's own
files, for organization sake.
NOTE: This diff seems huge, but most of it was just moving code :)
Test Plan:
Tested UIExplorer & UIExplorer tests, Catalyst, MAdMan and Groups. Everything
looks fine.
2015-06-24 23:34:56 +00:00
|
|
|
14C2CA741B3AC64300E6CBB2 /* RCTModuleData.m in Sources */,
|
2015-06-19 21:59:42 +00:00
|
|
|
142014191B32094000CC17BA /* RCTPerformanceLogger.m in Sources */,
|
2015-02-20 23:45:12 +00:00
|
|
|
83CBBA981A6020BB00E9B192 /* RCTTouchHandler.m in Sources */,
|
2016-07-18 18:27:55 +00:00
|
|
|
3EDCA8A51D3591E700450C31 /* RCTErrorInfo.m in Sources */,
|
2015-02-20 23:45:12 +00:00
|
|
|
83CBBA521A601E3B00E9B192 /* RCTLog.m in Sources */,
|
|
|
|
13B0801D1A69489C00A75B9A /* RCTNavItemManager.m in Sources */,
|
2015-12-10 18:09:04 +00:00
|
|
|
13A6E20E1C19AA0C00845B82 /* RCTParserUtils.m in Sources */,
|
2015-02-20 23:45:12 +00:00
|
|
|
13E067571A70F44B002CDEE1 /* RCTView.m in Sources */,
|
Add Polyline support to MapView
Summary: Per issue #1925, add support for Polyline to MapView.
Briefly, if you have a MapView declared as:
<MapView
annotations={this.state.annotations}
overlays={this.state.overlays}
style={styles.map}
region={this.state.region}
ref="mapView"
/>
then setting
this.state.overlays = [{
coordinates: [
{ latitude: 35.5, longitude: -5.5 },
{ latitude: 35.6, longitude: -5.6 },
...
],
strokeColor: 'rgba(255, 0, 0, 0.5)',
lineWidth: 3,
}];
will draw a red line between the points in locations with a width of 3 and equally blended with the background.
Closes https://github.com/facebook/react-native/pull/4153
Reviewed By: svcscm
Differential Revision: D2697347
Pulled By: nicklockwood
fb-gh-sync-id: a436e4ed8d4e43f2872b39b4694fad7c02de8fe5
2015-11-26 15:09:59 +00:00
|
|
|
13AFBCA01C07247D00BBAEAA /* RCTMapOverlay.m in Sources */,
|
Added native event emitter
Summary:
This is a solution for the problem I raised in https://www.facebook.com/groups/react.native.community/permalink/768218933313687/
I've added a new native base class, `RCTEventEmitter` as well as an equivalent JS class/module `NativeEventEmitter` (RCTEventEmitter.js and EventEmitter.js were taken already).
Instead of arbitrary modules sending events via `bridge.eventDispatcher`, the idea is that any module that sends events should now subclass `RCTEventEmitter`, and provide an equivalent JS module that subclasses `NativeEventEmitter`.
JS code that wants to observe the events should now observe it via the specific JS module rather than via `RCTDeviceEventEmitter` directly. e.g. to observer a keyboard event, instead of writing:
const RCTDeviceEventEmitter = require('RCTDeviceEventEmitter');
RCTDeviceEventEmitter.addListener('keyboardWillShow', (event) => { ... });
You'd now write:
const Keyboard = require('Keyboard');
Keyboard.addListener('keyboardWillShow', (event) => { ... });
Within a component, you can also use the `Subscribable.Mixin` as you would previously, but instead of:
this.addListenerOn(RCTDeviceEventEmitter, 'keyboardWillShow', ...);
Write:
this.addListenerOn(Keyboard, 'keyboardWillShow', ...);
This approach allows the native `RCTKeyboardObserver` module to be created lazily the first time a listener is added, and to stop sending events when the last listener is removed. It also allows us to validate that the event strings being observed and omitted match the supported events for that module.
As a proof-of-concept, I've converted the `RCTStatusBarManager` and `RCTKeyboardObserver` modules to use the new system. I'll convert the rest in a follow up diff.
For now, the new `NativeEventEmitter` JS module wraps the `RCTDeviceEventEmitter` JS module, and just uses the native `RCTEventEmitter` module for bookkeeping. This allows for full backwards compatibility (code that is observing the event via `RCTDeviceEventEmitter` instead of the specific module will still work as expected, albeit with a warning). Once all legacy calls have been removed, this could be refactored to something more elegant internally, whilst maintaining the same public interface.
Note: currently, all device events still share a single global namespace, since they're really all registered on the same emitter instance internally. We should move away from that as soon as possible because it's not intuitive and will likely lead to strange bugs if people add generic events such as "onChange" or "onError" to their modules (which is common practice for components, where it's not a problem).
Reviewed By: javache
Differential Revision: D3269966
fbshipit-source-id: 1412daba850cd373020e1086673ba38ef9193050
2016-05-11 13:26:53 +00:00
|
|
|
13D9FEEE1CDCD93000158BD7 /* RCTKeyboardObserver.m in Sources */,
|
2016-07-06 23:26:59 +00:00
|
|
|
B233E6EA1D2D845D00BC68BA /* RCTI18nManager.m in Sources */,
|
2016-07-14 13:12:34 +00:00
|
|
|
133683521D37ACA10077D0C3 /* CSSLayout.c in Sources */,
|
2015-04-15 00:51:28 +00:00
|
|
|
13456E931ADAD2DE009F94A7 /* RCTConvert+CoreLocation.m in Sources */,
|
2015-03-06 00:36:41 +00:00
|
|
|
137327E91AA5CF210034F82E /* RCTTabBarItemManager.m in Sources */,
|
2015-02-20 23:45:12 +00:00
|
|
|
13A1F71E1A75392D00D3D453 /* RCTKeyCommands.m in Sources */,
|
|
|
|
83CBBA531A601E3B00E9B192 /* RCTUtils.m in Sources */,
|
2015-03-10 01:05:10 +00:00
|
|
|
14435CE61AAC4AE100FC20F4 /* RCTMapManager.m in Sources */,
|
2016-01-04 15:59:10 +00:00
|
|
|
191E3EC11C29DC3800C180A6 /* RCTRefreshControl.m in Sources */,
|
2015-03-14 08:22:25 +00:00
|
|
|
13C156051AB1A2840079392D /* RCTWebView.m in Sources */,
|
2015-02-20 23:45:12 +00:00
|
|
|
83CBBA601A601EAA00E9B192 /* RCTBridge.m in Sources */,
|
2015-03-14 08:22:25 +00:00
|
|
|
13C156061AB1A2840079392D /* RCTWebViewManager.m in Sources */,
|
2015-03-10 16:32:20 +00:00
|
|
|
58114A161AAE854800E7D092 /* RCTPicker.m in Sources */,
|
2015-03-06 00:36:41 +00:00
|
|
|
137327E81AA5CF210034F82E /* RCTTabBarItem.m in Sources */,
|
2015-07-28 14:31:26 +00:00
|
|
|
83A1FE8C1B62640A00BE0E65 /* RCTModalHostView.m in Sources */,
|
2015-02-20 23:45:12 +00:00
|
|
|
13E067551A70F44B002CDEE1 /* RCTShadowView.m in Sources */,
|
2015-10-20 11:11:38 +00:00
|
|
|
1450FF871BCFF28A00208362 /* RCTProfileTrampoline-arm.S in Sources */,
|
Add SegmentedControlIOS
Summary:
Fixes #534:
![screen shot 2015-03-31 at 7 52 10 pm](https://cloud.githubusercontent.com/assets/153704/6934038/742ddd34-d7e3-11e4-8f55-3eb7d9d3f1cd.png)
```jsx
<SegmentedControlIOS
tintColor="#ff0000"
values={['One', 'Two', 'Three', 'Four']}
selectedtIndex={0}
momentary={false}
enabled={true}
onValueChange={ (value) => console.log(value) } />
```
This only supports string-based segments, not images. Also doesn't support full customization (no separator images etc); I figure this is a good MVP to lock-down a basic API
I also included a snapshot test case, but the images keep coming out funky. When I look at the sim, I see that the text labels show up for the selected segment, but the snapshot keeps coming out with no text on those segments. I tried forcing a delay, but same result. Is that explainable?
Obviously happy to change anything about the API, code-style nitpicks, etc
Closes https://github.com/facebook/react-native/pull/564
Github Author: Clay Allsopp <clay.allsopp@gmail.com>
Test Plan: Imported from GitHub, without a `Test Plan:` line.
2015-04-29 15:15:28 +00:00
|
|
|
131B6AF51AF1093D00FFC3E0 /* RCTSegmentedControlManager.m in Sources */,
|
2015-03-10 16:32:20 +00:00
|
|
|
58114A171AAE854800E7D092 /* RCTPickerManager.m in Sources */,
|
2016-01-04 15:59:10 +00:00
|
|
|
191E3EBE1C29D9AF00C180A6 /* RCTRefreshControlManager.m in Sources */,
|
2016-05-31 11:56:49 +00:00
|
|
|
68EFE4EE1CF6EB3900A1DE13 /* RCTBundleURLProvider.m in Sources */,
|
2016-06-28 00:10:50 +00:00
|
|
|
B95154321D1B34B200FE7B80 /* RCTActivityIndicatorView.m in Sources */,
|
2015-02-20 23:45:12 +00:00
|
|
|
13B0801A1A69489C00A75B9A /* RCTNavigator.m in Sources */,
|
2015-03-06 00:36:41 +00:00
|
|
|
137327E71AA5CF210034F82E /* RCTTabBar.m in Sources */,
|
2015-08-19 12:27:43 +00:00
|
|
|
13F17A851B8493E5007D4C75 /* RCTRedBox.m in Sources */,
|
2015-07-28 14:31:26 +00:00
|
|
|
83392EB31B6634E10013B15F /* RCTModalHostViewController.m in Sources */,
|
2015-03-10 01:05:10 +00:00
|
|
|
14435CE51AAC4AE100FC20F4 /* RCTMap.m in Sources */,
|
2015-02-20 23:45:12 +00:00
|
|
|
13B0801C1A69489C00A75B9A /* RCTNavItem.m in Sources */,
|
|
|
|
83CBBA691A601EF300E9B192 /* RCTEventDispatcher.m in Sources */,
|
2015-07-28 14:31:26 +00:00
|
|
|
83A1FE8F1B62643A00BE0E65 /* RCTModalHostViewManager.m in Sources */,
|
2015-02-20 23:45:12 +00:00
|
|
|
13E0674A1A70F434002CDEE1 /* RCTUIManager.m in Sources */,
|
2016-02-03 15:09:55 +00:00
|
|
|
391E86A41C623EC800009732 /* RCTTouchEvent.m in Sources */,
|
2015-10-20 11:11:38 +00:00
|
|
|
1450FF861BCFF28A00208362 /* RCTProfile.m in Sources */,
|
2015-08-06 22:44:15 +00:00
|
|
|
13AB90C11B6FA36700713B4F /* RCTComponentData.m in Sources */,
|
2015-02-20 23:45:12 +00:00
|
|
|
13B0801B1A69489C00A75B9A /* RCTNavigatorManager.m in Sources */,
|
|
|
|
);
|
|
|
|
runOnlyForDeploymentPostprocessing = 0;
|
|
|
|
};
|
|
|
|
/* End PBXSourcesBuildPhase section */
|
|
|
|
|
|
|
|
/* Begin XCBuildConfiguration section */
|
|
|
|
83CBBA201A601CBA00E9B192 /* Debug */ = {
|
|
|
|
isa = XCBuildConfiguration;
|
|
|
|
buildSettings = {
|
|
|
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
|
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
|
|
|
CLANG_CXX_LIBRARY = "libc++";
|
|
|
|
CLANG_ENABLE_MODULES = YES;
|
|
|
|
CLANG_ENABLE_OBJC_ARC = YES;
|
|
|
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
|
|
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
|
|
|
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
|
|
|
CLANG_WARN_EMPTY_BODY = YES;
|
|
|
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
|
|
|
CLANG_WARN_INT_CONVERSION = YES;
|
|
|
|
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
|
|
|
CLANG_WARN_UNREACHABLE_CODE = YES;
|
|
|
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
|
|
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
|
|
|
COPY_PHASE_STRIP = NO;
|
|
|
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
|
|
|
GCC_C_LANGUAGE_STANDARD = gnu99;
|
|
|
|
GCC_DYNAMIC_NO_PIC = NO;
|
|
|
|
GCC_OPTIMIZATION_LEVEL = 0;
|
|
|
|
GCC_PREPROCESSOR_DEFINITIONS = (
|
2015-05-01 13:21:03 +00:00
|
|
|
"DEBUG=1",
|
2015-04-30 16:50:22 +00:00
|
|
|
"RCT_DEBUG=1",
|
|
|
|
"RCT_DEV=1",
|
|
|
|
"RCT_NSASSERT=1",
|
2015-02-20 23:45:12 +00:00
|
|
|
);
|
|
|
|
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
|
|
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
2015-07-27 15:51:28 +00:00
|
|
|
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
|
2015-02-20 23:45:12 +00:00
|
|
|
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
2015-06-15 14:53:45 +00:00
|
|
|
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
|
2015-07-24 15:25:51 +00:00
|
|
|
GCC_WARN_SHADOW = YES;
|
2015-02-20 23:45:12 +00:00
|
|
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
|
|
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
|
|
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
|
|
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
2015-03-23 15:24:02 +00:00
|
|
|
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
2015-02-20 23:45:12 +00:00
|
|
|
MTL_ENABLE_DEBUG_INFO = YES;
|
|
|
|
ONLY_ACTIVE_ARCH = YES;
|
|
|
|
SDKROOT = iphoneos;
|
2015-06-15 14:53:45 +00:00
|
|
|
WARNING_CFLAGS = (
|
|
|
|
"-Wextra",
|
|
|
|
"-Wall",
|
|
|
|
);
|
2015-02-20 23:45:12 +00:00
|
|
|
};
|
|
|
|
name = Debug;
|
|
|
|
};
|
|
|
|
83CBBA211A601CBA00E9B192 /* Release */ = {
|
|
|
|
isa = XCBuildConfiguration;
|
|
|
|
buildSettings = {
|
|
|
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
|
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
|
|
|
CLANG_CXX_LIBRARY = "libc++";
|
|
|
|
CLANG_ENABLE_MODULES = YES;
|
|
|
|
CLANG_ENABLE_OBJC_ARC = YES;
|
|
|
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
|
|
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
|
|
|
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
|
|
|
CLANG_WARN_EMPTY_BODY = YES;
|
|
|
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
|
|
|
CLANG_WARN_INT_CONVERSION = YES;
|
|
|
|
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
|
|
|
CLANG_WARN_UNREACHABLE_CODE = YES;
|
|
|
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
|
|
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
|
|
|
COPY_PHASE_STRIP = YES;
|
|
|
|
ENABLE_NS_ASSERTIONS = NO;
|
|
|
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
|
|
|
GCC_C_LANGUAGE_STANDARD = gnu99;
|
2015-04-30 16:50:22 +00:00
|
|
|
GCC_PREPROCESSOR_DEFINITIONS = "";
|
2015-02-20 23:45:12 +00:00
|
|
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
2015-07-27 15:51:28 +00:00
|
|
|
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
|
2015-02-20 23:45:12 +00:00
|
|
|
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
2015-06-15 14:53:45 +00:00
|
|
|
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
|
2015-07-24 15:25:51 +00:00
|
|
|
GCC_WARN_SHADOW = YES;
|
2015-02-20 23:45:12 +00:00
|
|
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
|
|
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
|
|
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
|
|
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
2015-03-23 15:24:02 +00:00
|
|
|
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
2015-02-20 23:45:12 +00:00
|
|
|
MTL_ENABLE_DEBUG_INFO = NO;
|
|
|
|
SDKROOT = iphoneos;
|
|
|
|
VALIDATE_PRODUCT = YES;
|
2015-06-15 14:53:45 +00:00
|
|
|
WARNING_CFLAGS = (
|
|
|
|
"-Wextra",
|
|
|
|
"-Wall",
|
|
|
|
);
|
2015-02-20 23:45:12 +00:00
|
|
|
};
|
|
|
|
name = Release;
|
|
|
|
};
|
|
|
|
83CBBA401A601D0F00E9B192 /* Debug */ = {
|
|
|
|
isa = XCBuildConfiguration;
|
|
|
|
buildSettings = {
|
2016-05-23 15:27:14 +00:00
|
|
|
CLANG_CXX_LANGUAGE_STANDARD = "c++14";
|
2015-04-24 15:31:07 +00:00
|
|
|
CLANG_STATIC_ANALYZER_MODE = deep;
|
2015-04-30 16:50:22 +00:00
|
|
|
GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
|
2015-02-20 23:45:12 +00:00
|
|
|
GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
|
2015-02-27 15:32:08 +00:00
|
|
|
HEADER_SEARCH_PATHS = (
|
|
|
|
"$(inherited)",
|
|
|
|
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
2016-07-15 11:28:10 +00:00
|
|
|
"$(SRCROOT)",
|
2015-02-27 15:32:08 +00:00
|
|
|
);
|
2015-02-20 23:45:12 +00:00
|
|
|
OTHER_LDFLAGS = "-ObjC";
|
|
|
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
2015-04-24 15:31:07 +00:00
|
|
|
RUN_CLANG_STATIC_ANALYZER = YES;
|
2015-02-20 23:45:12 +00:00
|
|
|
SKIP_INSTALL = YES;
|
|
|
|
};
|
|
|
|
name = Debug;
|
|
|
|
};
|
|
|
|
83CBBA411A601D0F00E9B192 /* Release */ = {
|
|
|
|
isa = XCBuildConfiguration;
|
|
|
|
buildSettings = {
|
2016-05-23 15:27:14 +00:00
|
|
|
CLANG_CXX_LANGUAGE_STANDARD = "c++14";
|
2015-04-24 15:31:07 +00:00
|
|
|
CLANG_STATIC_ANALYZER_MODE = deep;
|
2015-04-30 16:50:22 +00:00
|
|
|
GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
|
2015-02-20 23:45:12 +00:00
|
|
|
GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
|
2015-02-27 15:32:08 +00:00
|
|
|
HEADER_SEARCH_PATHS = (
|
|
|
|
"$(inherited)",
|
|
|
|
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
2016-07-15 11:28:10 +00:00
|
|
|
"$(SRCROOT)",
|
2015-02-27 15:32:08 +00:00
|
|
|
);
|
2015-02-20 23:45:12 +00:00
|
|
|
OTHER_LDFLAGS = "-ObjC";
|
|
|
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
2015-04-24 15:31:07 +00:00
|
|
|
RUN_CLANG_STATIC_ANALYZER = NO;
|
2015-02-20 23:45:12 +00:00
|
|
|
SKIP_INSTALL = YES;
|
|
|
|
};
|
|
|
|
name = Release;
|
|
|
|
};
|
|
|
|
/* End XCBuildConfiguration section */
|
|
|
|
|
|
|
|
/* Begin XCConfigurationList section */
|
2015-03-26 09:58:06 +00:00
|
|
|
83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "React" */ = {
|
2015-02-20 23:45:12 +00:00
|
|
|
isa = XCConfigurationList;
|
|
|
|
buildConfigurations = (
|
|
|
|
83CBBA201A601CBA00E9B192 /* Debug */,
|
|
|
|
83CBBA211A601CBA00E9B192 /* Release */,
|
|
|
|
);
|
|
|
|
defaultConfigurationIsVisible = 0;
|
|
|
|
defaultConfigurationName = Release;
|
|
|
|
};
|
2015-03-26 09:58:06 +00:00
|
|
|
83CBBA3F1A601D0F00E9B192 /* Build configuration list for PBXNativeTarget "React" */ = {
|
2015-02-20 23:45:12 +00:00
|
|
|
isa = XCConfigurationList;
|
|
|
|
buildConfigurations = (
|
|
|
|
83CBBA401A601D0F00E9B192 /* Debug */,
|
|
|
|
83CBBA411A601D0F00E9B192 /* Release */,
|
|
|
|
);
|
|
|
|
defaultConfigurationIsVisible = 0;
|
|
|
|
defaultConfigurationName = Release;
|
|
|
|
};
|
|
|
|
/* End XCConfigurationList section */
|
|
|
|
};
|
|
|
|
rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */;
|
|
|
|
}
|