From db3a724bb25d0a6c17d563be624c04621643995a Mon Sep 17 00:00:00 2001 From: Christopher Chedeau Date: Wed, 1 Apr 2015 18:37:03 -0700 Subject: [PATCH] Updates from Wed 1 Apr - (Xcode) Set indent=2 in all xcodeproj files. | Spencer Ahrens - [react-native] Fix dev menu keyboard shortcut in sample app | Ben Alpert - [ReactNative] Fix doc page for PushNotificationIOS | Eric Vicenti - [ReactNative] Improve docs | Christopher Chedeau - Add support for web-style data-uris | Felix Oghina - [react_native] Update AnimationsDebugModule to output more accurate FPS info | Andy Street - [ReactNative] Rename NavigationBar props | Eric Vicenti --- Examples/2048/2048.xcodeproj/project.pbxproj | 2 + .../Movies/Movies.xcodeproj/project.pbxproj | 2 + .../SampleApp.xcodeproj/project.pbxproj | 2 + Examples/SampleApp/index.ios.js | 2 +- .../TicTacToe.xcodeproj/project.pbxproj | 2 + .../Navigator/BreadcrumbNavSample.js | 2 +- .../Navigator/NavigationBarSample.js | 4 +- .../UIExplorer/PushNotificationIOSExample.js | 2 +- .../UIExplorer.xcodeproj/project.pbxproj | 2 + .../UIExplorer.xcodeproj/project.pbxproj.rej | 72 +++++++++++++++++++ .../project.pbxproj | 2 + .../RCTActionSheet.xcodeproj/project.pbxproj | 2 + .../RCTAdSupport.xcodeproj/project.pbxproj | 2 + .../CustomComponents/Navigator/Navigator.js | 2 +- .../NavigatorBreadcrumbNavigationBar.js | 12 ++-- .../Navigator/NavigatorNavigationBar.js | 9 ++- .../RCTGeolocation.xcodeproj/project.pbxproj | 2 + Libraries/Image/Image.ios.js | 24 +++---- .../Image/RCTImage.xcodeproj/project.pbxproj | 2 + .../RCTNetwork.xcodeproj/project.pbxproj | 2 + .../project.pbxproj | 2 + .../RCTTest/RCTTest.xcodeproj/project.pbxproj | 2 + .../project.pbxproj | 2 + .../Text/RCTText.xcodeproj/project.pbxproj | 2 + .../RCTVibration.xcodeproj/project.pbxproj | 2 + React/Base/RCTConvert.m | 6 +- React/React.xcodeproj/project.pbxproj | 2 + package.json | 2 +- 28 files changed, 139 insertions(+), 32 deletions(-) create mode 100644 Examples/UIExplorer/UIExplorer.xcodeproj/project.pbxproj.rej diff --git a/Examples/2048/2048.xcodeproj/project.pbxproj b/Examples/2048/2048.xcodeproj/project.pbxproj index bf1fb02aa..18f1ec2a9 100644 --- a/Examples/2048/2048.xcodeproj/project.pbxproj +++ b/Examples/2048/2048.xcodeproj/project.pbxproj @@ -121,7 +121,9 @@ 832341AE1AAA6A7D00B99B32 /* Libraries */, 83CBBA001A601CBA00E9B192 /* Products */, ); + indentWidth = 2; sourceTree = ""; + tabWidth = 2; }; 83CBBA001A601CBA00E9B192 /* Products */ = { isa = PBXGroup; diff --git a/Examples/Movies/Movies.xcodeproj/project.pbxproj b/Examples/Movies/Movies.xcodeproj/project.pbxproj index 29eaf91c4..e86674f68 100644 --- a/Examples/Movies/Movies.xcodeproj/project.pbxproj +++ b/Examples/Movies/Movies.xcodeproj/project.pbxproj @@ -159,7 +159,9 @@ 58C571FC1AA6124500CDF9C8 /* Libraries */, 83CBBA001A601CBA00E9B192 /* Products */, ); + indentWidth = 2; sourceTree = ""; + tabWidth = 2; }; 83CBBA001A601CBA00E9B192 /* Products */ = { isa = PBXGroup; diff --git a/Examples/SampleApp/SampleApp.xcodeproj/project.pbxproj b/Examples/SampleApp/SampleApp.xcodeproj/project.pbxproj index 519b71cd2..5b716c3c0 100644 --- a/Examples/SampleApp/SampleApp.xcodeproj/project.pbxproj +++ b/Examples/SampleApp/SampleApp.xcodeproj/project.pbxproj @@ -242,7 +242,9 @@ 832341AE1AAA6A7D00B99B32 /* Libraries */, 83CBBA001A601CBA00E9B192 /* Products */, ); + indentWidth = 2; sourceTree = ""; + tabWidth = 2; }; 83CBBA001A601CBA00E9B192 /* Products */ = { isa = PBXGroup; diff --git a/Examples/SampleApp/index.ios.js b/Examples/SampleApp/index.ios.js index c6139d947..629118d10 100644 --- a/Examples/SampleApp/index.ios.js +++ b/Examples/SampleApp/index.ios.js @@ -24,7 +24,7 @@ var SampleApp = React.createClass({ Press Cmd+R to reload,{'\n'} - Cmd+Shift+Z for dev menu + Cmd+Control+Z for dev menu ); diff --git a/Examples/TicTacToe/TicTacToe.xcodeproj/project.pbxproj b/Examples/TicTacToe/TicTacToe.xcodeproj/project.pbxproj index c1333f78b..db9c36269 100644 --- a/Examples/TicTacToe/TicTacToe.xcodeproj/project.pbxproj +++ b/Examples/TicTacToe/TicTacToe.xcodeproj/project.pbxproj @@ -121,7 +121,9 @@ 58C572071AA6126D00CDF9C8 /* Libraries */, 83CBBA001A601CBA00E9B192 /* Products */, ); + indentWidth = 2; sourceTree = ""; + tabWidth = 2; }; 83CBBA001A601CBA00E9B192 /* Products */ = { isa = PBXGroup; diff --git a/Examples/UIExplorer/Navigator/BreadcrumbNavSample.js b/Examples/UIExplorer/Navigator/BreadcrumbNavSample.js index f26a6e051..5abdcd11f 100644 --- a/Examples/UIExplorer/Navigator/BreadcrumbNavSample.js +++ b/Examples/UIExplorer/Navigator/BreadcrumbNavSample.js @@ -115,7 +115,7 @@ var BreadcrumbNavSample = React.createClass({ renderScene={this._renderScene} navigationBar={ } /> diff --git a/Examples/UIExplorer/Navigator/NavigationBarSample.js b/Examples/UIExplorer/Navigator/NavigationBarSample.js index ce0809436..2b3f8e250 100644 --- a/Examples/UIExplorer/Navigator/NavigationBarSample.js +++ b/Examples/UIExplorer/Navigator/NavigationBarSample.js @@ -121,8 +121,8 @@ var NavigationBarSample = React.createClass({ )} navigationBar={ } /> diff --git a/Examples/UIExplorer/PushNotificationIOSExample.js b/Examples/UIExplorer/PushNotificationIOSExample.js index becdfea20..bd6109f1f 100644 --- a/Examples/UIExplorer/PushNotificationIOSExample.js +++ b/Examples/UIExplorer/PushNotificationIOSExample.js @@ -74,7 +74,7 @@ class NotificationExample extends React.Component { _onNotification(notification) { AlertIOS.alert( 'Notification Received', - `Alert message: ${notification.getMessage()}`, + 'Alert message: ' + notification.getMessage(), [{ text: 'Dismiss', onPress: null, diff --git a/Examples/UIExplorer/UIExplorer.xcodeproj/project.pbxproj b/Examples/UIExplorer/UIExplorer.xcodeproj/project.pbxproj index e5e783e6c..030e2576c 100644 --- a/Examples/UIExplorer/UIExplorer.xcodeproj/project.pbxproj +++ b/Examples/UIExplorer/UIExplorer.xcodeproj/project.pbxproj @@ -305,7 +305,9 @@ 004D289F1AAF61C70097A701 /* UIExplorerTests */, 83CBBA001A601CBA00E9B192 /* Products */, ); + indentWidth = 2; sourceTree = ""; + tabWidth = 2; }; 83CBBA001A601CBA00E9B192 /* Products */ = { isa = PBXGroup; diff --git a/Examples/UIExplorer/UIExplorer.xcodeproj/project.pbxproj.rej b/Examples/UIExplorer/UIExplorer.xcodeproj/project.pbxproj.rej new file mode 100644 index 000000000..fa002c8b0 --- /dev/null +++ b/Examples/UIExplorer/UIExplorer.xcodeproj/project.pbxproj.rej @@ -0,0 +1,72 @@ +diff a/Libraries/FBReactKit/js/react-native-github/Examples/UIExplorer/UIExplorer.xcodeproj/project.pbxproj b/Libraries/FBReactKit/js/react-native-github/Examples/UIExplorer/UIExplorer.xcodeproj/project.pbxproj (rejected hunks) +@@ -19,6 +19,7 @@ + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; + 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; + 147CED4C1AB3532B00DA3E4C /* libRCTActionSheet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 147CED4B1AB34F8C00DA3E4C /* libRCTActionSheet.a */; }; ++ D85B829E1AB6D5D7003F4FE2 /* libRCTVibration.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D85B829C1AB6D5CE003F4FE2 /* libRCTVibration.a */; }; + /* End PBXBuildFile section */ + + /* Begin PBXContainerItemProxy section */ +@@ -78,6 +79,13 @@ + remoteGlobalIDString = 134814201AA4EA6300B7C361; + remoteInfo = RCTActionSheet; + }; ++ D85B829B1AB6D5CE003F4FE2 /* PBXContainerItemProxy */ = { ++ isa = PBXContainerItemProxy; ++ containerPortal = D85B82911AB6D5CE003F4FE2 /* RCTVibration.xcodeproj */; ++ proxyType = 2; ++ remoteGlobalIDString = 832C81801AAF6DEF007FA2F7; ++ remoteInfo = RCTVibration; ++ }; + /* End PBXContainerItemProxy section */ + + /* Begin PBXFileReference section */ +@@ -98,6 +106,7 @@ + 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 14E0EEC81AB118F7000DECC3 /* RCTActionSheet.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTActionSheet.xcodeproj; path = ../../Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj; sourceTree = ""; }; ++ D85B82911AB6D5CE003F4FE2 /* RCTVibration.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTVibration.xcodeproj; path = ../../Libraries/Vibration/RCTVibration.xcodeproj; sourceTree = ""; }; + /* End PBXFileReference section */ + + /* Begin PBXFrameworksBuildPhase section */ +@@ -112,6 +121,7 @@ + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( ++ D85B829E1AB6D5D7003F4FE2 /* libRCTVibration.a in Frameworks */, + 147CED4C1AB3532B00DA3E4C /* libRCTActionSheet.a in Frameworks */, + 134454601AAFCABD003F0779 /* libRCTAdSupport.a in Frameworks */, + 134A8A2A1AACED7A00945AAE /* libRCTGeolocation.a in Frameworks */, +@@ -145,6 +155,7 @@ + 1316A21D1AA397F400C0188E /* Libraries */ = { + isa = PBXGroup; + children = ( ++ D85B82911AB6D5CE003F4FE2 /* RCTVibration.xcodeproj */, + 14E0EEC81AB118F7000DECC3 /* RCTActionSheet.xcodeproj */, + 13417FFA1AA91531003F314A /* ReactKit.xcodeproj */, + 134454551AAFCAAE003F0779 /* RCTAdSupport.xcodeproj */, +@@ -334,6 +353,10 @@ + ProjectRef = 13417FEA1AA914B8003F314A /* RCTText.xcodeproj */; + }, + { ++ ProductGroup = D85B82921AB6D5CE003F4FE2 /* Products */; ++ ProjectRef = D85B82911AB6D5CE003F4FE2 /* RCTVibration.xcodeproj */; ++ }, ++ { + ProductGroup = 13417FFB1AA91531003F314A /* Products */; + ProjectRef = 13417FFA1AA91531003F314A /* ReactKit.xcodeproj */; + }, +@@ -396,6 +419,13 @@ + remoteRef = 147CED4A1AB34F8C00DA3E4C /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; ++ D85B829C1AB6D5CE003F4FE2 /* libRCTVibration.a */ = { ++ isa = PBXReferenceProxy; ++ fileType = archive.ar; ++ path = libRCTVibration.a; ++ remoteRef = D85B829B1AB6D5CE003F4FE2 /* PBXContainerItemProxy */; ++ sourceTree = BUILT_PRODUCTS_DIR; ++ }; + /* End PBXReferenceProxy section */ + + /* Begin PBXResourcesBuildPhase section */ diff --git a/IntegrationTests/IntegrationTests.xcodeproj/project.pbxproj b/IntegrationTests/IntegrationTests.xcodeproj/project.pbxproj index 6ae4db06c..78c8b97e1 100644 --- a/IntegrationTests/IntegrationTests.xcodeproj/project.pbxproj +++ b/IntegrationTests/IntegrationTests.xcodeproj/project.pbxproj @@ -233,7 +233,9 @@ 004D289F1AAF61C70097A701 /* IntegrationTestsTests */, 83CBBA001A601CBA00E9B192 /* Products */, ); + indentWidth = 2; sourceTree = ""; + tabWidth = 2; }; 83CBBA001A601CBA00E9B192 /* Products */ = { isa = PBXGroup; diff --git a/Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj/project.pbxproj b/Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj/project.pbxproj index 1e32363c4..7e420235e 100644 --- a/Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj/project.pbxproj +++ b/Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj/project.pbxproj @@ -54,7 +54,9 @@ 14C644C21AB0DFC900DE3C65 /* RCTActionSheetManager.m */, 134814211AA4EA7D00B7C361 /* Products */, ); + indentWidth = 2; sourceTree = ""; + tabWidth = 2; }; /* End PBXGroup section */ diff --git a/Libraries/AdSupport/RCTAdSupport.xcodeproj/project.pbxproj b/Libraries/AdSupport/RCTAdSupport.xcodeproj/project.pbxproj index d48bec56c..811d25e63 100644 --- a/Libraries/AdSupport/RCTAdSupport.xcodeproj/project.pbxproj +++ b/Libraries/AdSupport/RCTAdSupport.xcodeproj/project.pbxproj @@ -46,7 +46,9 @@ 832C819B1AAF6E1A007FA2F7 /* RCTAdSupport.m */, 832C81811AAF6DEF007FA2F7 /* Products */, ); + indentWidth = 2; sourceTree = ""; + tabWidth = 2; }; 832C81811AAF6DEF007FA2F7 /* Products */ = { isa = PBXGroup; diff --git a/Libraries/CustomComponents/Navigator/Navigator.js b/Libraries/CustomComponents/Navigator/Navigator.js index 7c29e5c2c..acf9b383f 100644 --- a/Libraries/CustomComponents/Navigator/Navigator.js +++ b/Libraries/CustomComponents/Navigator/Navigator.js @@ -462,7 +462,7 @@ var Navigator = React.createClass({ this._emitDidFocus(presentedIndex); this._removePoppedRoutes(); if (AnimationsDebugModule) { - AnimationsDebugModule.stopRecordingFps(); + AnimationsDebugModule.stopRecordingFps(Date.now()); } this._hideOtherScenes(presentedIndex); } diff --git a/Libraries/CustomComponents/Navigator/NavigatorBreadcrumbNavigationBar.js b/Libraries/CustomComponents/Navigator/NavigatorBreadcrumbNavigationBar.js index 3986064b1..b4bad9982 100644 --- a/Libraries/CustomComponents/Navigator/NavigatorBreadcrumbNavigationBar.js +++ b/Libraries/CustomComponents/Navigator/NavigatorBreadcrumbNavigationBar.js @@ -77,7 +77,7 @@ var NavigatorBreadcrumbNavigationBar = React.createClass({ popToRoute: PropTypes.func, popToTop: PropTypes.func, }), - navigationBarRouteMapper: PropTypes.shape({ + routeMapper: PropTypes.shape({ rightContentForRoute: PropTypes.func, titleContentForRoute: PropTypes.func, iconForRoute: PropTypes.func, @@ -87,7 +87,7 @@ var NavigatorBreadcrumbNavigationBar = React.createClass({ idStack: React.PropTypes.arrayOf(React.PropTypes.number), presentedIndex: React.PropTypes.number, }), - navigationBarStyles: View.propTypes.style, + style: View.propTypes.style, }, statics: { @@ -144,7 +144,7 @@ var NavigatorBreadcrumbNavigationBar = React.createClass({ var titles = navState.routeStack.map(this._renderOrReturnTitle); var buttons = navState.routeStack.map(this._renderOrReturnRightButton); return ( - + {titles} {icons} {buttons} @@ -154,7 +154,7 @@ var NavigatorBreadcrumbNavigationBar = React.createClass({ _renderOrReturnBreadcrumb: function(route, index) { var uid = this.props.navState.idStack[index]; - var navBarRouteMapper = this.props.navigationBarRouteMapper; + var navBarRouteMapper = this.props.routeMapper; var navOps = this.props.navigator; var alreadyRendered = this.refs['crumbContainer' + uid]; if (alreadyRendered) { @@ -199,7 +199,7 @@ var NavigatorBreadcrumbNavigationBar = React.createClass({ /> ); } - var navBarRouteMapper = this.props.navigationBarRouteMapper; + var navBarRouteMapper = this.props.routeMapper; var titleContent = navBarRouteMapper.titleContentForRoute( navState.routeStack[index], this.props.navigator @@ -219,7 +219,7 @@ var NavigatorBreadcrumbNavigationBar = React.createClass({ _renderOrReturnRightButton: function(route, index) { var navState = this.props.navState; - var navBarRouteMapper = this.props.navigationBarRouteMapper; + var navBarRouteMapper = this.props.routeMapper; var uid = navState.idStack[index]; var alreadyRendered = this.refs['rightContainer' + uid]; if (alreadyRendered) { diff --git a/Libraries/CustomComponents/Navigator/NavigatorNavigationBar.js b/Libraries/CustomComponents/Navigator/NavigatorNavigationBar.js index d88204950..20c43a94a 100644 --- a/Libraries/CustomComponents/Navigator/NavigatorNavigationBar.js +++ b/Libraries/CustomComponents/Navigator/NavigatorNavigationBar.js @@ -46,7 +46,7 @@ var NavigatorNavigationBar = React.createClass({ propTypes: { navigator: React.PropTypes.object, - navigationBarRouteMapper: React.PropTypes.shape({ + routeMapper: React.PropTypes.shape({ Title: React.PropTypes.func.isRequired, LeftButton: React.PropTypes.func.isRequired, RightButton: React.PropTypes.func.isRequired, @@ -56,7 +56,7 @@ var NavigatorNavigationBar = React.createClass({ idStack: React.PropTypes.arrayOf(React.PropTypes.number), presentedIndex: React.PropTypes.number, }), - navigationBarStyles: View.propTypes.style, + style: View.propTypes.style, }, statics: { @@ -133,7 +133,7 @@ var NavigatorNavigationBar = React.createClass({ }, this); return ( - + {components} ); @@ -145,7 +145,6 @@ var NavigatorNavigationBar = React.createClass({ /*number*/index ) /*object*/ { var navState = this.props.navState; - var navBarRouteMapper = this.props.navigationBarRouteMapper; var uid = navState.idStack[index]; var containerRef = componentName + 'Container' + uid; var alreadyRendered = this.refs[containerRef]; @@ -160,7 +159,7 @@ var NavigatorNavigationBar = React.createClass({ ); } - var content = navBarRouteMapper[componentName]( + var content = this.props.routeMapper[componentName]( navState.routeStack[index], this.props.navigator, index, diff --git a/Libraries/Geolocation/RCTGeolocation.xcodeproj/project.pbxproj b/Libraries/Geolocation/RCTGeolocation.xcodeproj/project.pbxproj index f0c5c2903..dd17e5808 100644 --- a/Libraries/Geolocation/RCTGeolocation.xcodeproj/project.pbxproj +++ b/Libraries/Geolocation/RCTGeolocation.xcodeproj/project.pbxproj @@ -54,7 +54,9 @@ 134814051AA4E45400B7C361 /* RCTLocationObserver.m */, 134814211AA4EA7D00B7C361 /* Products */, ); + indentWidth = 2; sourceTree = ""; + tabWidth = 2; }; /* End PBXGroup section */ diff --git a/Libraries/Image/Image.ios.js b/Libraries/Image/Image.ios.js index ed857584d..5f3dfdd98 100644 --- a/Libraries/Image/Image.ios.js +++ b/Libraries/Image/Image.ios.js @@ -56,35 +56,33 @@ var warning = require('warning'); var Image = React.createClass({ propTypes: { + /** + * `uri` is a string representing the resource identifier for the image, which + * could be an http address, a local file path, or the name of a static image + * resource (which should be wrapped in the `required('image!name')` function). + */ source: PropTypes.shape({ - /** - * A string representing the resource identifier for the image, which - * could be an http address, a local file path, or the name of a static image - * resource (which should be wrapped in the `ix` function). - */ uri: PropTypes.string, }), /** - * accessible - Whether this element should be revealed as an accessible - * element. + * Whether this element should be revealed as an accessible element. */ accessible: PropTypes.bool, /** - * accessibilityLabel - Custom string to display for accessibility. + * Custom string to display for accessibility. */ accessibilityLabel: PropTypes.string, /** - * capInsets - When the image is resized, the corners of the size specified + * When the image is resized, the corners of the size specified * by capInsets will stay a fixed size, but the center content and borders * of the image will be stretched. This is useful for creating resizable - * rounded buttons, shadows, and other resizable assets. More info: - * - * https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIImage_Class/index.html#//apple_ref/occ/instm/UIImage/resizableImageWithCapInsets: + * rounded buttons, shadows, and other resizable assets. More info on + * [Apple documentation](https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIImage_Class/index.html#//apple_ref/occ/instm/UIImage/resizableImageWithCapInsets) */ capInsets: EdgeInsetsPropType, style: StyleSheetPropType(ImageStylePropTypes), /** - * testID - A unique identifier for this element to be used in UI Automation + * A unique identifier for this element to be used in UI Automation * testing scripts. */ testID: PropTypes.string, diff --git a/Libraries/Image/RCTImage.xcodeproj/project.pbxproj b/Libraries/Image/RCTImage.xcodeproj/project.pbxproj index 585bd408b..33a5a65a8 100644 --- a/Libraries/Image/RCTImage.xcodeproj/project.pbxproj +++ b/Libraries/Image/RCTImage.xcodeproj/project.pbxproj @@ -81,7 +81,9 @@ 1304D5AA1AA8C4A30002E2BE /* RCTStaticImageManager.m */, 58B5115E1A9E6B3D00147676 /* Products */, ); + indentWidth = 2; sourceTree = ""; + tabWidth = 2; }; 58B5115E1A9E6B3D00147676 /* Products */ = { isa = PBXGroup; diff --git a/Libraries/Network/RCTNetwork.xcodeproj/project.pbxproj b/Libraries/Network/RCTNetwork.xcodeproj/project.pbxproj index 9aa64ad23..652952994 100644 --- a/Libraries/Network/RCTNetwork.xcodeproj/project.pbxproj +++ b/Libraries/Network/RCTNetwork.xcodeproj/project.pbxproj @@ -51,7 +51,9 @@ 1372B7361AB03E7B00659ED6 /* RCTReachability.m */, 58B511DC1A9E6C8500147676 /* Products */, ); + indentWidth = 2; sourceTree = ""; + tabWidth = 2; }; 58B511DC1A9E6C8500147676 /* Products */ = { isa = PBXGroup; diff --git a/Libraries/PushNotificationIOS/RCTPushNotification.xcodeproj/project.pbxproj b/Libraries/PushNotificationIOS/RCTPushNotification.xcodeproj/project.pbxproj index 9521a4dfc..10d8ce169 100644 --- a/Libraries/PushNotificationIOS/RCTPushNotification.xcodeproj/project.pbxproj +++ b/Libraries/PushNotificationIOS/RCTPushNotification.xcodeproj/project.pbxproj @@ -54,7 +54,9 @@ 148699CE1ABD045300480536 /* RCTPushNotificationManager.m */, 134814211AA4EA7D00B7C361 /* Products */, ); + indentWidth = 2; sourceTree = ""; + tabWidth = 2; }; /* End PBXGroup section */ diff --git a/Libraries/RCTTest/RCTTest.xcodeproj/project.pbxproj b/Libraries/RCTTest/RCTTest.xcodeproj/project.pbxproj index a710b09e9..d4945f460 100644 --- a/Libraries/RCTTest/RCTTest.xcodeproj/project.pbxproj +++ b/Libraries/RCTTest/RCTTest.xcodeproj/project.pbxproj @@ -65,7 +65,9 @@ 58E64FE31AB964CD007446E2 /* FBSnapshotTestCase */, 580C37701AB104AF0015E709 /* Products */, ); + indentWidth = 2; sourceTree = ""; + tabWidth = 2; }; 580C37701AB104AF0015E709 /* Products */ = { isa = PBXGroup; diff --git a/Libraries/RCTWebSocketDebugger/RCTWebSocketDebugger.xcodeproj/project.pbxproj b/Libraries/RCTWebSocketDebugger/RCTWebSocketDebugger.xcodeproj/project.pbxproj index 082ba27b2..acb5daa3e 100644 --- a/Libraries/RCTWebSocketDebugger/RCTWebSocketDebugger.xcodeproj/project.pbxproj +++ b/Libraries/RCTWebSocketDebugger/RCTWebSocketDebugger.xcodeproj/project.pbxproj @@ -51,7 +51,9 @@ 00D277151AB8C32C00DC1E48 /* RCTWebSocketExecutor.m */, 832C81811AAF6DEF007FA2F7 /* Products */, ); + indentWidth = 2; sourceTree = ""; + tabWidth = 2; }; 832C81811AAF6DEF007FA2F7 /* Products */ = { isa = PBXGroup; diff --git a/Libraries/Text/RCTText.xcodeproj/project.pbxproj b/Libraries/Text/RCTText.xcodeproj/project.pbxproj index 7f34de484..0304ef851 100644 --- a/Libraries/Text/RCTText.xcodeproj/project.pbxproj +++ b/Libraries/Text/RCTText.xcodeproj/project.pbxproj @@ -66,7 +66,9 @@ 58B511CD1A9E6C5C00147676 /* RCTTextManager.m */, 58B5119C1A9E6C1200147676 /* Products */, ); + indentWidth = 2; sourceTree = ""; + tabWidth = 2; }; 58B5119C1A9E6C1200147676 /* Products */ = { isa = PBXGroup; diff --git a/Libraries/Vibration/RCTVibration.xcodeproj/project.pbxproj b/Libraries/Vibration/RCTVibration.xcodeproj/project.pbxproj index c8d628bbe..bc8a47cbf 100644 --- a/Libraries/Vibration/RCTVibration.xcodeproj/project.pbxproj +++ b/Libraries/Vibration/RCTVibration.xcodeproj/project.pbxproj @@ -46,7 +46,9 @@ 832C819B1AAF6E1A007FA2F7 /* RCTVibration.m */, 832C81811AAF6DEF007FA2F7 /* Products */, ); + indentWidth = 2; sourceTree = ""; + tabWidth = 2; }; 832C81811AAF6DEF007FA2F7 /* Products */ = { isa = PBXGroup; diff --git a/React/Base/RCTConvert.m b/React/Base/RCTConvert.m index 10a8fbd54..3f8057d61 100644 --- a/React/Base/RCTConvert.m +++ b/React/Base/RCTConvert.m @@ -547,7 +547,11 @@ RCT_CGSTRUCT_CONVERTER(CGAffineTransform, (@[ UIImage *image = nil; NSString *path = json; - if ([path isAbsolutePath]) { + if ([path hasPrefix:@"data:"]) { + NSURL *url = [NSURL URLWithString:path]; + NSData *imageData = [NSData dataWithContentsOfURL:url]; + image = [UIImage imageWithData:imageData]; + } else if ([path isAbsolutePath]) { image = [UIImage imageWithContentsOfFile:path]; } else { image = [UIImage imageNamed:path]; diff --git a/React/React.xcodeproj/project.pbxproj b/React/React.xcodeproj/project.pbxproj index 0702a5dd8..537590ad1 100644 --- a/React/React.xcodeproj/project.pbxproj +++ b/React/React.xcodeproj/project.pbxproj @@ -321,7 +321,9 @@ 83CBBA2F1A601D0F00E9B192 /* React */, 83CBBA001A601CBA00E9B192 /* Products */, ); + indentWidth = 2; sourceTree = ""; + tabWidth = 2; }; 83CBBA001A601CBA00E9B192 /* Products */ = { isa = PBXGroup; diff --git a/package.json b/package.json index f94ef074a..be08b782b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native", - "version": "0.3.3", + "version": "0.3.1", "description": "A framework for building native apps using React", "repository": { "type": "git",