Commit Graph

950 Commits

Author SHA1 Message Date
Dave Miller ca0c6dbe36 Enable zoom on WebViews on Android
Summary: Make the behavior on a WebView allow pinch to zoom.  This matches what iOS has by default.  We may want to at some point put this behind a property but right now just make it work on Android.

Reviewed By: andreicoman11

Differential Revision: D3503429

fbshipit-source-id: adb2bb2c3de099aca08700786be7a132557a5e2a
2016-06-30 07:43:22 -07:00
Andy Street cf7b4e74f0 Use DISPLAY thread priority for main thread in React Native
Summary: In older versions of android, the main thread is given the same priority as all other threads (default). Instead, it should have a higher priority (DISPLAY) which will make sure it's scheduled instead of the background JS/native modules threads.

Reviewed By: majak

Differential Revision: D3497244

fbshipit-source-id: 15ab09f4ebcad2692ae1261f15aa2c6c39f72ee9
2016-06-29 14:13:26 -07:00
Tucker Connelly 3d3b067f6f Add zIndex support
Summary:
Adds zIndex support :)

**Test Plan**

Tested the following components by adding two of each, overlapping them, and setting a high zIndex on the first of the two:

ActivityIndicator
Image
MapView
Picker
ScrollView
Slider
Switch
Text
TextInput
View
WebView

Tested on Android 4.1 and iOS 8.4. Also tested updating zIndexes on Views in my own app.

<img width="359" alt="ios activityindicator" src="https://cloud.githubusercontent.com/assets/4349082/15633473/88f842cc-257b-11e6-8539-c41c0b179f80.png">
<img width="330" alt="android activityindicator" src="https://cloud.githubusercontent.com/assets/4349082/15633475/88f95784-257b-11e6-80c0-2bf3ed836503.png">
<img width="357" alt="ios image" src="https://cloud.githubusercontent.com/assets/4349082/15633474/88f93d80-257b-11e6-9e54-4ff8e4d25f71.png">
<img width="340" alt="android image" src="https://cloud.githubusercontent.com/assets/4349082/15633478/88fd2788-257b-11e6-8c80-29078e65e808.png">
<img width="342" alt="android picker" src="ht
Closes https://github.com/facebook/react-native/pull/7825

Differential Revision: D3469374

Pulled By: lexs

fbshipit-source-id: b2b74b71d968ebf73ecfd457ace3f35f8f7c7658
2016-06-29 07:43:23 -07:00
Andrei Coman f0f2645ec7 Backed out changeset 708058c5f244
Reviewed By: dmmiller

Differential Revision: D3496881

fbshipit-source-id: 0f2e0d5769d09e0c70feceda7ff7d959e3a9ef2e
2016-06-29 04:13:23 -07:00
Andrei Coman cbd8214b43 Reverted commit D3494715
Reviewed By: donyu

Differential Revision: D3494715

fbshipit-source-id: a96e12ddbf266804b1bb8ec169d3c01e8a029eb7
2016-06-29 02:43:19 -07:00
Martín Bigio 1762426e9c Revert change on ResourceDrawableIdHelper
Reviewed By: donyu

Differential Revision: D3494715

fbshipit-source-id: 807f3ea3db42a17e6f2eed63a72e0bccfc371a58
2016-06-28 15:58:19 -07:00
Martín Bigio eafc5dac62 Add support for `drawableLeft` and `drawablePadding` props
Summary: Add support inlining images into text inputs. For now this is only available on Android.

Reviewed By: andreicoman11

Differential Revision: D3470805

fbshipit-source-id: 14db05ec4d5af549bf314b903654314f39bf73ea
2016-06-28 14:13:48 -07:00
Martín Bigio 54ed44628d Promote ResourceDrawableIdHelper to new module
Summary: Found a couple of places where we were copy-pasting the logic `ResourceDrawableIdHelper` had. This class was only available on the image module and it had package visibility. I moved it to its own module so that we can easily use it from others.

Reviewed By: andreicoman11

Differential Revision: D3463697

fbshipit-source-id: 708058c5f2445e27b151d8a6f3b47fd23485bc88
2016-06-28 14:13:48 -07:00
leeight 658acba0b6 Add missing `java` directory in ReactAndroid/build.gradle
Summary:
Fix Android Studio warnings for https://github.com/facebook/SoLoader package.
Closes https://github.com/facebook/react-native/pull/8221

Differential Revision: D3492863

Pulled By: bestander

fbshipit-source-id: 984c24f3a3bc084adf1b79e24b33da0c01a6e4c6
2016-06-28 04:28:23 -07:00
Ovidiu Viorel Iepure e3b5948392 Open sourced CatalystUIManagerTestCase test for RN Android
Reviewed By: bestander

Differential Revision: D3436688

fbshipit-source-id: bed53f8f4aa8346d6f808c2d79eb9c279c2cd078
2016-06-27 09:13:53 -07:00
Omri Gindi 2fc0f4041e Add the onNewIntent listener to React Native Android
Reviewed By: foghina

Differential Revision: D3475896

fbshipit-source-id: d8e5d7734974132307a85d21e4c1602327a479fa
2016-06-27 09:13:53 -07:00
Chris Hopman d055ab548e Fix check for if we are ready to make js calls
Reviewed By: mhorowitz

Differential Revision: D3485010

fbshipit-source-id: 5a3ce9be6a88f02478fb711fd09c57e4b2ccfc0d
2016-06-24 19:28:34 -07:00
Franklyn Tackitt f7eca44046 Reverted commit D3443980
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: javache

Differential Revision: D3443980

Pulled By: bestander

fbshipit-source-id: ce0f7dd62ae0f7dfe6654380821660f8660318a6
2016-06-24 13:28:42 -07:00
Franklyn Tackitt 1c290d69c1 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: javache

Differential Revision: D3443980

Pulled By: andreicoman11

fbshipit-source-id: 3d7b2e83cf4158a1228d2e21510509ab63411a5d
2016-06-24 08:28:32 -07:00
Chris Hopman df6d18358e Serialize params when making/queuing native call
Reviewed By: mhorowitz

Differential Revision: D3460507

fbshipit-source-id: a0600ffe3da89791af3eb64fc2973eb6aafa7d2b
2016-06-23 14:58:58 -07:00
Ahmed El-Helw 747613920d Allow for customization of the RootViewManager
Reviewed By: astreet

Differential Revision: D3473916

fbshipit-source-id: 0db8748a39a08d28b44173f72d3f738ccb9b4242
2016-06-23 12:29:05 -07:00
Mike Lambert 6cd712713b Support selectable={true} property on Text fields on Android.
Summary:
Explain the **motivation** for making this change. What existing problem does the pull request solve?

This adds support for a text field that the user can click-and-drag to select text (which can then be copied using the native selected-text-hover-widget).

I'd love to add this to iOS too, but iOS appears to draw glyphs directly to the screen for its <Text> widget (versus using UITextField), so it might be too difficult to support there. But at least I can support my Android users with this change.

Let me know if/what kind of "demonstrate the code is solid" you would like for this. A screenshot of selected text with this property set?
Closes https://github.com/facebook/react-native/pull/8028

Differential Revision: D3474196

Pulled By: bestander

fbshipit-source-id: 8d3656681265a0e6229bfa13ff2ae021e894d3cd
2016-06-22 19:13:32 -07:00
Chris Hopman fdcb865cf3 Fix sending accessibility events to RN modals
Reviewed By: dmmiller

Differential Revision: D3472359

fbshipit-source-id: c82d8e254cdd0531eb52805a6f00e63cf783fdc8
2016-06-22 16:43:28 -07:00
Ahmed El-Helw c95d3ef147 Fix measure callback for TextInput on Nodes
Summary: Add a MeasureUtil class

Reviewed By: emilsjolander

Differential Revision: D3467598

fbshipit-source-id: 3ef0da1e4ef16c1f9756653d0aa2e8aa5a598eb1
2016-06-22 14:58:32 -07:00
Alex Kotliarskyi adcb9491bd Persistent websocket connection from Android to Packager
Reviewed By: astreet

Differential Revision: D3447685

fbshipit-source-id: 0e4e3fb02b84b9b15c2c798c0e4c89ff6fd1665c
2016-06-22 11:28:38 -07:00
Gaëtan Renaudeau af28de5300 Implement addUIBlock to allow third party to resolve a view
Summary:
This PR follows the work started in #6431 but instead of implementing the snapshot for Android, will just allow that feature to be implemented by a third party library.

