Commit Graph

6737 Commits

Author SHA1 Message Date
Joel Marcey 0c4147ac6a Create Existing App Integration Tutorial
Summary:
We currently have iOS and Android existing app integration guides. I have revamped these into a single tutorial, with three sections: Objective-C, Swift and Android.

For Objective-C and and Swift, the tutorial is now based on a more real world app - integrating a React Native-based high score screen into a 2048 app.

For expediency to get the iOS stuff out, for Android, *for now*, I have kept the existing documentation (with minor updates), but am planning to try to follow the same 2048 model for it as well.

This uses the same toggler as Getting Started

> I do note the copypasta of the toggler code. I am planning another separate pull request to make that more modular and reusable across all areas of the documentation on which it seems reasonable.

<img width="1277" alt="screenshot 2016-05-25 15 34 27" src="https://cloud.githubusercontent.com/assets/3757713/15558448/13c0aa1a-228f-11e6-9f38-5117d5824b84.png">
<img width="1260" alt="screenshot 2016-05-25 15 40 50" src="https://cloud.githubusercont
Closes https://github.com/facebook/react-native/pull/7764

Differential Revision: D3444455

Pulled By: JoelMarcey

fbshipit-source-id: 73dcdadd912177bb83b29099ff857046bf495939
2016-06-16 08:28:33 -07:00
Espen J c94e939919 Fixed wrong description of output text in Tutorial-CoreComponents.md
Summary: Closes https://github.com/facebook/react-native/pull/8052

Differential Revision: D3444425

Pulled By: JoelMarcey

fbshipit-source-id: 5a748e40829084cdf0c5fbd94c41b00d01919878
2016-06-16 08:13:24 -07:00
Konstantin Raev 192f6ddf82 another fix to OSS tests
Summary: Closes https://github.com/facebook/react-native/pull/8151

Differential Revision: D3444091

fbshipit-source-id: a8a43a56332c66b0af84695aa54fb1e4c5d659f6
2016-06-16 04:14:28 -07:00
Konstantin Raev e514ff5ad4 Fixes Buck file in trunk
Summary: Closes https://github.com/facebook/react-native/pull/8150

Differential Revision: D3443995

fbshipit-source-id: 328cb9f9ef84dd2ddc0460940f54af2dbd807523
2016-06-16 02:43:51 -07:00
Fred Liu ab52de6300 More sensitive swipe gesture recognition
Summary: I noticed sometimes the swipeable row prioritizes the list view's vertical scroll too much, or returns to closed position if swiped a little distance but at high velocity. These new thresholds help both cases.

Reviewed By: hedgerwang

Differential Revision: D3441994

fbshipit-source-id: 84a9fdf63a33b3047a9a0205e87d8c489e9a6631
2016-06-15 19:13:31 -07:00
Krishna Monian 12a87b6674 Fix lost callbacks due to time drift between server and emulator
Reviewed By: yungsters

Differential Revision: D3434921

fbshipit-source-id: ec82374a8ed322d99beadac78a415f952ceb3ec8
2016-06-15 13:28:29 -07:00
Ahmed El-Helw f236667a17 Fix touch inspector when using Nodes
Reviewed By: astreet

Differential Revision: D3433927

fbshipit-source-id: 5b17a16191f167db8f4491da37a1735e725e99b8
2016-06-15 12:28:28 -07:00
Emil Sjolander 9803f3b0dc Fix inspector wrapping layout
Summary: the default child alignment of 'stretch' is not compatible with flexWrap:'wrap'. By aligning children to the start of the container we fix this.

Reviewed By: jingc

Differential Revision: D3436864

fbshipit-source-id: ead5a5765ed0c336ed6e727af2970d4e6d7ff34f
2016-06-15 11:13:25 -07:00
Alexander Blom 5db4aad347 Remove RCTLog from prod builds
Reviewed By: javache

Differential Revision: D3437532

fbshipit-source-id: 973491fe74614d381a173a067fb2dd376e14a36a
2016-06-15 10:28:29 -07:00
Pieter De Baets 1579a72ca6 Implement {min,max}{Width,Height} in ReactAndroid
Reviewed By: astreet

