Commit Graph

49 Commits

Author SHA1 Message Date
Denis Koroskin
aeda31428d When addRootView() is called in a background thread, execute it as a generic UIOperation command in UIViewOperationQueue
Summary: public There is really no reason NativeViewHierarchyManager.addRootView() should be performed synchroniously when called from background thread, as long as it is executed before every other command in UIViewOperationQueue, and we can ensure that by putting add view command at the front of the queue. When that happpens, the queue should always be empty anyway, but it's best to be safe.

This eliminates an unnecessary blocking call and should overall make the code simpler and safer (Semaphores can timeout).

Reviewed By: astreet

Differential Revision: D2462680

fb-gh-sync-id: 784ac6573a455019b93628c70992f3830b9d6f1f
2015-11-25 22:15:32 -08:00
Denis Koroskin
16350ae09b Remove AnimationRegistry from UIManageModule
Summary: public UIManageModule creates AnimationRegistry but never uses it, this diff moves it to NativeViewHierarchyManager who owns it. UIViewOperationQueue depends on AnimationRegistry to perform some of the enqueued operations, so it accessed it through a getting in NativeViewHierarchyManager. This will also make sure NativeViewHierarchyManager. and UIViewOperationQueue operate on the same AnimationManager (previously, that wasn't really enforced). This is needed so I can move away UIViewOperationQueue creation off the UIManagerModule. This diff should have no functional changes whatsoever.

Reviewed By: astreet

Differential Revision: D2462605

fb-gh-sync-id: 1e3cd64908f51126362f2b5fb39b1efa6521854e
2015-11-25 22:15:26 -08:00
Andy Street
ca016e4eb3 Add perf markers for cold start
Summary: public

Adds useful systrace perf markers for cold start analysis

Reviewed By: mikearmstrong001

Differential Revision: D2695629

fb-gh-sync-id: d964f28a1f3e10a13c441a17b0300c980d4914e8
2015-11-25 05:58:31 -08:00
Pieter De Baets
38db6fa465 Remove scrollview support from UIManager, remove mainScrollView(delegate)
Reviewed By: nicklockwood

Differential Revision: D2692749

fb-gh-sync-id: 48975d2f09f3b2902dfa2e56ff9d34257b2395bc
2015-11-25 04:12:34 -08:00
Alexander Blom
2b22d22a83 Clear static arg arrays after use
Reviewed By: astreet

Differential Revision: D2690812

fb-gh-sync-id: b00291c57e294eece5772531e9f16e0c60b8b8f4
2015-11-24 10:58:45 -08:00
Denis Koroskin
ac0134322f Remove UIManagerModule dependency in UIViewOperationQueue
Reviewed By: astreet

Differential Revision: D2463226

fb-gh-sync-id: eafc876ca750a08406917d8bbbfe87c27a4649fd
2015-11-23 14:29:31 -08:00
Dave Miller
0c2ee5d480 Update Android Touch events
Summary: public

This moves Android touch events to parity with iOS.  The locationX,Y value passed to js now is view relative to the view that is handling the touch.
The pageX,Y is now relative to the root view.

Reviewed By: andreicoman11

Differential Revision: D2670028

fb-gh-sync-id: 5438640d6c78633629b9a308a59cc306bb07815e
2015-11-23 09:30:37 -08:00
Krzysztof Magiera
205a35ad37 View recycling in JS.
Summary: public
Native view recycling implementation based on limited pools of views.

In this diff I introduced new UIManager method: dropViews. Instead of removing views from tag->view maps when they are detached we keep them there until we get a call to dropViews with the appropriate tag. JS may keep a pool of object and selectively decide not to enqueue drop for certain views. Then instead of removing those views it may decide to reuse tag that has been previously allocated for a view that is no longer in use.

Special handling is required for layout-only nodes as they only can transition from layout-only to non-layout-only (reverse transition hasn't been implemented). Because of that we'd loose benefits of view flattening if we decide to recycle existing non-layout-only view as a layout-only one.

This diff provides only a simple and manual method for configuring pools by calling `ReactNativeViewPool.configure` with a dict from native view name to the view count. Note that we may not want recycle all the views (e.g. when we render mapview we don't want to keep it in memory after it's detached)

Reviewed By: davidaurelio

Differential Revision: D2677289

fb-gh-sync-id: 29f44ce5b01db3ec353522af051b6a50924614a2
2015-11-20 08:11:36 -08:00
Krzysztof Magiera
0c8850f3a7 Only send layout update operation to nativehierarchymanager when layout actually changes.
Reviewed By: andreicoman11

Differential Revision: D2679408

fb-gh-sync-id: 7f0a972e9e12f70402e2d285edef458a61ca1c39
2015-11-20 08:04:29 -08:00
Mike Armstrong
2a9a5fc9e8 css layout systrace markers
Reviewed By: astreet

Differential Revision: D2668741

fb-gh-sync-id: 043ff740f8cc7c687a79c50c933db99ed67b60e4
2015-11-19 06:52:27 -08:00
Krzysztof Magiera
9e670a64fc Fix resetting margins and borders on android.
Summary: public

Instead of using 0 as a default we should use UNDEFINED values. That is because setting 0 for left border in case when the property was deleted will interfere with horizontal border (or margin) value. Setting UNDEFINED makes CSSLayout nodes behave correctly in that case.

Reviewed By: andreicoman11

Differential Revision: D2668669

fb-gh-sync-id: 61ce62081583fc39864268333ac8c1409c276cad
2015-11-18 08:41:28 -08:00
Andrei Coman
32c19c1994 Fix setting js responder for null react view for tag
Reviewed By: kmagiera

Differential Revision: D2637015

fb-gh-sync-id: 03af870cee82519ed34a4bbbcbd2c72146fcf00f
2015-11-18 04:28:27 -08:00
Felix Oghină
8491b579c8 fix inspecting text elements
Differential Revision: D2663651

fb-gh-sync-id: 2b583fecf5fa7a88f071a7441d03b95d21b8620f
2015-11-17 07:58:26 -08:00
Krzysztof Magiera
337dc7e093 Cleanup mNativeChildren on react node cleanup.
Differential Revision: D2663443

fb-gh-sync-id: 7e6e7212103b738f6b6f535e54cc8b86e5def685
2015-11-17 05:47:25 -08:00
Krzysztof Magiera
bd1885b5d4 Cleanup native view hierarchy when view is dropped.
Differential Revision: D2659738

fb-gh-sync-id: 1c14b8c3c6fabbd0e580777bb94221df6dd98f71
2015-11-17 02:06:28 -08:00
Krzysztof Magiera
c6532a94a6 Fix default values for translateX/Y props.
Reviewed By: andreicoman11

Differential Revision: D2631186

fb-gh-sync-id: 8f898b11be31b253780474d1cf328d7d109decbb
2015-11-09 07:55:27 -08:00
Dmitry Gladkov
b12117a038 Fix View translations in Android
Summary: Fixes regression in bf59864

Closes #3773
Closes https://github.com/facebook/react-native/pull/3954

Reviewed By: svcscm

Differential Revision: D2631180

Pulled By: kmagiera

fb-gh-sync-id: 09a1a2e48fd6fff37d1491c120a28221cdc1b163
2015-11-09 00:02:19 -08:00
Krzysztof Magiera
6c204dcbea Update ViewGroupManager interface to use index for remove method.
Differential Revision: D2610700

fb-gh-sync-id: b59dfc581d9ca8d29203b5915fb743f3270989ab
2015-11-03 08:57:28 -08:00
Martin Konicek
5518279610 Add gradle wrapper
Reviewed By: astreet

Differential Revision: D2590921

fb-gh-sync-id: cf870c96f772c06e1a8b69014ebd906978ea8c00
2015-10-29 10:09:29 -07:00
Krzysztof Magiera
ffc6db2f2c Add @Nullables to TouchEvent.
Reviewed By: mkonicek

Differential Revision: D2591989

fb-gh-sync-id: 84f139b91ec21e656157a9c54cd616ee15673991
2015-10-28 14:53:13 -07:00
Krzysztof Magiera
46e67ef428 Recycle touch events.
Reviewed By: andreicoman11

Differential Revision: D2590149

fb-gh-sync-id: 97c60e12385526097431a192b692e2f92813722d
2015-10-28 02:27:25 -07:00
Krzysztof Magiera
0e4dec930b Backout 052d4aab3722
Reviewed By: mkonicek

Differential Revision: D2586735

fb-gh-sync-id: 477a1c84fcf2a22b681407c7e93102dd59118f25
2015-10-27 13:02:08 -07:00
Clement Genzmer
c902ed2fe5 Backout 981069:cb671e39fd64 breaking master
fb-gh-sync-id: 052d4aab3722d44f5c4fbb0f4f50a2d71ba56927
2015-10-27 10:46:29 -07:00
Krzysztof Magiera
b28ff0451d Allow events recycling and implement recyclable OnLayoutEvents.
Differential Revision: D2585530

fb-gh-sync-id: cb671e39fd64c27a9c11e3cd064bd19cabe7f3b6
2015-10-27 08:34:28 -07:00
Mike Armstrong
2b491b45c8 Move PerformanceLoggerFlag to onDraw
Differential Revision: D2585417

fb-gh-sync-id: 342f7a05dc53cb0af0871b0dc8504dc48680cde4
2015-10-27 07:19:27 -07:00
Krzysztof Magiera
137a0b8611 Kill @UIProp in favor of @ReactProp.
Differential Revision: D2582624

fb-gh-sync-id: b04b4c90ee478d995968cab4364e1ab0964b6ebe
2015-10-27 01:54:28 -07:00
Krzysztof Magiera
05c9a1f91a Kill ViewManager.updateView
Differential Revision: D2581595

fb-gh-sync-id: cb653360d7f59da7f4326ca08c41f5de64c384c6
2015-10-26 15:38:23 -07:00
Krzysztof Magiera
5eaa553264 Backout 'Backout 978869:739faaa0f18b'
Reviewed By: mkonicek

Differential Revision: D2582059

fb-gh-sync-id: 398737d6ea7b8c6cacb9dacd1269d8f806d92e45
2015-10-26 15:38:18 -07:00
Clement Genzmer
b7d1d8248d Backout 978869:739faaa0f18b
fb-gh-sync-id: 0ea211696e8114cf86ab04790a4fb287cc79ff54
2015-10-26 15:36:24 -07:00
Krzysztof Magiera
c2e7384110 Blow away BaseViewPropertyApplicator.
Differential Revision: D2580741

fb-gh-sync-id: 739faaa0f18b336051ab2cf4eb9f4e4315a2fcd9
2015-10-26 15:36:08 -07:00
Krzysztof Magiera
a5c693dd53 Fix typo in ReadableMapKeySetIterator.
Reviewed By: mkonicek

Differential Revision: D2564934

fb-gh-sync-id: 2ef1a0f5c1550d912dc751100c307659a5159fa3
2015-10-21 09:05:12 -07:00
Hermes Pique
9960878ba4 Revert D2564759
Differential Revision: D2564818

fb-gh-sync-id: 75e44551fc2c7e22be8096f12c06aa88b72a4508
2015-10-21 05:31:25 -07:00
Krzysztof Magiera
e1b2c84a81 Fix typo in ReadableMapKeySetIterator.
Differential Revision: D2564759

fb-gh-sync-id: 6a57fb71d4da1d467661a3ae786f637172b21e73
2015-10-21 04:14:12 -07:00
Andrei Coman
716f7e8ef2 Don't use MotionEvent timestamp for touch events
Differential Revision: D2554905

fb-gh-sync-id: 7f83e94948cc9ac1024e249764d445fb056f400e
2015-10-19 03:08:23 -07:00
Andrei Coman
f01272b031 Fix touches with pointer events backtrack
Differential Revision: D2553642

fb-gh-sync-id: b1788879bfbb564a291ada0e7ac206f567780f8a
2015-10-17 06:31:26 -07:00
Krzysztof Magiera
10a9b94b9c Skip unnecessary string allocs from frquently executed code paths.
Differential Revision: D2540814

fb-gh-sync-id: 045d012b52a6bc89d409bcc028532da1760c5775
2015-10-14 09:23:25 -07:00
Krzysztof Magiera
589df04846 Introduce @ReactProp-enabled LayoutShadowNode as a baseclass for most of the shadow nodes.
Differential Revision: D2540232

fb-gh-sync-id: 6dfed70c8253973897f4e447377ec5561862da23
2015-10-14 01:41:26 -07:00
Krzysztof Magiera
05015e8d36 Extract @ReactProp annotated properties from shadow nodes.
Differential Revision: D2536419

fb-gh-sync-id: 643499d4fdcb481349dad1701391059d2362984e
2015-10-13 10:11:30 -07:00
Krzysztof Magiera
42e9189b77 Add getShadowNodeClass method to ViewManager interface.
Differential Revision: D2535731

fb-gh-sync-id: 7a68778ea4ca47b113d73b1d638d74d905ea2da5
2015-10-13 06:44:19 -07:00
Krzysztof Magiera
3561c9ed2b Restructure ViewManagersPropertyCache.
Differential Revision: D2532365

fb-gh-sync-id: e5cbb55093310b47b6525839d7c5929264d158ad
2015-10-12 12:02:56 -07:00
Martin Konicek
2944c665bf Fix package name of DebugComponentOwnershipModule
Reviewed By: @foghina

Differential Revision: D2531355

fb-gh-sync-id: 71de71bfec0353fb45bb8dbc8a3f4ce7cad43925
2015-10-12 09:10:33 -07:00
Andrei Coman
c805157cac Fix touch target computation
Differential Revision: D2516811

fb-gh-sync-id: 1f3490f969912f1eb8f4d49a5daa976314bbc25f
2015-10-07 01:54:22 -07:00
Andrei Coman
a876b234c6 Fix element inspector
Differential Revision: D2513268

fb-gh-sync-id: c0c91cc96926eb6d222c7cbc8855342e8594a09f
2015-10-06 11:41:32 -07:00
Krzysztof Magiera
bf598647d2 Convert View to @ReactProp.
Differential Revision: D2479795

committer: Service User <svcscm@fb.com>
2015-09-25 03:14:28 -07:00
Krzysztof Magiera
5623c831b3 Introducing view property annotation.
Differential Revision: D2475680

committer: Service User <svcscm@fb.com>
2015-09-24 08:20:17 -07:00
Krzysztof Magiera
6c3fb77f30 Static type check for int params + migrate colorInt to just int.
Differential Revision: D2475618

committer: Service User <svcscm@fb.com>
2015-09-24 08:20:14 -07:00
Martin Konicek
c45be4d55a Test export to github
Reviewed By: @mkonicek

Differential Revision: D2467343

committer: Service User <svcscm@fb.com>
2015-09-22 11:34:27 -07:00
Martin Konicek
27ab039b6a Export latest Android changes 2015-09-17 14:33:28 +01:00
Martin Konicek
42eb5464fd Release React Native for Android
This is an early release and there are several things that are known
not to work if you're porting your iOS app to Android.

See the Known Issues guide on the website.

We will work with the community to reach platform parity with iOS.
2015-09-14 18:13:39 +01:00