Summary: This diff corrects the fix to be limited only to cases when either element itself or all of it's children can't be flexed
Reviewed By: emilsjolander
Differential Revision: D4915189
fbshipit-source-id: efccee2fe39ed0f474a41dc3250d24c546f3f5d9
Summary:
I'm actually quite excited about this one!
No more buck shelling out for building the Yoga AARs/JARs via Gradle. It's now
all done via Gradle.
This commit is the only one that should actually change anything about the entry
points to the gradle builds and release process. **So if anything goes wrong
with the next release, reverting this one here should be enough!**
Reviewed By: emilsjolander
Differential Revision: D4913600
fbshipit-source-id: 4a54562ad5be69f62a7781d43fddad211f99ab25
Summary:
I put the CMake file in the root directory to avoid moving the actual `yoga/`
dir around, but created a directory for the Android library manifest nonsense
so it works as its own module you can depend on.
Reviewed By: emilsjolander
Differential Revision: D4913601
fbshipit-source-id: 582064264cf0b6b69c03d0e72ed9dd22d217dd16
Summary:
This enables using gradle for building libfb using the NDK. This is 1/3 of what
we need to do. We also need to build yoga itself (which is the easiest as it's
just a static library without external dependencies) and yogajni which relies on
the other two.
Hopefully, this should also make it more obvious why the previous moves were
necessary.
Reviewed By: emilsjolander
Differential Revision: D4913360
fbshipit-source-id: 47658328532fd1ec15f10f8e31ea04691c481011
Summary:
This way we can more easily build it with Gradle. The CMake build for this comes
with the next Diff.
Reviewed By: emilsjolander
Differential Revision: D4913361
fbshipit-source-id: b7958e204a8a4a97a1f60043788d826dd2a4c080
Summary:
Adds two methods ```AddChild``` and ```RemoveChild``` to be able to add/remove children without the need to know there position.
Closes https://github.com/facebook/yoga/pull/513
Reviewed By: emilsjolander
Differential Revision: D4914242
Pulled By: splhack
fbshipit-source-id: df187ba71a1bae0b3b0649624f3c29401d5f8804
Summary:
Rename ```StyleAspectRatio``` to ```AspectRatio``` to be consistent with the other getters and setters.
Closes https://github.com/facebook/yoga/pull/512
Reviewed By: emilsjolander
Differential Revision: D4914236
Pulled By: splhack
fbshipit-source-id: 7b9ebdbf8945c4a8570c61de16d71c8d9d96bf9f
Summary:
As stated in 152074935 by rmarinho the Visual Studio solution didn't compile as ```YGEnums.c/YGEnums.h``` hasn't been added to them. This fixes this problem.
Closes https://github.com/facebook/yoga/pull/511
Reviewed By: emilsjolander
Differential Revision: D4914234
Pulled By: splhack
fbshipit-source-id: 473b6169bfb6576ca8848d4a5079f81692766897
Summary:
We need to use the most recent Android SDK to leverage the cmake-based NDK build
system. Also, since everything seems to be still working - why not?
I also changed the dependency of `yoga-layout` to be the project, not the
pre-published artifact as it no longer compiled due to the changed measure API
signature. I'm not sure if there was a reason to keep the two separate.
By relying on Maven-published artifacts, we generate better POMs when publishing
and people can override dependencies and see them more easily.
A few more cleanups based on what we did with Litho.
Reviewed By: emilsjolander
Differential Revision: D4913208
fbshipit-source-id: 053deb444ce91106afb3b66c3be28d6fcbdea450
Summary:
By declaring the properties first, before using them in the scripts, you no
longer get an exception if you fail to specify them.
You can now build artifacts or run tests without specifying your bintray
password, which is probably what you want.
Reviewed By: emilsjolander
Differential Revision: D4913103
fbshipit-source-id: 8787af8973cebb84cd59e18c63a3a9f28e0ec348
Summary:
I'm trying to get an NDK build set up for Yoga and clean up some of the Gradle
things along the way.
Having a wrapper is not only the preferred way of setting up Android
repositories and more convenient than asking users to install Gradle on their
machines themselves, but also allows for version pinning, which is important
when dealing with Android plugins which usually expect one very specific version
of Gradle.
Reviewed By: emilsjolander
Differential Revision: D4913104
fbshipit-source-id: b14964025271cd16c3c5c05a2fb6dab213227346
Summary: Can we just bump this here?
Reviewed By: emilsjolander
Differential Revision: D4905930
fbshipit-source-id: ea0bd51e32700556ecd1527d2b7fad67d4645366
Summary:
Nodes with a measure function needs to be measured even so it seems there is no available space. So it behaves more like on the web. Fixfacebook/yoga#488
Closes https://github.com/facebook/yoga/pull/499
Differential Revision: D4850458
Pulled By: emilsjolander
fbshipit-source-id: be5e35a670ddcbf3cd426fc3c2a0c9b60a874cdc
Summary:
Fixes the sizing of items so that under most scenarios it calcultes its height by it's content for non exact measurings. See facebook/yoga#505
Closes https://github.com/facebook/yoga/pull/506
Differential Revision: D4878875
Pulled By: emilsjolander
fbshipit-source-id: ab1174ac7a76dcf20aae7b29a3bc396e11077c4d
Summary: Fix some issues with the deploy script and deploy a new version for android
Reviewed By: passy
Differential Revision: D4876006
fbshipit-source-id: ddafb8349e1c77ab5afd9a823103fb6a1dfabb1d
Summary: Bump version of android things
Reviewed By: passy
Differential Revision: D4875213
fbshipit-source-id: 2b229a0dade521ef745852c0096545e7e9fe2c1e
Summary:
If a min constraint exists. It incorrectly reduces the available space by that amount. This adds a test and fix for this.
Closes https://github.com/facebook/yoga/pull/501
Differential Revision: D4867146
Pulled By: emilsjolander
fbshipit-source-id: ceafe070bfe7f501929d316656ac44c4e1753059
Summary:
If the root node has a position and we have a RTL layout, that position must be like LTR direction. See #477.
Closes https://github.com/facebook/yoga/pull/502
Differential Revision: D4867144
Pulled By: emilsjolander
fbshipit-source-id: b5ad3d87e7054090da12d7665a3d1abe8496a548
Summary:
- depends on #496
- For memory leak unit test
- Expose the API for C#
Closes https://github.com/facebook/yoga/pull/497
Reviewed By: emilsjolander
Differential Revision: D4796190
Pulled By: splhack
fbshipit-source-id: 99e4e78e8dfb3d459cf6cd7103ab252c3748e5a6
Summary:
See facebook/yoga#453. Optimizes the node log print by generating some enum text via ```enum.py``` and moving printing to new functions to reduce boilerplate code.
Changes the log output to format the nodes in html to be able to copy paste it into browsers for quick debugging.
Hides all default values.
Closes https://github.com/facebook/yoga/pull/479
Reviewed By: gkassabli
Differential Revision: D4802184
Pulled By: emilsjolander
fbshipit-source-id: 143bd63cbc31fb0755d711062cb4e6a448049ba3
Summary:
See facebook/yoga#483. We should not transfer the layout if the layout didn't change. (using ```hasNewLayout```). This also changes that the lock on the java node is only aquired if needed, and it holds the lock only for the time the values are set and not for the time all it's children are set.
Closes https://github.com/facebook/yoga/pull/484
Reviewed By: astreet
Differential Revision: D4802966
Pulled By: emilsjolander
fbshipit-source-id: e8a8f2280ad6b25b98fc68b07eac68e0ec80fe3e
Summary:
Fix xmlns import for yoga library by using `apk` instead of `lib` in the comment.
Closes https://github.com/facebook/yoga/pull/495
Reviewed By: emilsjolander
Differential Revision: D4802918
Pulled By: rspencer01
fbshipit-source-id: 9cef7709606e30e8e30af6e396866ac4900168bf
Summary:
As suggested in facebook/yoga#484. This is the PR which only adds the part of using a local bool field for storing the hasLayoutFlag, to be able to pass the layout only if it has really changed.
Closes https://github.com/facebook/yoga/pull/492
Reviewed By: astreet
Differential Revision: D4786961
Pulled By: emilsjolander
fbshipit-source-id: cf3d354b93f6dcc3ef817ef73a47bd29e37d1848
Summary: The native build script didn't make the directories it needed, and thus only worked if you'd run it before :O
Reviewed By: emilsjolander
Differential Revision: D4794861
fbshipit-source-id: 69764ef1ddadf63333ce5d91dfa85bc943479fef
Summary: Version bump as we have introduced `setUseWebDefaults`.
Reviewed By: emilsjolander
Differential Revision: D4794772
fbshipit-source-id: 0a42def3bec3f4f76caf6da01e3b9ab3679ebcb0
Summary: Set web defaults when resetting
Reviewed By: astreet
Differential Revision: D4779742
fbshipit-source-id: 5b8c5d7bd432a12984e4ebfd3187da3d680272cd
Summary: Mark nodes as having a new layout when changing display to none recursively.
Reviewed By: astreet
Differential Revision: D4786615
fbshipit-source-id: 2f3a16661d37bc37939e8e7a551445886a06524e
Summary:
The following PR fixes the tests used in the javascript port (it modifies gentest.rb).
These changes don't yet pass, it seems something is segfaulting somewhere. I have to check if it comes from nbind, the yoga library, or the node bridge itself. There's also some fails on the browser build, but it might be the same issue.
Closes https://github.com/facebook/yoga/pull/487
Reviewed By: emilsjolander
Differential Revision: D4778870
Pulled By: astreet
fbshipit-source-id: 936fbca564ec89738c78e50c4402c53eb6867dec
Summary:
- Unity IL2CPP (ENABLE_IL2CPP) requires the same code path with AOT compile.
- Clean up unneeded code in YGConfigHandle.
- YogaNode.Reset makes YGNodeHandle stale. Unmanaged side was reset by YGNodeReset, but YGNodeHandle keeps to retain the old managed handle. Release it.
Closes https://github.com/facebook/yoga/pull/491
Reviewed By: astreet
Differential Revision: D4765683
Pulled By: splhack
fbshipit-source-id: 83bfe19feb0e6ec45dc504e42b0c6c34e10af8e2
Summary:
Move -fPIC from BUCK to YOGA_DEFS, so that it can be overridden when
building yoga inside another build tree (since the larger build tree
may need its own configuration for -fPIC). No change when building yoga
standalone.
Reviewed By: emilsjolander
Differential Revision: D4714782
fbshipit-source-id: c706336cda72b36045e744e4fcaea4c0899bcf38
Summary: Don't transfer layout outputs to java if the layout was cached as this means that it has already been transfered
Reviewed By: astreet
Differential Revision: D4716024
fbshipit-source-id: c30763a6fc7426d653c7a6ca129615cddb4140e9
Summary: The layout of a node is invalid once it leaves the tree. Let's reset it for safety in case it is added to another tree.
Reviewed By: astreet
Differential Revision: D4716022
fbshipit-source-id: 399cc64a4b3f5fd3fc469ea37bdd31abe474dc6c
Summary:
This changes the `YOGA_ROOT` to `YOGA_ROOTS` in `YOGA_DEFS`. This allows the
inclusion of Yoga in the exported Components libraries directory and
back-references to the nested dependencies within it.
Reviewed By: rspencer01
Differential Revision: D4721745
fbshipit-source-id: 2dc9d4a730076510aed02027cb6713f6326c588d
Summary: We would like to know some numbers on benchmarking `YogaLayout` against other layouts, particularly `LinearLayout`. This implements a `BenchmarkActivity` to fill that need.
Reviewed By: emilsjolander
Differential Revision: D4565531
fbshipit-source-id: fe1c558beb603c3116ac3d0dd6654b0376dd6b8a
Summary:
This fixes ```align-content: center``` and ```align-content: flex-end``` when the child exceeds the parents size. See #476. It also fixes those layouts if the child has ```margin: auto``` set.
Closes https://github.com/facebook/yoga/pull/477
Differential Revision: D4697833
Pulled By: emilsjolander
fbshipit-source-id: d081ec7ea559a5f2bd3271c3a4dc272960beddfa