The missing feature is the ability to resolve a View for a given tag integer. which is now possible with a `addUIBlock` on the `UIManagerModule` method where you give a `UIBlock` instance (a new class) that implements a `execute(NativeViewHierarchyManager)` function.

This is already possible in iOS API. a third party can use the `addUIBlock` too.
I have kept the name `addUIBlock` so it's the same as in the [iOS' API](https://github.com/facebook/react-native/search?q=addUIBlock&type=Code&utf8=%E2%9C%93).

 ---

With this PR a third party lib can now do...

```java
UIManagerModule uiManager = reactContext.getNativeModule(UIManagerModule.class);
uiManager.addUIBlock(new UIBlock() {
  public void execute (NativeViewHierarchyManager nvhm) {
    View view = nvhm.resolveView(tag);
    ...do something with view... like... screenshot t
Closes https://github.com/facebook/react-native/pull/8217

Differential Revision: D3469311

Pulled By: astreet

fbshipit-source-id: bb56ecc7e8936299337af47ca8114875ee1fd2b0
2016-06-22 06:28:28 -07:00
Alexander Blom 0669a38b01 Convert field to local
Reviewed By: astreet

Differential Revision: D3463353

fbshipit-source-id: 57781197da57409b869755dbbddfe0f28c476bfb
2016-06-22 04:13:36 -07:00
Alexander Blom c32c9fdf25 Remove unused constructor of XReactInstanceManagerImpl
Reviewed By: astreet

Differential Revision: D3463336

fbshipit-source-id: cfad3710fe646373dbb34dfdda5d019caa52537c
2016-06-22 04:13:36 -07:00
Alexander Blom e54ff3d03f Make JSCConfig non-nullable
Reviewed By: andreicoman11

Differential Revision: D3463317

fbshipit-source-id: feeda132cd596317ca45b083d69ae8df3ffbd6f0
2016-06-22 04:13:36 -07:00
hi大头鬼hi 3e4f16a2a6 fix link
Summary:
fix link in comment
Closes https://github.com/facebook/react-native/pull/8295

Differential Revision: D3469079

Pulled By: javache

fbshipit-source-id: e4c4c3b8871bfac1ff49d5cb29305f96e30282b6
2016-06-22 03:28:26 -07:00
Krzysztof Magiera a59afb98d5 Decompose transform matrix in native (for android).
Summary:
This diff translates implementation of transform matrix decomposition from JS to java. This is to support offloading animations of transform property, in which case it is required that we can calculate decomposed transform in the UI thread.

Since the matrix decomposition code is not being used for other platform I went ahead and deleted parts that are no longer being used.

**Test plan**
Run UIExplorer Transform example before and after - compare the results
Closes https://github.com/facebook/react-native/pull/7916

Reviewed By: ritzau

Differential Revision: D3398393

Pulled By: astreet

fbshipit-source-id: 9881c3f565e2050e415849b0f76a0cefe11c6afb
2016-06-21 11:28:29 -07:00
Alexander Blom d63d4f0e9c Bind methods instead of using eval
Reviewed By: astreet

Differential Revision: D3417452

fbshipit-source-id: 437daa2dfcd01efb749465a94c1a72ce8a2cb315
2016-06-21 10:13:33 -07:00
hi大头鬼hi 99bbdff011 fix package name used in comment
Summary:
Thanks for submitting a pull request! Please provide enough information so that others can review your pull request:

(You can skip this if you're fixing a typo or adding an app to the Showcase.)

Explain the **motivation** for making this change. What existing problem does the pull request solve?

Prefer **small pull requests**. These are much easier to review and more likely to get merged. Make sure the PR does only one thing, otherwise please split it.

**Test plan (required)**

Demonstrate the code is solid. Example: The exact commands you ran and their output, screenshots / videos if the pull request changes UI.

Make sure tests pass on both Travis and Circle CI.

**Code formatting**

Look around. Match the style of the rest of the codebase. See also the simple [style guide](https://github.com/facebook/react-native/blob/master/CONTRIBUTING.md#style-guide).

For more info, see the ["Pull Requests" section of our "Contributing" guidelines](https://github.com/facebook/react-native/blob/mas
Closes https://github.com/facebook/react-native/pull/8272

Differential Revision: D3462939

Pulled By: javache

fbshipit-source-id: af1e6af3807e22466ee9b364a1f09a4510553545
2016-06-21 06:13:37 -07:00
Chris Hopman 6128b7236f Synchronously fail when calling JS too early
Differential Revision: D3453476

fbshipit-source-id: 3fbfda46b4cb7d31f554df6760c5146c412ff468
2016-06-20 12:58:23 -07:00
Siqi Liu ee0333c65d Enable Logging information from redboxes in Android Ads Manager to Scuba
Reviewed By: mkonicek

Differential Revision: D3433990

fbshipit-source-id: 54fa60fa746c9d0d834f86b7dd2e3ef18a694a32
2016-06-18 12:58:29 -07:00
Tim Yung a2f78825f2 RN: Increase Time Drift Threshold
Summary: Increases time drift threshold to reduce chance of false positives. Also, tweaked the error message to contain slightly more information.

Reviewed By: frantic

Differential Revision: D3450852

fbshipit-source-id: 7fbf3eb25543977f9767c7a57277db336006bd12
2016-06-17 16:28:27 -07:00
Ahmed El-Helw 99e2a67b39 Don't close reference to image in getSize
Summary:
ImageLoader improperly closes both the image reference
(which is shared) and the DataSource (which is shared, and should only be
handled by BaseDataSubscriber when it is correct).

Reviewed By: plamenko

Differential Revision: D3441752

fbshipit-source-id: bfb3d0281cd9ae789cba4079978ef46d295ac8f5
2016-06-17 11:58:38 -07:00
Felix Oghina bf79352e4f fix dialogmodule crashing with no fragment manager in onHostResume
Summary: This can happen now, we shouldn't crash. `showAlert` will crash instead if JS tries to call it.

Reviewed By: lexs

Differential Revision: D3450018

fbshipit-source-id: bbc062b357315f26ee98ed3b3a59db71dc5fc74a
2016-06-17 07:58:24 -07:00
Felix Oghina 49f20f4154 Add ReactInstanceHolder
Reviewed By: astreet

Differential Revision: D3328342

fbshipit-source-id: af4e825d0b7c2d3d4490094a939e97cc527dd242
2016-06-17 04:13:29 -07:00
Felix Oghina d78602b8cd show soft errors as redboxes in dev
Summary: These are generally things sent to console.error

Reviewed By: lexs

Differential Revision: D3445393

fbshipit-source-id: e76e82dbaa32dc71100ae6b1d721f80007d8cd3a
2016-06-17 03:28:39 -07:00
Andrei Coman 477cc52945 Use fresco cache to show low res image if available
Summary:
ImageView will now interrogate fresco cache for images that can be shown before
the one with the best fitting size is downloaded. Cache interrogation does not
take into account that the images from cache are smaller or bigger than the best
fit. Most of the cases, the smaller one will be displayed. It is also possible
that a bigger image is available for being displayed, but ideally we'd still
want the best fit to be shown, so as to not decode and resize images that are
too big.
I've added a ImageSource class to simplify things. This makes it easier to
lazy-parse the Uri's when necessary, and cache data related to that uri
and wether the image is local. This also gets rid of the Map, which makes
parsing the source a bit more elegant.

Reviewed By: foghina

Differential Revision: D3392751

fbshipit-source-id: f6b803fb7ae2aa1c787aa51f66297a14903e4040
2016-06-17 03:28:38 -07:00
Andrei Coman 675c55e8ad Update fresco from 0.10.0 to 0.11.0
Summary: Updating to new release from 16.06.2016.

Reviewed By: bestander

Differential Revision: D3444598

fbshipit-source-id: d8c14b3d088bab6c08effcdacde9bf2eccb20d68
2016-06-17 02:58:24 -07:00
Dave Miller 1f8cd9ddbc Add support placeholder in AdsManager for proper deep linking
Reviewed By: foghina

Differential Revision: D3444315

fbshipit-source-id: 894b7e7899bd59ac87b175cd2767afe5a741487f
2016-06-16 09:43:35 -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
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
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 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
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
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
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
Emil Sjolander 8afcaa36e6 Import latest css-layout
Summary:
Import latest master from css-layout.

This includes the following pull requests:
https://github.com/facebook/css-layout/pull/192
https://github.com/facebook/css-layout/pull/193
https://github.com/facebook/css-layout/pull/195
https://github.com/facebook/css-layout/pull/196

Reviewed By: javache

Differential Revision: D3411535

fbshipit-source-id: 95bee9bd0282f98f6fafa15335b910b644395ad3
2016-06-13 07:58:35 -07:00
Alexander Blom 933e17949b Run init on normal thread priority
Summary:
The default priority for AsyncTask is THREAD_PRIORITY_BACKGROUND which puts the thread in a limited cgroup that can utilize ~10% CPU time. Because the whole TTI depends on this task we should run it on a normal priority.

The priority will be reset for the nest task and this has been true since donut: https://github.com/android/platform_frameworks_base/blob/donut-release/core/java/android/os/AsyncTask.java

Reviewed By: astreet

Differential Revision: D3417232

fbshipit-source-id: e1e35f82b35b31ff7ebf4fc59509ca2df21e2bdd
2016-06-13 05:58:22 -07:00
Guillermo Orellana 87d65847e3 Typo in ReactContext.java
Summary:
Just a tiny typo
Closes https://github.com/facebook/react-native/pull/8066

Differential Revision: D3422819

fbshipit-source-id: f992054e712d081b1cd48c4db0d38cf6517043a7
2016-06-11 16:43:24 -07:00
Jing Chen 31e090c9ab Change loading dialog for JS in Android to use AlertDialog instead
Reviewed By: yungsters

Differential Revision: D3418605

fbshipit-source-id: 202b4872c6636a51c615ad82b444261acf83f396
2016-06-10 12:28:26 -07:00
Sokovikov c03b166854 line break mode for ios
Summary:
What do you think is ```lineBreakMode``` a good name? For android it is called ```ellipsize```.

<img src="https://cloud.githubusercontent.com/assets/1488195/15628555/7372f8d0-250c-11e6-8919-722f28a38d60.png"" width="300" />
Closes https://github.com/facebook/react-native/pull/7819

Differential Revision: D3417256

fbshipit-source-id: 189441a23ff554bf7f6d67fa8510959351e9e5cc
2016-06-10 04:28:37 -07:00
Fabian Eichinger d43e0db81e Add support for reverse flex directions on Android and iOS
Summary:
This PR adds support for both 'row-reverse' and 'column-reverse' for Android and iOS and is based on the changes in #6683 that looked like it's all but abandoned.
It also adds examples for the new directions to the "Layout - Flexbox" section of UIExplorer as well as some rad new colors to the section to make the difference between "row-reverse" and "flex-end" more apparent.

**Test plan (required)**
Tested inside of UIExplorer

Android
<img width="571" alt="screen shot 2016-06-05 at 7 42 14 pm" src="https://cloud.githubusercontent.com/assets/4332237/15807140/cf8e05de-2b55-11e6-9366-a2e3194cabf8.png">

iOS
<img width="578" alt="screen shot 2016-06-05 at 7 41 35 pm" src="https://cloud.githubusercontent.com/assets/4332237/15807143/dee8e9b8-2b55-11e6-8777-c30329fa54e8.png">
Closes https://github.com/facebook/react-native/pull/7938

Differential Revision: D3417182

fbshipit-source-id: e8c9f5976ca95b2d2069a5b31a20f6d6309eb3cc
2016-06-10 03:28:45 -07:00
Dave Miller b457af625a Add custom error reporter in Groups
Differential Revision: D3413351

fbshipit-source-id: 580782aac2966a07a3dbce9e9268392739e4803b
2016-06-09 14:13:27 -07:00
Ovidiu Viorel Iepure 7a635b2cd2 Open sourced CatalystTouchBubblingTestCase test for RN Android
Reviewed By: bestander

Differential Revision: D3411681

fbshipit-source-id: 7b511a0447c61d94cbd43b7983fb3f96c2fcbddf
2016-06-09 11:29:12 -07:00
Ovidiu Viorel Iepure a7e6eea919 Open sourced CatalystSubviewsClippingTestCase test for RN Android
Reviewed By: bestander

Differential Revision: D3411402

fbshipit-source-id: c4f51f0366c30815a3a409ee13b61900d882fcc9
2016-06-09 11:29:12 -07:00
Dave Miller 9bdb63c234 Add ability to dump a Native View Hierarchy
Differential Revision: D3411095

fbshipit-source-id: cc7e26eea63b0146250177c2e1b780ecc03da02f
2016-06-09 10:14:06 -07:00
Andy Street eef03fd552 Fix bug where UIOperations aren't executed after hosting Activity is paused.
Summary:
When we hit the back button and unmount the ReactRootView, we tell JS to unmount the application root node, which causes JS to asynchronously come back and tell the UIManager to drop the corresponding root view.

This issue was that by the time JS gets back to us, we likely will have already paused the UIManager frame callback which means the view unmounting never actually happens: it just gets stuck in the queue.

The solution is to immediately execute batches when they are enqueued when the frame callback isn't running.

Reviewed By: lexs

Differential Revision: D3398958

fbshipit-source-id: 0de81061a97a119be4cb0b12d6f01c1cec8e8171
2016-06-09 08:43:47 -07:00
Olivier Notteghem bb9ed2d24c Fix potential NPE is layout animation deletion code
Reviewed By: dmmiller

Differential Revision: D3403930

fbshipit-source-id: 20067542d06396997719bbe963ce87403fae5ac3
2016-06-08 08:13:32 -07:00
Olivier Notteghem c0ac0d5071 Fix missing check causing layout some animation code to be executed when it shouldn't
Reviewed By: dmmiller

Differential Revision: D3404149

fbshipit-source-id: 8663325fd3a4b9257d84075e22bd9cc59d6414ac
2016-06-08 08:13:32 -07:00
Konstantin Raev 525d35ba67 Reverted commit D3400379
Reviewed By: mhorowitz

Differential Revision: D3400379

fbshipit-source-id: b7e733e74bb0f4fbd597fd073826c399ece2c47f
2016-06-08 02:58:36 -07:00
Kyle Corbitt 7357ccc370 Allow CameraRoll to export videos
Summary:
This PR adds the ability to export videos to the CameraRoll on both Android and iOS (previously only photos were possible, at least on iOS). The API has changed as follows:

```
// old
saveImageWithTag(tag: string): Promise<string>

// new
saveToCameraRoll(tag: string, type?: 'photo' | 'video'): Promise<string>
```

if no `type` parameter is passed, `video` is inferred if the tag ends with ".mov" or ".mp4", otherwise `photo` is assumed.

I've left in the `saveImageWithTag` method for now with a deprecation warning.

**Test plan (required)**

I created the following very simple app to test exporting photos and videos to the CameraRoll, and ran it on both iOS and Android. The functionality works as intended on both platforms.

```js
// index.js

/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 * flow
 */

import React, { Component } from 'react';
import {
  AppRegistry,
  StyleSheet,
  Text,
  View,
  CameraRoll,
} from 'react-native';
import FS fro
Closes https://github.com/facebook/react-native/pull/7988

Differential Revision: D3401251

Pulled By: nicklockwood

fbshipit-source-id: af3fc24e6fa5b84ac377e9173f3709c6f9795f20
2016-06-07 16:43:42 -07:00
Janic Duplessis d4e7c8a055 Properly validate layout animation config
Summary:
The type key for a layout animation config must be supplied otherwise the app crashes (on Android). I added a isRequired check in JS as well as an explicit exception in java otherwise it crashed at a very hard to debug place. The crash happens when passing null to `Animation.setInterpolator` so this makes sure it never happens.

**Test plan (required)**

Tested that the error is caught properly in JS when passing an invalid animation config like

```
LayoutAnimation.configureNext({
  duration: 250,
   update: { type: undefined }, // or LayoutAnimation.Types.easeInEastOut in my case haha :)
});
```

Also tested the java exception.
Closes https://github.com/facebook/react-native/pull/7958

Differential Revision: D3401760

Pulled By: nicklockwood

fbshipit-source-id: 83c019d863c2b2294405b60e87297c562add0f49
2016-06-07 16:28:29 -07:00
Chris Hopman 0e50373b60 Invert native dependency of new bridge -> old bridge
Reviewed By: mhorowitz

Differential Revision: D3400379

fbshipit-source-id: d641846261977b4f77c2d215bef94e8e676e2c02
2016-06-07 16:28:29 -07:00
Chris Hopman 5b871ad9d7 Begin inverting dependency between new+old bridge
Reviewed By: mhorowitz

Differential Revision: D3306510

fbshipit-source-id: 312a498a4461e980f1f749fe7858a13be14dfa2f
2016-06-07 13:28:21 -07:00
Olivier Notteghem 837aafde72 Fix touch handling crash that can when Modal is displayed as a result of touch handling code
Reviewed By: dmmiller

Differential Revision: D3399325

fbshipit-source-id: 0a0bb179ef524bf35cc137d94ea3d5680a68aab2
2016-06-07 11:58:38 -07:00
Alex Kotliarskyi f3fab5184e Remove SourceCode.getScriptText
Summary:
After cleaning up JS SourceMap code, these native methods are not needed anymore.

On iOS it saves another 30+ Mb during development.

Reviewed By: javache, astreet

Differential Revision: D3348975

fbshipit-source-id: a68ae9b00b4dbaa374b421029ae676fc69ae5a75
2016-06-07 11:13:32 -07:00
Siqi Liu a7404713a4 Followup for Intercepting all redboxes in Android Ads Manager
Reviewed By: mkonicek

Differential Revision: D3398979

fbshipit-source-id: 9ea9ba6d45daf01284717a9eb889c16607109683
2016-06-07 10:58:23 -07:00
Siqi Liu 4b19db3159 Remove the Profiler Option in RN Android Dev Menu
Summary:
Remove the "Start/Stop" option in RN Android dev menu.

mkonicek talked to Mike Armstrong who originally added this option and he said Traceview didn't end up being used much and Systrace was the preferred way to do profiling, which is used from the command line.

Haven't removed all the codes behind because there are some codes in JNI, including native methods in C++ through the ReactBridge.

Dev menu before:
{F61306550}

Dev menu after:
{F61306553}

Reviewed By: mkonicek

Differential Revision: D3391092

fbshipit-source-id: c400d8bb3c196afa9ef53cda13476e1fec6c2384
2016-06-07 09:58:22 -07:00
Saurabh Aggarwal 7e7abff55a 4.5 / N [RNFeed] Isolate reusable util methods out of NetworkingModule
Reviewed By: lexs

Differential Revision: D3394808

fbshipit-source-id: 19c916be693377651f2c8e21eb3dd490ec68f74c
2016-06-07 09:43:31 -07:00
Andy Street 49a5fe493e Fix deletion layout animations to work with custom view managers
Summary: D3352450 didn't handle the case where removeClippedSubviews is on and the indices within the parent view don't match the indices JS is working on

Differential Revision: D3398675

fbshipit-source-id: 0a1b9cf41b02f71f6585db92474e4699b944d273
2016-06-07 09:43:31 -07:00
Siqi Liu 4959b21290 Enable Double R shortcut to reload JS when redbox is shown on Android
Summary: Make "double tap R" shortcut enabled when redbox is shown in RN Android, consistent with that in iOS.

Reviewed By: mkonicek

Differential Revision: D3390132

fbshipit-source-id: 48fc40c2ba371a34abcac42a077359d11e907dfc
2016-06-07 06:58:29 -07:00
Konstantin Raev d836e8c0ef Reverted commit D3374937
Reviewed By: mhorowitz

Differential Revision: D3374937

fbshipit-source-id: e794fb9b8cb1194133da64dcb38861477406c307
2016-06-07 02:58:33 -07:00
Sreejumon 7742900931 Fix the WebSocket sendBinary error
Summary:
Fixing the WebSocket SendBinary method error. This is a regression caused during recent change.
Closes https://github.com/facebook/react-native/pull/7956

Differential Revision: D3398065

fbshipit-source-id: 5d56eba807b59d1f3265cba5d5f501d610afebf2
2016-06-07 01:58:24 -07:00
Chris Hopman bf010a4c17 Invert native dependency of new bridge -> old bridge
Reviewed By: mhorowitz

Differential Revision: D3374937

fbshipit-source-id: 58b082bba727e33a3b08361be3630d669fc8dc5b
2016-06-06 16:13:41 -07:00
Dave Miller f3507f99f1 Remove support for password property and only use secureTextEntry
Summary:
Reduce the public surface area of TextInput.  It only exposes a secureTextEntry property, but on Android was also accepting password as a prop.
This removes that.

Reviewed By: javache

Differential Revision: D3392223

fbshipit-source-id: 67c36fbe16fe493e2841d5d9deb78e3be2209ebd
2016-06-06 10:13:28 -07:00
Konstantin Raev 2aad61650e Open sourced more instrumentation tests #1
Reviewed By: avaly

Differential Revision: D3366104

fbshipit-source-id: 1c77b29e28726a6a105317d9f6944bbf78b707d7
2016-06-06 04:28:44 -07:00
Andrei Coman 4acf009284 Pass resource drawable id to constructor directly
Summary:
Instead of passing the helper to each method that uses it, just pass it
to the image constructor.

Reviewed By: dmmiller

Differential Revision: D3364532

fbshipit-source-id: 949bdbf951875c9b8cd05d028a2c329e12d72042
2016-06-06 04:28:43 -07:00
Ricky Reusser c36430a0d6 Hook up Android intent to Linking.js #7079
Summary:
Fixed #7118 by rreusser
Closes https://github.com/facebook/react-native/pull/7940

Differential Revision: D3391586

fbshipit-source-id: f7e572a91347fb0629602374cb6944eabf5b0e8f
2016-06-05 18:58:24 -07:00
tantan e63ea3acc4 add progressListener for android when using FormData to upload files
Summary:
When using FormData upload images or files, in Android version, network module cannot send an event for showing progress.
This PR will solve this issue.
I changed example in XHRExample for Android, you can see uploading progress in warning yellow bar.
Closes https://github.com/facebook/react-native/pull/7256

Differential Revision: D3390087

fbshipit-source-id: 7f3e53c80072fff397afd6f5fe17bf0f2ecd83b2
2016-06-04 08:43:21 -07:00
Siqi Liu 5aa0e098b4 Intercepting all redboxes in Android Ads Manager
Summary:
Implement a handler to allow intercepting all RN redboxes in Android, including exceptions in both JS and Java.

The handler is not open sourced, so there is only an open-source interface called **RedBoxHandler** in //fbandroid/java/com/facebook/catalyst/js/react-native-github/ReactAndroid/src/main/java/com/facebook/react/devsupport//, meantime there is an internal class called **FBRedBoxHandler**, which implements **RedBoxHandler** and is located in //fbandroid/java/com/facebook/fbreact/redboxhandler//, actually handles the exception information.

The code structure is as follows:
  - **AdsManagerActivity** has a member variable of **FBRedBoxHandler**.
  - **AdsManagerActivity** passes this handler all the way down to the **DevSupportManagerImpl**, through** ReactInstanceManager**, **ReactInstanceManagerImpl**, **DevSupportManagerFactory**.
  - **DevSupportManagerImpl** intercepts the exceptions just before showing the redboxes, like this:

              mRedBoxDialog.setExceptionDetails(message, stack);
              mRedBoxDialog.setErrorCookie(errorCookie);
              if (mRedBoxHandler != null) {
                mRedBoxHandler.handleRedbox(message, stack);
              }
              mRedBoxDialog.show();

By now, the internal class just prints information for each redbox to logcat, including exception message and stack trace.

Reviewed By: mkonicek

Differential Revision: D3369064

fbshipit-source-id: 199012c4b6ecf4b3d3aff51a26c9c9901847b6fc
2016-06-03 17:13:23 -07:00
Andrei Coman 5de1151bdd Fix NPE in cancelling network calls
Summary:
Issue reported here
https://github.com/facebook/react-native/issues/7755#issuecomment-222950463

Converting int to Integer explicitly and not cancelling the call more than once
should fix it.

Reviewed By: bestander

Differential Revision: D3371238

fbshipit-source-id: cb00663b4ca19a788bd27b971b6447cc0788a818
2016-06-03 03:13:30 -07:00
Ahmed El-Helw 68c11e55ee Promote grandchildren of certain views are Views
Reviewed By: astreet

Differential Revision: D3161232

fbshipit-source-id: ea313d513bd7567e32f18765d479ba0538f2efbf
2016-06-02 14:13:28 -07:00
Chris Hopman 9a6e61426d Fixes to NativeMap/Array
Reviewed By: mhorowitz

Differential Revision: D3376409

fbshipit-source-id: 4efd1a8567358baf2634008af77f7e743ace849e
2016-06-02 13:43:47 -07:00
Konstantin Raev 75c6bf5723 Open sourced more instrumentation tests
Reviewed By: avaly

Differential Revision: D3373926

fbshipit-source-id: da520b61c5e74d515b853cf1d9548ed3e671aa50
2016-06-02 07:13:38 -07:00
Chris Hopman 886a558f75 Extract all NativeArray/NativeMap from OnLoad.cpp
Summary: These will, eventually, need to be moved to the new bridge and so must become standalone things. For *NativeArray, this is almost just moving them out into their own .h/.cpp files. The *NativeMaps are updated to be hybrids instead of countables (in addition to getting their own .h/.cpp).

Reviewed By: mhorowitz

Differential Revision: D3325169

fbshipit-source-id: 40cfcab92b3fb2310bcd4de8f39e82f85d404abd
2016-06-01 16:28:32 -07:00
Konstantin Raev 88190f7e9d A few instrumentation tests were fixed and are supposed to be more stable
Reviewed By: avaly

Differential Revision: D3354433

fbshipit-source-id: 4e3f00fae94e5cb910e188b0e3fbe204361a4d01
2016-06-01 08:13:27 -07:00
Martin Konicek 4391ef218b Tweak dev menu label: Stop Remote JS Debugging
Summary:
"Stop" is a bit clearer - the debugger is started and stopped, rather than enabled / disabled. Small difference :)