Differential Revision: D3424294

fbshipit-source-id: 03ae663927600bff025cd953a9b6b221c8dd9f23
2016-06-15 09:58:53 -07:00
Pieter De Baets 78b892906b Support {min,max}{Width,Height} on RCTView
Reviewed By: majak

Differential Revision: D2939842

fbshipit-source-id: c8726f1160269e432afc7562c58886313e42963c
2016-06-15 09:58:52 -07:00
Pieter De Baets 0a9cc99a4f Update css-layout sync scripts
Reviewed By: emilsjolander

Differential Revision: D3424265

fbshipit-source-id: b1a765bbe11f776e418ae8b01c5c2a292f590a6b
2016-06-15 09:58:52 -07:00
Andrei Coman b7352b4667 Open source permissions
Summary:
This moves into open source the PermissionsModule and the activity and listener interfaces
necessary to make permissions work.
It also moves the PermissionsExample into the UIExplorer. In order to make this
work, the device has to be Android M and above, and the target sdk of the app has to be 23+, so I changed the uiexplorer manifest to
target that API. This has the unfortunate consequence that people testing on
devices with API 23+ will have to enable the `draw over other apps` setting that
react needs for RedBoxing. The app will automatically send the user to that screen,
so enabling the setting and resuming the app should be trivial.
For testing, try requesting permission for a permission that is currently
revoked. If a permission is granted, it can be revoked via adb (`adb shell pm
revoke com.your.app android.permission.PERMISSION_NAME`), and then requested.

Reviewed By: bestander

Differential Revision: D3431324

fbshipit-source-id: 8cbaea676d2b5727cb5191cdb77a02e213bf9ba3
2016-06-15 09:43:58 -07:00
Valentin Agachi 4fe7a25d01 Internal fixes for the iOS Explorer test script
Summary:
Some changes are required to this scripts in order to successfully run it on Sandcastle:

- the packager needs to be started before the test, doing this only when not running in Travis
- no xcpretty available, piping to anything else (e.g. `cat`) fails
Closes https://github.com/facebook/react-native/pull/8127

Differential Revision: D3437268

Pulled By: avaly

fbshipit-source-id: a0a52f08b31f50b88f5d0fd4d9d6c827df179d71
2016-06-15 08:59:11 -07:00
Martin Kralik 1fcd73f384 fix an issue where scrollview wouldn't unclip its cells
Summary:
Issue we were seeing: scrollview would clip its cells when it was resized to 0 height and moved offscreen, but it wouldn't add it back when it was resized and moved back
Why this was happening: scrollview wouldn't rerun its un/clipping logic after the first run unless 1/it has 0x0 frame or 2/it has been scrolled. Neither was happening here.
Fix: run the un/clipping logic when scrollview's frame has been changed since the last clipping.

Reviewed By: javache

Differential Revision: D3436996

fbshipit-source-id: 1a8cfeb72b425fcc80815d30743fa308b9c75ab6
2016-06-15 08:29:02 -07:00
Pieter De Baets 979d1c7e71 Make MessageQueue module/method tables DEV-only
Reviewed By: lexs

Differential Revision: D3431065

fbshipit-source-id: fcb90bd53460064f8a0efee346ed3b87886e7b60
2016-06-15 07:58:48 -07:00
Valentin Agachi b98a05ebd3 Reverted commit D3436833
Summary:
Some changes are required to this scripts in order to successfully run it on Sandcastle:

- the packager needs to be started before the test
- no xcpretty available, piping to anything else (e.g. `cat`) fails
Closes https://github.com/facebook/react-native/pull/8123

Differential Revision: D3436833

Pulled By: avaly

fbshipit-source-id: e284d6eaf370720b9a0f2468b114a596028f7107
2016-06-15 06:44:07 -07:00
Franklyn Tackitt 23ce29528f Reverted commit D3430206
Summary:
Currently, DevTools only work under ios (although this is undocumented!), because the JavaScriptEngine initialization process skips setupDevTools() on android.

DevTools work fine with Android, as tested on 0.26, 0.27, and 0.28 using Nuclide's inspector.