In contrast, live reloading and hot reloading are enabled and disabled.

satya164 pointed it out in [this comment](31eea8eee3 (commitcomment-17682563)) and I agree.

**Test Plan**

Ran the UIExplorer:

<img width="432" alt="screen shot 2016-05-31 at 11 11 28 pm" src="https://cloud.githubusercontent.com/assets/346214/15692439/473c26b6-2786-11e6-969a-d494067cbc3b.png">

On Android the change is kind of obvious :)
Closes https://github.com/facebook/react-native/pull/7861

Differential Revision: D3371207

Pulled By: mkonicek

fbshipit-source-id: 769288f687a98d62cf5c1a22cbc857b7dc4acf00
2016-06-01 04:13:35 -07:00
Siqi Liu 31eea8eee3 Android Dev Menu Options Reorder and Relabel
Summary:
Just rename and rearrange the dev menu options in Android, so as to be consistent with those in iOS.

{F61192593}                          {F61192595}

{F61192594}                          {F61192597}

There are other issues to solve on the inspector and profiling in Android, so I just ignore them for now.

Reviewed By: mkonicek

Differential Revision: D3361415

fbshipit-source-id: ffa823a0c54a27f7918e4e43ecea3c845d2a2f90
2016-05-31 07:58:28 -07:00
Emil Sjolander c2c370c886 import css-layout-185
Reviewed By: lucasr

Differential Revision: D3312496

fbshipit-source-id: 259b6db2fc0166696eb171dc6e2974c81ec2133f
2016-05-31 04:13:32 -07:00
Andrei Coman 7914d3334d Correctly cancel network calls in catalyst instance destroy
Reviewed By: bestander

Differential Revision: D3358458

fbshipit-source-id: 69ee83ba33b02d21310030a457c6378f67e168f9
2016-05-30 05:58:23 -07:00
Chris Hopman 5e8f1716fc Build new bridge with gradle
Reviewed By: bestander

Differential Revision: D3324351

fbshipit-source-id: 41fa18a23c8661440a7deff244c93278f418e1d9
2016-05-27 16:13:37 -07:00
Siqi Liu 60e0d2c676 Make "Debug JS" dev menu option persist across app restarts on RN Android
Summary:
1. Make "Remote JS Debug" and "Start/Stop Profile" options persist across app restarts.
2. Check and confirm:
       - All options in the Android dev menu are persisted now.
       - The behavior is the same on Android and iOS now.

Reviewed By: mkonicek

Differential Revision: D3340097

fbshipit-source-id: 4087b6605031c650e164282244cedb006f8f6fd3
2016-05-27 09:58:27 -07:00
Siqi Liu 26d3af3421 Redbox: skip column number if it is 0 in Android.
Summary:
As for symbolicated stack trace in the red box in Android, make column number not shown if it's zero.