For reference, [the relevant issue on react-devtools](https://github.com/facebook/react-devtools/issues/229).
Closes https://github.com/facebook/react-native/pull/8095

Reviewed By: bestander

Differential Revision: D3430206

Pulled By: javache

fbshipit-source-id: 76f19407271a3779e12bd244f1bc31ef3a8659c7
2016-06-15 06:44:06 -07:00
Valentin Agachi 63b813128a Internal fixes for the iOS Explorer test script
Summary:
Some changes are required to this scripts in order to successfully run it on Sandcastle:

- the packager needs to be started before the test
- no xcpretty available, piping to anything else (e.g. `cat`) fails
Closes https://github.com/facebook/react-native/pull/8123

Differential Revision: D3436833

Pulled By: avaly

fbshipit-source-id: 893ac5cba4197cf5bb6b492701171910fd10f99d
2016-06-15 05:43:44 -07:00
Franklyn Tackitt 1b40db7ec0 Remove iOS platform check for running devtools
Summary:
Currently, DevTools only work under ios (although this is undocumented!), because the JavaScriptEngine initialization process skips setupDevTools() on android.

DevTools work fine with Android, as tested on 0.26, 0.27, and 0.28 using Nuclide's inspector.

For reference, [the relevant issue on react-devtools](https://github.com/facebook/react-devtools/issues/229).
Closes https://github.com/facebook/react-native/pull/8095

Reviewed By: bestander

Differential Revision: D3430206

Pulled By: javache

fbshipit-source-id: 826f0252fff3f0ec2c843149540a0109e34d1d18
2016-06-15 04:58:52 -07:00
Konstantin Raev 58881fc57f <Replace this line with a title. Use 1 line only, 67 chars or less>
Reviewed By: matryoshcow

Differential Revision: D3432084

fbshipit-source-id: fa94b1aca40c931cc273a5561adf37f458aaa0ff
2016-06-15 03:14:20 -07:00
InnerPeace080 503fdc6699 Add SCTV App to React Native showcase
Summary: Closes https://github.com/facebook/react-native/pull/8019

Differential Revision: D3436251

fbshipit-source-id: 8bcc8b32ebb673522777be35c78ca447efab770f
2016-06-14 22:43:40 -07:00
Hedger Wang 3a6231432a Define the generic `render` prop for NavigationTransitioner to render scenes.
Summary:
This defines the generic function prop `render(props: NavigationTransitionProps)`
to NavigationTransitioner, which enables developer to render scenes, header, overlay,
underlay...etc.

Differential Revision: D3431478

fbshipit-source-id: 93dbc7da23ad8c95565b01f7865d1e8dfd4401f7
2016-06-14 16:43:28 -07:00
Hedger Wang 4ab1bcb124 Fix typo, rename NavigationHeaderScenesTabs-example.js. to NavigationExperimental/NavigationCardStack-NavigationHeader-Tabs-example.js
Summary:
- Fix typo.
- rename NavigationHeaderScenesTabs-example.js. to NavigationExperimental/NavigationCardStack-NavigationHeader-Tabs-example.js

Differential Revision: D3431559

fbshipit-source-id: 25cd0837efced2156d608577ee7c383009c2de24
2016-06-14 16:28:47 -07:00
Marc Horowitz 50caf4e809 Change the default guard behavior to throw the exception
Differential Revision: D3428928

fbshipit-source-id: 7847d7fac6a2dc1e4c58dfd5f97feea97ba58930
2016-06-14 16:28:46 -07:00
Jonathan Stanton 3cd01125e2 Add Convoy app to showcase
Summary:
Adding the Convoy Driver app to the app showcase
Closes https://github.com/facebook/react-native/pull/8109

Differential Revision: D3433139

fbshipit-source-id: aebf53e28c6d521f823957116f9d143f7745d776
2016-06-14 14:58:31 -07:00
waffleandtoast f01addb4a1 Add emoj3 app to showcase
Summary:
Adding emoj3 app to showcase
Closes https://github.com/facebook/react-native/pull/8101

Differential Revision: D3433164

fbshipit-source-id: b381ddc1516fdd2b97cd4217a2a65a4865f854be
2016-06-14 14:58:31 -07:00
mcliquid 6c279d8115 Add "camigo" to showcase
Summary: Closes https://github.com/facebook/react-native/pull/7945

Differential Revision: D3432937

fbshipit-source-id: 8b7b4471150a0627cf0396e8eaf8ccd7629f36e8
2016-06-14 14:28:48 -07:00
Albert Brand 420c07ef6f Add UIGraphicsPush/PopContext to prevent lost reference during snapshot testing
Summary:
We're seeing sporadic "CGContext...: invalid context 0x..." error messages during snapshot runs of our product build. This also seems to happen sometimes when building RN, see for instance: https://www.google.nl/search?q=site%3Atravis-ci.org%2Ffacebook%2Freact-native%20CGContextSaveGState%20invalid%20context

Our guess is that at some point, the CGContextRef is autoreleased. We tried retaining the ref first, but eventually settled for pushing/popping the context as it never fails in our tests (retaining still causes seemingly unrelated failures).

We're not sure if we can provide a testplan for this change, as the FBSnapshotTestController is not tested separately.
Closes https://github.com/facebook/react-native/pull/8098

Differential Revision: D3431043

fbshipit-source-id: 61b9a7a849a020f6b8671d63781eed9418d409dc
2016-06-14 09:58:41 -07:00
Fanghao Chen 668857a168 Add Discord's blog post.
Summary: Closes https://github.com/facebook/react-native/pull/8012

Differential Revision: D3430539

Pulled By: javache

fbshipit-source-id: 7d9a912566bb8a5105447b01d69d785db5d1a52b
2016-06-14 07:13:56 -07:00
q-- 599d76a64b Fix tutorial link in README.md
Summary:
The tutorial has moved to a different URL, so the link currently ends up at the getting started page.

I also changed the remaining non-HTTPS urls in README.md to use HTTPS after checking they supported it. And I changed the Addons.Mozilla.org link to a language-agnostic one.
Closes https://github.com/facebook/react-native/pull/8047

Differential Revision: D3430542

Pulled By: javache

fbshipit-source-id: 4c5ccea9a5720126870a5df1be5073a6cc2f34ae
2016-06-14 06:43:49 -07:00
Satyajit Sahoo 803cb61346 Show better error message when accessing React APIs on React Native
Summary:
**Motivation:**

Lots of examples on the web still have the old way to import React APIs from React Native. Also when someone upgrades to latest version of React Native without reading the release notes can get confused. This PR adds getters for  `createClass` and `Component` and throws an error with a better error message when they are accessed.

![screenshot_20160614-125622](https://cloud.githubusercontent.com/assets/1174278/16034600/47c70222-3230-11e6-9fe4-1a3493708829.png)

**Test plan:**

Trying to use `ReactNative.createClass` or `ReactNative.Component` will throw an error with this error message.

There's currently a bug in `symbolicateStackTrace` which actually crashes the app after showing the error due to the `stack` being null when updating the stack trace. But that's a separate issue which should be fixed separately. For now, to prevent the crash, we need to add the following before the return statement here - https://github.com/facebook/react-native/blob/master/Libraries/JavaScriptAppEn
Closes https://github.com/facebook/react-native/pull/8099

Differential Revision: D3430468

Pulled By: javache

fbshipit-source-id: c098e51e1f2c276d87eca6da3bd91a457d7840c5
2016-06-14 06:28:26 -07:00
Jonathan Stanton 8ac55ee92b Instantiate local notifications different than remote notifications
Summary:
To use `PushNotificationIOS` for local notifications in the same way as we use them for remote notifications. Today remote notifications are being constructed correctly but local notifications are not. Related issue: https://github.com/facebook/react-native/issues/8014

When ObjC receives local notifications it does not serialize the `UILocalNotification` the same way as we do for remote notifications. And when we go to construct a `PushNotificationIOS` javascript instance it works for remote notifications but not for local notifications.

- Some of remote notification's data is wrapped in an `aps` dict (https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/TheNotificationPayload.html#//apple_ref/doc/uid/TP40008194-CH107-SW1).
- All of local notifications are being received and passed to javascript as a flat dictionary: (https://github.com/facebook/react-native/blob/maste
Closes https://github.com/facebook/react-native/pull/8029

Differential Revision: D3417260

Pulled By: javache

fbshipit-source-id: c130aa39e89ffbbd8b1243b6dacbf95bb591b4da
2016-06-14 06:13:25 -07:00
Siqi Liu 1e88c1261c Disable the double R shortcut to reload JS in iOS
Summary: Disable double R shortcut temporarily to fix a bug.

Reviewed By: majak

Differential Revision: D3428043

fbshipit-source-id: 23795b72433230e49d5ab559c0cb828bce8196ea
2016-06-14 05:30:30 -07:00
Pieter De Baets b90b57c9a1 Cache __fbBatchedBridge reference
Summary:
We already do this on Android, and it allows uw to avoid doing this global object lookup for every call. Since there's only a couple of global functions we ever call, we should consider caching all of them in the new bridge.

I didn't ValueProtect/ValueUnprotect since these are already globals, and those methods are not exposed on the JSC wrapper.

Reviewed By: mhorowitz

Differential Revision: D3411487

fbshipit-source-id: 7feaf8803665b77d649e84edad875d31c5acee4b
2016-06-14 05:14:01 -07:00
Pieter De Baets 482b4b6bfa Delay some requires in Animated
Reviewed By: sahrens

Differential Revision: D3424476

fbshipit-source-id: 487835e310b7651e952f46991f2a64bc4967d58a
2016-06-14 05:14:01 -07:00
Konstantin Raev 6210db8ffa Fixed Circle: limit Gradle threads
Summary: Closes https://github.com/facebook/react-native/pull/8103

Differential Revision: D3430328

fbshipit-source-id: 0e683ae1cdc6b4c0cd1e2f426f838b749341dca5
2016-06-14 03:58:26 -07:00
Tony Xiao 93ff5799a5 Add $(inherited) to OTHER_LDFLAGS in xcodeproj template
Summary:
This is particularly important when using generated xcode project together with cocoapods (or anything that leverages a custom xcconfig)

If we do not set `$(inherited)`, then user will get cryptic "Symbol(s) not found for architecture ..." errors that will be really difficult to track down, especially for beginners. This happens because without setting `$(inherited)` we are essentially overriding settings provided on project level (rather than target level) as well as `.xcconfig` level.

**Test plan (required)**

```bash
react-native init MyProject
cd ios
pod init
```
Now go and add a pod to the `Podfile`, say
```ruby
pod 'HockeySDK'
```
And try to use it in `AppDelegate.m`
```objc
...
[[BITHockeyManager sharedHockeyManager] configureWithIdentifier:@"APP_IDENTIFIER"];
[[BITHockeyManager sharedHockeyManager] startManager];
```

Before this change, you'll get errors like this
![image](https://cloud.githubusercontent.com/assets/696842/15801450/feb3c036-2a4
Closes https://github.com/facebook/react-native/pull/7927

Differential Revision: D3430228

Pulled By: javache

fbshipit-source-id: ef453ad2e822726db0159d24ec93e301192e21de
2016-06-14 03:02:32 -07:00
Janic Duplessis 4c245160bd Replace deprecated ActivityIndicatorIOS and ProgressBar with ActivityIndicator
Summary:
This replaces ActivityIndicatorIOS and indeterminate ProgressBar that were deprecated recently with ActivityIndicator across the codebase and examples and a few other cleanups.

This also make a small tweak to ActivityIndicator so it uses the Android theme color instead of gray when no color is specified.

Use Slider instead of SliderIOS in CameraRoll example.

Remove the line about unifying ActivityIndicator and ProgressBar.

**Test plan**
Tested the affected components in UIExplorer on iOS and Android, tested the changes made in Movies example on iOS and Android.
Closes https://github.com/facebook/react-native/pull/8082

Differential Revision: D3429770

fbshipit-source-id: 3b2e1196a8b9fe00d47a7aa1bbc079b094796421
2016-06-13 22:28:24 -07:00
Chris Hopman d344963123 Invert native dependency of new bridge -> old bridge
Reviewed By: mhorowitz

Differential Revision: D3409230

fbshipit-source-id: 541309ec953843477197e5a2b13730b8a38f608d
2016-06-13 18:43:42 -07:00
Chris Hopman b2d4c2e255 Add c++-runloop-backed message queue
Reviewed By: mhorowitz

Differential Revision: D3250498

fbshipit-source-id: 4e32153bcf07f6362f55fa558c22551140b34451
2016-06-13 18:13:34 -07:00
Gerald Monaco 9e9536c50b Lazier loading spinner
Reviewed By: sahrens

Differential Revision: D3413675

fbshipit-source-id: b517bb8175604973bd2f08b6f7b7d3442f0120fd
2016-06-13 18:13:33 -07:00
Clement Genzmer 7c8b91442b Fix rtcRefreshControl
Reviewed By: javache

Differential Revision: D3428671

fbshipit-source-id: c3ae599d4a1a831513b4a7c88ae6aa3b3469e92a
2016-06-13 17:58:31 -07:00
Fred Liu 88f08ec99a quick actions resize when campaign card resizes
Reviewed By: zjj010104

Differential Revision: D3427226

fbshipit-source-id: da8f3a8e399be45afef7e6ba10cb16c7c025c078
2016-06-13 16:58:24 -07:00
Alex Kotliarskyi 23027cd730 Unify renderApplication across iOS and Android
Reviewed By: spicyj

Differential Revision: D3385860

fbshipit-source-id: 256a2d12691dc9fddc56eaf150697f07b830da92
2016-06-13 16:44:04 -07:00
Nathan Azaria 8c29a52c54 Implemented automatic IP detection for iOS
Summary:
Implemented automatic IP detection for iOS, based on #6345 and #6362.
As the previous pull requests did, this works by writing the IP address of the host to a file.
Closes https://github.com/facebook/react-native/pull/8091

Differential Revision: D3427657

Pulled By: javache

fbshipit-source-id: 3f534c9b32c4d6fb9615fc2e2c3c3aef421454c5
2016-06-13 15:58:36 -07:00
Janic Duplessis f9e26b327b Fix polyfillLazyGlobal to work with allowTopLevelThis = false
Summary:
`polyfillLazyGlobal` used a top level this which get stripped by babel `transform-es2015-modules-commonjs` with the default config. This is mainly an issues for people not using the react native babel preset.

This also replaces a few GLOBAL with global for consistency with the rest of the file.

**Test plan**

Tested that there was an error when using `['transform-es2015-modules-commonjs', { strict: true, allowTopLevelThis: false }]` in the babel config and that it was fixed after applying my changes.

Fixes #7700
Closes https://github.com/facebook/react-native/pull/7971

Differential Revision: D3427675

Pulled By: javache

fbshipit-source-id: 48f258b0db1bf21185193bd56df453ced9242e64
2016-06-13 15:58:36 -07:00
Jeff Morrison df46891dfe v0.27.0: fbsource
Reviewed By: gabelevi

Differential Revision: D3421744

fbshipit-source-id: d72275fa70687a188c6175dbd193ab8d79d9051e
2016-06-13 14:28:25 -07:00
Andrei Coman 617a38d984 Support multi sources for images
Summary:
This adds support for specifying multiple sources for an image component, so that native can choose the best one based on the flexbox-computed size of the image.
The API is as follows: the image component receives in the `source` prop an array of objects of the type `{uri, width, height}`. On the native side, the native component will wait for the layout pass to receive the width and height of the image, and then parse the array to find the best fitting one. For now, this does not support local resources, but it will be added soon.
To see how this works and play with it, there's an example called `MultipleSourcesExample` under `ImageExample` In UIExplorer.

Reviewed By: foghina

Differential Revision: D3364550

fbshipit-source-id: 66c5aeb2794f2ffeff8da39a9c0b95155fb2d41f
2016-06-13 14:13:25 -07:00
Nathan Azaria 9443bc5c3f Changed the host for RCTWebSocketExecutor to the one retrieved from the bridge.
Reviewed By: javache

Differential Revision: D3425043

fbshipit-source-id: 342d3dfede6a29197dedb68278ee088dcf009e16
2016-06-13 13:28:28 -07:00