Format Before:
{F61180667}

Format After:
{F61180666}

Reviewed By: mkonicek

Differential Revision: D3358317

fbshipit-source-id: 87981e678e22ab9f483727002175c8835941ceee
2016-05-27 07:58:22 -07:00
Aaron Chiu c82856fb7a unbreak RN startup
Reviewed By: lexs

Differential Revision: D3352709

fbshipit-source-id: 56cdec2dee46ab1f011bed9aadd14ea464ec4163
2016-05-27 05:13:23 -07:00
Dave Miller a0562c7ccf Fix Modal when the Activity is paused or resumed
Summary:
When the activity hosting a Modal goes away, we should dismiss the dialog from the stack and then reconstitute it when the activity comes back.  This means that if an activity is paused because another activity is placed on top of it but our ui operation was delayed, it will not blow up finding no window since it is gone.

Also fixes a place where we should remove a listener for lifecycle events which we were not doing.

Reviewed By: halfjuice

Differential Revision: D3357286

fbshipit-source-id: c5c6dd8e5ef299762ed9aa15a6910ce9c0b111dc
2016-05-26 20:13:33 -07:00
Janic Duplessis 26e8426248 Cross platform ActivityIndicator
Summary:
The API for `ActivityIndiatorIOS` and `ProgressBarAndroid` is very similar and can be merged in a cross platform component that displays a circular indeterminate loading indicator.

This deprecates `ActivityIndiatorIOS` and non-horizontal `ProgressBarAndroid` in favor of this new component.

**Test plan (required)**

Tested with the ActivityIndicator example in UIExplorer on android and ios. Also made sure that `ActivityIndicatorIOS` still works and displays a deprecation warning. Also tested that `ProgressBarAndroid` with `indeterminate == true` and `styleAttr != 'Horizontal'` displays a deprecation warning.
Closes https://github.com/facebook/react-native/pull/6897

Differential Revision: D3351607

Pulled By: dmmiller

fbshipit-source-id: b107ce99d966359003e8b3118cd97b90fa1d3d7d
2016-05-26 13:58:17 -07:00
Konstantin Raev 7ca8e0e8b1 Stabilized TestIdTestApp integration test
Summary:
- TestIdTestModule instrumentation tests is responsible for too many occasional crashes, e.g. https://circleci.com/gh/facebook/react-native/7054.
This should fix the problem (will monitor over next week)

- Made file naming more consistent

- 5 retries don't make e2e tests more stable, reduced back to 3 but I need to investigate how to make it more reliable
Closes https://github.com/facebook/react-native/pull/7784

Differential Revision: D3354444

fbshipit-source-id: d058362edbec09522a4828998e01988a82a74487
2016-05-26 13:43:29 -07:00
Charles Dick f948662013 Drop JSC code on background
Reviewed By: lexs

Differential Revision: D3311037

fbshipit-source-id: e46559108c51f1cd163ed5c557d23c21f696ef88
2016-05-26 11:13:42 -07:00
Emil Sjolander 0bbfe79623 Set a size of the root view before running test
Reviewed By: astreet

Differential Revision: D3352500

fbshipit-source-id: e6bb81601448a08fa216865b5b92f8739646fc05
2016-05-26 06:58:24 -07:00
Alexander Blom 45636ed7f4 Add more tracing to startup
Reviewed By: astreet

Differential Revision: D3352462

fbshipit-source-id: 9f10bb40eef9a262ae3ea6f8b2cd27b5774fc4da
2016-05-26 06:28:25 -07:00
Janic Duplessis 0fb5ccf6af Add support for delete animation in LayoutAnimation on Android
Summary:
Android follow up to #6779

**Test plan**
Tested add/removing views in the UIExample explorer with and without setting a LayoutAnimation. Tested that user interation during the animation is properly disabled.

![layout-anim-2](https://cloud.githubusercontent.com/assets/2677334/14760549/d60ebe2a-0914-11e6-8f17-ea04d8bf813b.gif)
Closes https://github.com/facebook/react-native/pull/7171

Differential Revision: D3352450

Pulled By: astreet

fbshipit-source-id: 233efa041626eb26d99511d12a924e54a10f96cc
2016-05-26 05:28:26 -07:00
Chris Hopman 3b3b46d86e Move new bridge java stuff to OSS
Reviewed By: mhorowitz

Differential Revision: D3300152

fbshipit-source-id: 9a76b10579bbfc5bde3a5094b99b64c38f4c1da9
2016-05-25 17:58:43 -07:00
Olivier Notteghem 80741a170a Prevent race condition leading to deadlock when destroying activity w/ catalyst instance.
Reviewed By: astreet

Differential Revision: D3345567

fbshipit-source-id: 8ac550456c99549a6c4bc2d2cdb19334f9e85c71
2016-05-25 11:13:19 -07:00
Chris Hopman a8acf8a5ce Move cxx module support into oss
Reviewed By: mhorowitz

Differential Revision: D3319751

fbshipit-source-id: 87f91a541cfbbe45bd8561d94f269ba976a9f702
2016-05-24 19:28:59 -07:00
Ahmed El-Helw caa2baee9d Fix leak in Nodes due to removeClippedSubviews
Reviewed By: astreet

Differential Revision: D3337513

fbshipit-source-id: b7b798f024488cd19cdcf93aee7f99eed512dd6a
2016-05-24 14:58:23 -07:00
Andrei Coman 1926fdf156 Inline images package name fix
Summary: Renaming package name from textfrescosupport to text.frescosupport

Reviewed By: dmmiller

Differential Revision: D3340363

fbshipit-source-id: 6c73d9e05751ccba299489fbc13447dc85a9c0df
2016-05-24 12:43:30 -07:00
Janic Duplessis a71a9efe96 Remove deprecated PullToRefreshViewAndroid and onRefreshStart / endRefreshing
Summary:
Removes the deprecated APIs that were replaced by `RefreshControl`. Those API have been deprecated for a while already so I think it's fine to remove them at this point. Also ported the `SwipeRefreshLayoutTestModule` test to use `RefreshControl` instead of `PullToRefreshViewAndroid`.

**Test plan (required)**

Made sure no references are left in the codebase to `PullToRefreshViewAndroid`, `onRefreshStart` and `endRefreshing`.
Tested that `ScrollView` examples in UIExplorer still work properly.
Check that the `SwipeRefreshLayoutTestModule` passes on CI.
Closes https://github.com/facebook/react-native/pull/7447

Reviewed By: mkonicek

Differential Revision: D3292391

Pulled By: bestander

fbshipit-source-id: 27eb2443861e04a9f7319586ce2ada381b714d47
2016-05-24 03:28:25 -07:00
Emil Sjolander 1767a0a828 Correctly implement measure callback with measure modes
Reviewed By: astreet

Differential Revision: D3330139

fbshipit-source-id: 2ea6e4b463817e9ccc5f2d9395736f68f8d972e4
2016-05-23 10:28:34 -07:00
Marc Horowitz f7c4ed8926 Fix chrome debugging on android
Summary:
Java loadApplicationScript changed, but the C++ code in the
debug ProxyExecutor which called it did not.  This fixes the fbjni
method lookup.

fixes #7659

Reviewed By: AaaChiuuu

Differential Revision: D3331472

fbshipit-source-id: 33312dccc3c7687f51742e42f9e0397f9c925e76
2016-05-23 09:43:23 -07:00
Alexander Blom 81e4b4202a Don't block waiting for UI thread to be ready
Reviewed By: astreet

Differential Revision: D3323227

fbshipit-source-id: bc8a815f9dca43c8c1adebc7b2554f931f135f33
2016-05-23 09:28:21 -07:00
Janic Duplessis bb5aede6e3 Fix RefreshControl race condition
Summary:
Improved version of #7317.

`setRefreshing` and `setProgressViewOffset` needs to be called after the view has been layed out. Instead of using `post` to do that we update the `refreshing` and `progressViewOffset` values in the first call to `onLayout`.

I also noticed that `progressViewOffset` default value wasn't exactly the same as when not calling `setProgressViewOffset` at all. Tweaked the values to match android defaults.

**Test plan (required)**
Make sure the integration test passes,
In UIExplorer: test RefreshControl with `refreshing = true` initially, test `progressViewOffset`.
Closes https://github.com/facebook/react-native/pull/7683

Differential Revision: D3334426

fbshipit-source-id: ddd63a5e9a6afe2b8b7fe6a25e875a40f4e888c6
2016-05-23 05:43:25 -07:00
Konstantin Raev 4378ecb8e1 Fixes NPE when NetworkingModule runs onCatalystInstanceDestroy
Reviewed By: andreicoman11

Differential Revision: D3328278

fbshipit-source-id: 7cf43a4564b2b799b13307f8604eb48e5c512379
2016-05-23 04:44:11 -07:00
Corné Dorrestijn c1558bc7db Add Image#getSize for Android
Summary:
I've implemented the getSize method on Image for Android.

**Test plan (required)**

The result in the UIExample app can be seen here:

![android-getsize](https://cloud.githubusercontent.com/assets/570297/15442613/a29c9178-1ee2-11e6-97df-adc20aad0c32.jpg)
Closes https://github.com/facebook/react-native/pull/7664

Differential Revision: D3331704

fbshipit-source-id: d784c861cbc653cd6b49310f4b5516c6583486ca
2016-05-20 18:43:38 -07:00
Hugo Agbonon bc634ea350 More helpful error message when react-native start is forgotten
Summary:
Developing with react-native on Linux, I found myself facing this message:

![chpao3jwuaehr_p jpg large](https://cloud.githubusercontent.com/assets/1598317/15032665/ae90ee88-1263-11e6-9acd-3fe261c08c28.jpeg)

The problem is actually quite simple: I hadn't used `react-native start` before starting `react-native run-android`, which caused this error, both on an emulator and a real Android device. As the message is currently unhelpful, but can be shown because of a simple mistake, I updated it.

~~Additionally, I clarified the fact that `react-native start` is still necessary on Linux, updating a title on the Linux and Windows Support documentation page.~~
Closes https://github.com/facebook/react-native/pull/7396

Differential Revision: D3305078

fbshipit-source-id: 2d87e02ff2ad15d8239fbcc0ada4a4e67b982e94
2016-05-20 09:13:27 -07:00
Alexander Blom d6c2f5f3f1 Don't find module methods until needed
Reviewed By: astreet

Differential Revision: D3322974

fbshipit-source-id: 4cb47cc2ebdffd77b62c5d54e65574d44eba286e
2016-05-20 07:28:26 -07:00
Chris Hopman 830197847a Move more new bridge code into OSS
Reviewed By: mhorowitz

Differential Revision: D3296231

fbshipit-source-id: 5a05b1ddacdfecda067a08398dd5652df76c1f14
2016-05-19 18:58:53 -07:00
Konstantin Raev 921d0de2e8 Fixes NetowrkingModule construction with interceptors
Reviewed By: andreicoman11

Differential Revision: D3316229

fbshipit-source-id: 0dc5cce68b6649ebd2ff44c313ab94a0f5a06f66
2016-05-18 04:58:20 -07:00
Marc Horowitz 8199893574 Remove script argument to proxy loadApplicationScript
Summary:
The JSCExecutor API gets passed script data and a URL, but
the proxy's purpose in life is to load from the network, so the script
data is useless.  The code was failing to handle null script data, so
rather than just passing nullptr all the time, I removed the argument.
if there's a use case in the future for it, we can put it back.

Reviewed By: steveluscher

Differential Revision: D3312467

fbshipit-source-id: 986c48f1ef3c24e6b5569046ccb08d7864cdcd3d
2016-05-17 14:28:29 -07:00
Andrew Jack 6bbaff2944 Upgrade to OkHttp3
Summary:
Update to [OkHttp](https://github.com/square/okhttp) to [OkHttp3](https://publicobject.com/2015/12/12/com-squareup-okhttp3/)

We must also update:
- Fresco to 0.10.0
- okio to 1.8.0

**Motivation**
Reasons for upgrading:
* Issue #4021
* "We discovered that RN Android sometimes fails to connect to the latest stable version of NGINX when HTTP/2 is enabled. We aren't seeing errors with other HTTP clients so we think it's specific to RN and OkHttp. Square has fixed several HTTP/2 bugs over the past eight months." - ide
* OkHttp3 will be maintained & improved, but OkHttp2 will only receive [security fixes](https://publicobject.com/2016/02/11/okhttp-certificate-pinning-vulnerability/)
* Cleaner APIs - "Get and Set prefixes are avoided"
* Deprecated/Removed - HttpURLConnection & Apache HTTP
* React Native apps are currently being forced to bundle two versions of OkHttp (v2 & v3), if another library uses v3
* Improved WebSocket performance - [CHANGELOG.md](https://github.com/square/okhttp/blob/master
Closes https://github.com/facebook/react-native/pull/6113

Reviewed By: andreicoman11, lexs

Differential Revision: D3292375

Pulled By: bestander

fbshipit-source-id: 7c7043eaa2ea63f95854108b401c4066098d67f7
2016-05-17 12:43:39 -07:00
Alexander Blom 7446d42d33 Delete jsc-internal
Reviewed By: dcaspi

Differential Revision: D3304892

fbshipit-source-id: fd7ac66c81c93785c3c7887a107c8f1df222aefa
2016-05-17 11:28:34 -07:00
Tobias Ritzau ee77e50c4a Collapse native/{fb,jni,xplatinit} into one DSO
Reviewed By: dcolascione

Differential Revision: D3201488

fbshipit-source-id: 0cf965ee16e360329285d834a4c575d8f1061f15
2016-05-16 22:58:39 -07:00
Yu Zheng(Sam) 67d9a7bae9 Mark SupportAlertFragment and AlertFragment as Public to fix crash is…
Summary:
Hi,
This changelist is for fixing a crash issue on Android devices. For detail please see, https://github.com/facebook/react-native/issues/7080

In short, the crash occurred when a RN app with a Alert dialog shown at front switches back after it is destroyed at background due to lack of phone memory.

My fix is to let those Alert fragment classes accessible from android.support.v4.app.Fragment instantiate() function, so that it won't crash. And since other UI will be reloaded whatever, mListener is set to null to avoid any callback happen.
Closes https://github.com/facebook/react-native/pull/7105

Differential Revision: D3212435

Pulled By: mkonicek

fbshipit-source-id: d900a33a4f0fd49258be94c277def55555ec8d73
2016-05-16 12:58:30 -07:00
Janic Duplessis aac7f5b362 Fix tests buck build when running locally
Summary:
Got this error when trying to run instrumentation tests locally with `./scripts/run-android-local-integration-test.sh`

```
C:\Users\janic\Developer\react-native\ReactAndroid\src\androidTest\java\com\facebook\react\tests\DatePickerDialogTestCase.java:110: error: cannot access com.facebook.react.modules.core.DefaultHardwareBackBtnHandler
    return (DialogFragment) getActivity().getSupportFragmentManager()
                                         ^
  class file for com.facebook.react.modules.core.DefaultHardwareBackBtnHandler not found
C:\Users\janic\Developer\react-native\ReactAndroid\src\androidTest\java\com\facebook\react\tests\ViewRenderingTestCase.java:82: error: cannot access com.facebook.react.touch.ReactInterceptingViewGroup
    assertEquals("Incorrect (or not applied) opacity", expectedOpacity, view.getAlpha());
                                                                            ^
  class file for com.facebook.react.touch.ReactInterceptingViewGroup not found
C:\Users\janic\Developer
Closes https://github.com/facebook/react-native/pull/7575

Differential Revision: D3306330

fbshipit-source-id: a6d8afd060b54d56f9e2b97f45b642d7b7f46209
2016-05-16 12:28:40 -07:00
Martin Konicek 10429b5822 Test that Picker selection is updated correctly
Summary:
A React pull request broke the Picker: https://github.com/facebook/react/pull/6572
This pull request adds a test so that we prevent breakages like this in the future.

`PickerAndroidExample` in the UIExplorer before the breakage (video): https://vid.me/h5Rg
`PickerAndroidExample` in the UIExplorer after the breakage (video): https://vid.me/atFc

**Test plan**

`./scripts/run-android-local-integration-test.sh`

The test is failing, we can only merge this once React is fixed.

<img width="837" alt="screen shot 2016-05-04 at 5 13 31 pm" src="https://cloud.githubusercontent.com/assets/346214/15020827/aca8d718-121b-11e6-91f6-a338293d7d92.png">
Closes https://github.com/facebook/react-native/pull/7390

Differential Revision: D3305223

Pulled By: mkonicek

fbshipit-source-id: 89137812940c578efff3e76864ab7cadccc9f2ea
2016-05-16 09:13:28 -07:00
Dave Miller ccef1b2941 More touch logging
Reviewed By: andreicoman11

Differential Revision: D3298518

fbshipit-source-id: 0ddbba5c05848ac164f6f1562b26609924978169
2016-05-16 02:58:21 -07:00
Nathan Spaun b67d4a20d7 Add FpsListener to React Scroll Views
Summary:
We want to give people the ability to log scroll performance (including Fb).
This adds an interface that can be enabled and disabled from the react scroll views.
This is a prerequisite to implementing the actual framerate logger that will log dropped
frames while scrolling in prod.

Reviewed By: astreet

Differential Revision: D3283588

fbshipit-source-id: ed9736cb9ed3f441511647f36b1460092bd91e56
2016-05-13 11:28:21 -07:00
Olivier Notteghem fd376660df Fix race condition when clicks are received on react root view and react context is pending
Reviewed By: astreet

Differential Revision: D3297574

fbshipit-source-id: 27ac81342d19947e9425a845d7ef7c73cc4cf090
2016-05-13 09:43:22 -07:00
Dave Miller e491f7d5c6 Reverted commit D3292369
Reviewed By: andreicoman11

Differential Revision: D3292369

fbshipit-source-id: 1a41d845ff46c44544f37d85e8154557a979a4ff
2016-05-13 04:28:27 -07:00
Konstantin Raev 2c3ca4c058 Open sourced 4 more instrumentation tests for RN Android
Summary:
More instrumentation tests in OSS means less work for FB engineers to investigate if a PR breaks some internal tests.

+ increased timeouts and retries for OSS tests runner

Reviewed By: andreicoman11

Differential Revision: D3292582

fbshipit-source-id: 3f8aa4d3536450ea3af7acff044b9bb62be0f9db
2016-05-12 10:52:30 -07:00
Dave Miller 31c8b3bd61 Add some defensive loggin in Android touch handling
Reviewed By: andreicoman11

Differential Revision: D3292369

fbshipit-source-id: 43315f7d8e81f1a0ec238c08c3cb689e6648fd0b
2016-05-12 10:01:21 -07:00
Dave Miller f2c1868b56 Update the timestamp we send in touch events to be the more accurate timestamp we use
Summary: Use the more accurate timestamp that we have computed for the touch event rather than the event timestamp that Android provides.

Reviewed By: andreicoman11

Differential Revision: D3292705

fbshipit-source-id: dad082ab74406d391481d16cdac19629751aa1eb
2016-05-12 09:40:26 -07:00
Michał Gregorczyk cd691e2cc2 Let jsc know it will run web worker
Reviewed By: astreet

Differential Revision: D3287543

fbshipit-source-id: 2a9de938feec417aef34c0ff26f138730b32929f
2016-05-12 08:13:21 -07:00
Konstantin Raev 428c563c75 Revert "Fix RefreshControl race condition"
Summary:
This reverts commit 8fbce3099d.
Reverts https://github.com/facebook/react-native/pull/7317 because it breaks instrumentation tests https://circleci.com/gh/facebook/react-native/6521
Closes https://github.com/facebook/react-native/pull/7529

Differential Revision: D3292461

fbshipit-source-id: 7dcde05adefe41e6b3c28697fccfa232a45f0742
2016-05-12 04:50:25 -07:00
Konstantin Raev 9b56ff6bab Open sourced ProgressBarTest
Reviewed By: andreicoman11

Differential Revision: D3287396

fbshipit-source-id: 1a814b72ebcb5d13106c6a612b341f217c4dc5a6
2016-05-12 04:07:08 -07:00
Sakari Tuominen 85d2086321 Fix a bug, if clipData is null we can not ask getItemCount() from it
Summary:
I ran into problems when using Clipboard.getString() in Android. The method seems to work fine when there is *something* in the clipboard, but when it's empty the app crashes. I think I've tracked down the bug to ClipboardModule.java@58.

When clipData is null, the promise is resolved with an empty string. However, after that the rest of the block is executed. There should be a return or an 'else if' like in my pr.

Screenshot of the error message when clipboard is empty:

![image](https://cloud.githubusercontent.com/assets/7509183/15206922/44bd2094-182b-11e6-9400-6a59c513de24.png)
Closes https://github.com/facebook/react-native/pull/7527

Differential Revision: D3292232

fbshipit-source-id: d2191286c49ee31233203fab4648449964b9d950
2016-05-12 01:45:21 -07:00
Janic Duplessis 8fbce3099d Fix RefreshControl race condition
Summary:
There was a race condition with `SwipeRefreshLayout` that cause the `RefreshControl` to keep refreshing when it shouldn't.

It was caused because we have to use `post` to set the refreshing state otherwise it doesn't work when setting `refreshing=true` on initial mount. What happened is that `post` doesn't guarantee the order the runnables will be called so calling post with `refreshing=true` followed by `refreshing=false` caused the `resfreshing=false` runnable to be called before the `resfreshing=true` one. This made it stay in refreshing state when it should not.

```
D/test    ( 6171): setRefreshing true
W/ReactNativeJS( 6171): false
D/test    ( 6171): setRefreshing false
D/test    ( 6171): setRefreshing post false
D/test    ( 6171): setRefreshing post true
```

This change adds an instance variable and uses it in the `post` runnable to make sure the last set value is always used.

**Test plan (required)**
Tested that it fixed the issue in the [original issue app](https://github.com/digisqu
Closes https://github.com/facebook/react-native/pull/7317

Differential Revision: D3290464

Pulled By: andreicoman11

fbshipit-source-id: 15cabcfc6d2f191443be96e8845b924ce66c369f
2016-05-11 17:16:23 -07:00
Kevin Johnson 31250ad150 Ability to disable/lock the android ViewPager scroll from props
Summary:
This is a nice feature to have.

I've tested this by copying and renaming the ViewPager java and javascript files from the react-native repo and including them in a project. Whats the best way to test this directly from the repo?
Closes https://github.com/facebook/react-native/pull/5968

Differential Revision: D3240651

Pulled By: mkonicek

fbshipit-source-id: 5f1d157216df4f3314915496188a92aec1b85e91
2016-05-11 16:51:17 -07:00
Alexander Blom 0934470676 Remove JS config completely
Reviewed By: astreet

Differential Revision: D3276230

fbshipit-source-id: b3ab7e7dc149696b7db1049613fbb6a2a19bc8fb
2016-05-11 11:39:20 -07:00
Olivier Notteghem 68b2f49a31 Improves react image loading handlers to mimic iOS behavior
Reviewed By: vjeux

Differential Revision: D3283011

fbshipit-source-id: acb04f8b2ccbab99a59040a7ca70aa46cbf73faa
2016-05-10 14:17:27 -07:00
Andy Street f1d12f6b38 Make runJSBundle synchronous
Summary: This is called on the JS thread so we don't need to post a runnable.

Reviewed By: lexs

Differential Revision: D3281388

fbshipit-source-id: ff292a710442c0b84c6ee31a2644a5c2ea650dc9
2016-05-10 09:21:24 -07:00
Andy Street 1c31aea83f Update "This shouldn't be possible. Congratulations." error message
Summary: Apparently this *is* possible. Congratulations to me.

Reviewed By: nicklockwood

Differential Revision: D3281361

fbshipit-source-id: 53c6ab83d959aa8a77880f4f772a7a7d7ccf4950
2016-05-10 09:17:23 -07:00
Konstantin Raev 4c3286f2a2 Made UIManager set displayContstants
Reviewed By: andreicoman11

Differential Revision: D3281309

fbshipit-source-id: f5568f2127e7e26dcbd77b3845092346ac06c0db
2016-05-10 08:34:31 -07:00
Martin Konicek 128d93b8aa Revert Android websocket: Include cookies with request
Summary:
This reverts the commit bf8b5499bb
Pull request: https://github.com/facebook/react-native/pull/6851
Internal Phabricator revision: D3257466

See the pull request for discussion.

Reviewed By: bestander

Differential Revision: D3277433

fbshipit-source-id: 623f93e1bce47ac156ffab154c57495b85ffa936
2016-05-09 13:37:29 -07:00
Nikhilesh Sigatapu d4f6f61a96 Increase the stack size for the React queue on older Android phones
Summary:
Older Android devices don't have a large stack by default and with about 16 levels of views the app will crash. Modern Android devices are fine so we can continue to use the system defaults while using a 2MB stack on older Android devices.
Closes https://github.com/facebook/react-native/pull/7416

Differential Revision: D3276805

Pulled By: astreet

fbshipit-source-id: a7b31a1be62e13f333148ca0908eb01a11aa4562
2016-05-09 11:48:23 -07:00
Jesse Sessler 191d278fda Modal Status Bar Translucent
Summary:
Currently the Modal component on Android is rendered below the Status Bar, which changes it's color to grey, and in the UIExplorer example the backdrop is just formatted to look the same color. In some scenarios users may want to preserve the color of their status bar and make it look as though the modal is appearing on top. This PR allows for that.

This GIF shows current behavior and new behavior with the translucentStatusBar prop set to true.

![](http://g.recordit.co/BSX5g9obRC.gif)

I've updated the UIExplorer app to demonstrate and the docs as shown below

![image](https://cloud.githubusercontent.com/assets/4265163/14742854/500e1292-086c-11e6-9275-71808b0cbed7.png)

Thanks!
Closes https://github.com/facebook/react-native/pull/7157

Differential Revision: D3264497

Pulled By: dmmiller

fb-gh-sync-id: 61346d99414d331d3420f44a4c5f6341b0973be6
fbshipit-source-id: 61346d99414d331d3420f44a4c5f6341b0973be6
2016-05-09 07:08:22 -07:00
Andy Street 54f7ae1c02 Force react applications to be explicitly unmounted
Summary:
We previously were unmounting the react application unconditionally when the ReactRootView#onDetachedFromWindow. This is nice in that it automatically allows us to reclaim memory, but there are many scenarios where a ReactRootView can be embedded in another piece of UI that detaches its children as part of its normal function (e.g. ListView, RecyclerView, ViewPager, etc).

As such, we will now enforce that the hosting Activity/Fragment/??? explicitly calls unmountReactApplication in the same way it calls startReactApplication. For Applications extending ReactActivity/AbstractReactActivity, this will happen automatically in onDestroy.

Reviewed By: foghina

Differential Revision: D3265161

fb-gh-sync-id: 4d49b0c41256213f00874f57e784aa8741dbf394
fbshipit-source-id: 4d49b0c41256213f00874f57e784aa8741dbf394
2016-05-09 04:09:29 -07:00
UnoDeTantos f7ce0c1c2f Adds progressViewOffset to RefreshControl
Summary:
Add the possibility to define a progress view top offset to RefreshControl on android. As i comment in #6740, contentInset does the trick on IOS.

Looking android documentation seems that exists a possible solution:
http://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html#setProgressViewOffset(boolean, int, int)

This pull request implement that but keeping it simple, only a top offset.

For example, now we could put navigation bar over the scrollview (or listview) and define a progressViewOffset on RefreshView in order to start behind the navigation. At this point we could make some kind of coordinator layout to hide/show navigation on scroll.

To maintain the default behavior, start point is equal to start point minus progress circle diameter in order to create that progress circle before the start point.
Closes https://github.com/facebook/react-native/pull/6759

Differential Revision: D3240664

Pulled By: mkonicek

fb-gh-sync-id: ccf866272e871811c1c6dcc2a34f5c217967feee
fbshipit-source-id: ccf866272e871811c1c6dcc2a34f5c217967feee
2016-05-09 01:51:22 -07:00
Sokovikov ff431734a4 Revert "Revert "fix border style without borderRadius""
Summary: Closes https://github.com/facebook/react-native/pull/7389

Differential Revision: D3269828

Pulled By: mkonicek

fb-gh-sync-id: 896789fcc76953a035cf8701d3a90211b92b6b80
fbshipit-source-id: 896789fcc76953a035cf8701d3a90211b92b6b80
2016-05-06 09:23:22 -07:00