Commit Graph

4295 Commits

Author SHA1 Message Date
Betty Ni 287cf070cb Unbreak the build
Summary:
build-break
overriding_review_checks_triggers_an_audit_and_retroactive_review
Oncall Short Name: fbandroid_sheriff

Differential Revision: D23325277

fbshipit-source-id: 20e4fb649ce8a0c8640a5ff1c5eb0ff310a4cc22
2020-08-25 12:23:17 -07:00
Joshua Gross 1afd9f0e31 UpdateState MountItems should *always* update ViewManagers
Summary:
I'm removing an ill-informed "optimization" that resulted in some StateUpdates being dropped. For some components (including TextInput) we rely on State updates to request a layout from the ShadowNode layer.

In the past we were performing an optimization that didn't update the View layer if the data contained in the State container is identical, but in the case of TextInput and other components, we simply pass an opaque
object with no meaningful data to trigger the layouts. In those cases, it could cause a permanent rift between the View layer's StateWrapper and the most recent state object from the C++ perspective.

In the case of TextInput this didn't cause tangible bugs because you can always update state using an out-of-date State object, but it's better this way anyway.

The other issue is that for some components, we want to know when there's a State update from the Cxx layer. This optimization broke certain logic in those components.

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D23306222

fbshipit-source-id: 8ef83149b814de50776674b5fd22406be1db14ba
2020-08-24 19:39:56 -07:00
Joshua Gross 92091b8b31 New Flattening Differ
Summary:
# What is this?

For a very long time, we've discussed the possibility of detecting Node Reparenting in the Fabric Differ. Practically, from the developer perspective, ReactJS and React Native do not allow reparenting: nodes cannot be reparented, only deleted and then recreated with entirely new tags.

However, Fabric introduced the idea of View Flattening where views deemed unnecessary would be removed from the View hierarchy entirely. This is great and improves memory usage, except for one issue: if a View becomes unflattened, or becomes flattened, the entire tree underneath it must be rebuilt.

In a past diff we introduced a mechanism to detect sibling reordering cleverly, and produce a minimal instruction set. This diff is very similar: we know the invariants around flattening and unflattening of views and we take advantage of them to produce an optimal set of instructions efficiently.

# What's different from previous attempts?

No global maps! Those are slow!

This seems to work and (hopefully) might even improve performance, since way less work is being done on the UI thread in cases when views are (un)flattened.

This *only* does extra work when flattening/unflattening happens, which gives product engineers a little more control over perf.

# So, how's it work?

This algorithm is intuitively simple (I think) but tricky to pull off, because there are lots of edge-cases.

In short: In the past, that information was hidden from the Differ: the differ didn't know if views were being reparented, it would see them
as entirely new views or as views being deleted if a View was flattened or unflattened. We very subtly change the information given to the differ:
all nodes are visible to the differ, but marked as Flattened or Unflattened. Thus, when the differ compares two nodes in the "old" and "new" tree,
it can tell not just if there are updates to the node but if it has been unflattened or flattened as well.

For example, take this tree, where * indicates that a View is flattened:

```
         A
         +
    +----+---+
    B*       X
    +        +
    |        |
+---+--+     +
E      F     Y
```

When the Differ asks for the children of A, in the past it would get a list `[E, F, X]`. That is, B* and X are both its children, but since B is flattened, it is omitted entirely from the list and
its children are substituted.

Now, when the Differ asks for the children of A, we give it this list instead: `[B*, E, F, X]`. That is: we give it a list which includes B, but B is marked as flattened.

Another wrinkle: A node `X` could have its children flattened, but still be a concrete view: so flattening/unflattening is a different operation from making a view "concrete" or "unconcrete", which can change independently of flattening.

There is one additional wrinkle: because of zIndex/stacking order, the children of `B` might not actually appear after `B` in the list. Depending on zIndex, a tree that looks like this:

```
          A
          +
   +------+------+
   B*            C*
   +             +
   |             |
+--+--+       +--+--+
D     E       F     G
```

Could actually be linearized as: `[D G B* F C* E]` (as an extreme example; but basically all permutations as possible).

This is the reason, and the *only* reason that the inner Flattener/Unflattener

## The cases we need to handle

There are 7 cases/edge-cases of flattening and unflattening that we need to handle. Practically, all cases of reordering + flattening/unflattening, and taking recursive cases into account:

1. View A and A' (A in the old tree, A' in the new tree) are matched in the differ, and A* has been flattened or unflattened. These two cases are the easiest to handle.
2. View A' has been reordered with its siblings, and has been flattened or unflattened. These cases are slightly trickier to handle.
3. While flattening or unflattening, we encounter a child that has also been unflattened or flattened. So we need to handle four cases here in total: Flatten-Flatten, Flatten-Unflatten, Unflatten-Flatten, and Unflatten-Unflatten.

Other things to think about, also covered above:

1. Ordering. Views can be reordered and flattened/unflattened at the same time.
2. zIndex ordering: children in a certain order from the ShadowNode perspective may be stacked differently from a View perspective. We use the zIndex ordering for everything in the differ, and this prevents us from performing certain optimizations (see above: we cannot assume that children come after their parent in a list; they may come before, may be interwoven with children from other parents, etc).

# Perf Implications?

Practically, there should be very little negative overhead. There is some overhead in actually performing a flattening/unflattening operation, but... not much more than before. We don't use global maps, so the cost of flattening/unflattening is basically `O(number of nodes reparented)` - note that that's direct nodes reparented, *not* descendants.

tl;dr the perf hit should be similar to reordering, which is non-zero, but close to zero, and zero-cost for any diff operations on parts of the tree that don't involve flattening/unflattening. AFAICT this is very close to an ideal solution for that reason (but I wish it was simpler overall).

# In Summary?

I hope this works out and I think it could improve a number of things downstream: perf, LayoutAnimations, Bindings, certain crashes because of platform assumptions about mutations, etc.

Is it worth it? This new implementation is substantially harder to reason about, harder to read, and harder to understand. This is an important consideration. All I can say there is that I trust the test suite I've been using, but
the decreased readability is a big negative. Hopefully we can improve this in the future.

The rest is fiddly implementation details that I sincerely hope can be improved and simplified in the future.

# Followups?

The part that makes this algorithm the most expensive is that because of zIndex ordering, we cannot assume that children are linearized after their parents and so we rely more heavily on maps for the flattening/unflattening. Our TinyMap implementation should make these `find` operations fast enough unless trees' children are constantly being reordered, but it's still worth thinking of ways to make this even faster.

Changelog: [Internal]

Reviewed By: shergin, mdvacca

Differential Revision: D23259341

fbshipit-source-id: 35d9b90caf262d601a31996ea2cb37e329c61ffc
2020-08-24 13:09:12 -07:00
Joshua Gross d602c51996 Simplify TextInput measurements
Summary:
Simplify the TextInput measurement mechanism.

Now, data only flows from JS->C++->Java and from Java->JS. C++ passes along AttributedStrings from JS if JS updates, and otherwise Java maintains the only source of truth.

Previously we tried to keep all three in sync. This was complicated, slow, and even lead to some crashes.

This feels a bit hacky but I believe it's the simplest way to achieve this short-term. Ideally, we would use something like `AttributedStringBox` and pass that to State from Java,
but currently everything passed through the State system from Java must be serializable as `folly::dynamic`. So, instead, we just cache one Spannable per TextInput component and
use ReactTag as the cache identifier for lookup.

An interesting side-effect is that `measure` could race with TextInput updates, but the race condition favors measuring the latest text, not outdated values.

Followups:

- Can we do this without copying the EditText Spannable on every keystroke? Maybe this approach is too aggressive, but I don't want a background thread measuring a Spannable as it's being mutated.
- Do we need to support measuring Attachments?
- How can we clean up this API? It should work for now, but feels a little hacky.

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D23290230

fbshipit-source-id: 832d2f397d30dfb17b77958af970d9c52a37e88b
2020-08-24 11:59:28 -07:00
Joshua Gross 1d05d46e64 Add square brackets around tags in logs in FabricUIManager
Summary:
See title.

Changelog: [Internal]

Differential Revision: D23257809

fbshipit-source-id: b8e519971603506e8ae2b327582d3e3e7d65fddf
2020-08-22 22:42:12 -07:00
Joshua Gross 39689bd969 Add additional verbose logging to MountingManager.java
Summary:
In MountingManager.java in Fabric, if we drop a view with any attached views, we also drop all children. If verbose logging is turned on, log all instances of that happening.

This has no impact unless you switch the flag on manually in debug mode.

Changelog: [Internal]

Differential Revision: D23257749

fbshipit-source-id: fce4476aa47cc1b7137cd9fd2fd0241af1593288
2020-08-22 22:42:12 -07:00
David Vacca 1aaa3d95c0 Integrate AndroidProgressBarComponent into RN Tester OSS Android app
Summary:
This diff integratess AndroidProgressBarComponent into RN Tester OSS android app

changeLog: [internal] internal

Reviewed By: fkgozali

Differential Revision: D23227859

fbshipit-source-id: a916c90486ec4f9664be79608a8a8f907e2634a7
2020-08-22 01:46:03 -07:00
David Vacca 62de5c001c Migrate AndroidProgressBarComponent to Fabric
Summary:
This diff migrates AndroidProgressBar component to Fabric

changeLog: [internal] internal

Reviewed By: sammy-SC

Differential Revision: D23227857

fbshipit-source-id: c5cbbdcc36e63226286cd714d601f0d4690496b2
2020-08-22 01:46:03 -07:00
David Vacca 2d34c221f2 Integrate AndroidSwipeRefreshLayout into RN Tester Android OSS app
Summary:
This diff integrates AndroidSwipeRefreshLayout into RN Tester Android OSS app

Changelog: [Internal] internal

Reviewed By: fkgozali

Differential Revision: D23227855

fbshipit-source-id: 52bb457d655500b60614dfa3512b5173516f8483
2020-08-21 22:29:31 -07:00
David Vacca 57798408a3 Integrate Android Switch into RN Tester Android OSS app
Summary:
This diff integrates Android Switch into RN Tester Android OSS app

Changelog: [Internal] internal

Reviewed By: fkgozali

Differential Revision: D23227856

fbshipit-source-id: 0ef74456a15827f1aaa9e5b2aefb9c692cc1d1f4
2020-08-21 22:29:31 -07:00
David Vacca 82deeaff26 Integrate Slider into RN Tester OSS Android app
Summary:
This diff integrates Slider View Manager into RN Tester OSS Android app

Changelog: [Internal] internal

Reviewed By: fkgozali

Differential Revision: D23227858

fbshipit-source-id: d785dbdaa3e05e0dfcd7c2134769eaba72f40977
2020-08-21 22:29:30 -07:00
David Vacca 6e13ca3015 Integrate Android Picker into RN Tester OSS app
Summary:
This diff integrates AndroidPicker into RN Tester OSS app

changelog: [inernal] internal

Reviewed By: fkgozali

Differential Revision: D23199578

fbshipit-source-id: 7c34b0ee4887ffc15dbdffad464230b19f176fc8
2020-08-21 14:18:48 -07:00
David Vacca 1663f27f95 Integrate Activity Indicator into RN Tester Android OSS app
Summary:
This diff integrates Activity Indicator into RN Tester Android OSS app

changelog: [internal] internal

Reviewed By: fkgozali

Differential Revision: D23198641

fbshipit-source-id: 93614a3f856b4fc162d4618b168d9c82d18a91eb
2020-08-21 14:18:48 -07:00
David Vacca a76c55e0f5 Integrate AndroidDrawerLayout component into RN Tester Android OSS APP
Summary:
This diff registers the AndroidDrawerLayout component into RN Tester Android OSS APP

Changelog: [internal]

Reviewed By: fkgozali

Differential Revision: D23198359

fbshipit-source-id: 4033c7e968a993a7f8fcaa3f57e7dd78bf84fe57
2020-08-21 14:18:48 -07:00
David Vacca 3790569a71 Integrate Modal into RN Tester Fabric OSS APP
Summary:
This diff integrates Modal into RN Tester Fabric OSS APP

changelog: [internal] internal

Reviewed By: fkgozali

Differential Revision: D23183507

fbshipit-source-id: bc2513c39c783d387a985c86a12b04dadac49933
2020-08-21 14:18:48 -07:00
David Vacca 9b811fb0bf Integrate ScrollView in RN Tester Android OSS APP
Summary:
This diff integrates ScrollView in RN Tester Android OSS APP

changelog: [internal] internal

Reviewed By: fkgozali

Differential Revision: D23179883

fbshipit-source-id: 8e892ae613a1f44c8d6cfb837bfdbc0771a89176
2020-08-21 14:18:48 -07:00
David Vacca 60a5223ff7 Integrate AndroidTextInput in RN Tester OSS App
Summary:
This diff integrates AndroidTextInput in RN Tester OSS App

changelog: [internal] Internal

Reviewed By: fkgozali

Differential Revision: D23179389

fbshipit-source-id: 709d71343ca374ca2ece00774f4f273145bffd20
2020-08-21 14:18:48 -07:00
David Vacca 8f306cd66a Update directory hierarchy of AndroidTextInput C++ files
Summary:
This diff updates the directory hierarchy of AndroidTextInput C++ files to be compatible with Android OSS build system

changelog: [internal] Internal

Reviewed By: PeteTheHeat

Differential Revision: D23179390

fbshipit-source-id: 1c52e4f882853799a58d44876cadd392b4a35050
2020-08-19 19:22:23 -07:00
Sahil Jain 3fd8a5bac5 Remove unnecessary comment in BUCK files saying to change the contact field to the oncall of your team
Summary:
This comment shouldn't be committed, and should just be part of the template that generates new BUCK files.

Changelog: [Internal]

Differential Revision: D23225700

fbshipit-source-id: a1728e1a4ac0f3f94c4d1330d489bfae7a76a82d
2020-08-19 19:09:05 -07:00
David Vacca 2e88b25242 Integrate Image Fabric component into OSS
Summary:
This diff integrates image Fabric component into RN Tester app

changelog: [internal] internal

Reviewed By: fkgozali

Differential Revision: D23177896

fbshipit-source-id: 008e86e82a262827a31b9df74a50b58a97f2e1b7
2020-08-18 19:55:51 -07:00
David Vacca 50af304b3f Integrate Fabric Text in RN Tester OSS
Summary:
This diff integrates Text component into RN OSS

changelog: [internal] internal

Reviewed By: fkgozali

Differential Revision: D23177414

fbshipit-source-id: 0a415f8dd8339b84465a7c8d73f3d8abd80fbecc
2020-08-18 19:55:51 -07:00
David Vacca 19695ed6a9 Integrate UnimplementedView into RNTester OSS
Summary:
This diff integrates and render UnimplementedView into RNTester OSS

changelog: [internal] internal

Reviewed By: fkgozali

Differential Revision: D23170052

fbshipit-source-id: 9306311d114c280fdeeb20d545ef244369040e96
2020-08-18 17:00:02 -07:00
David Vacca d6ef2598bc Integrate Android C++ components files into RN Tester OSS
Summary:
This diff integrates Android C++ components files into RN Tester OSS

changelog: [internal] internal

Reviewed By: fkgozali

Differential Revision: D23170053

fbshipit-source-id: 3ba9d289e026359d83580fbddfd8caf8c226a29a
2020-08-18 17:00:01 -07:00
David Vacca 29513ac989 Fix output files generated by oss-android-codegen script
Summary:
This diff filters the iOS C++ friles that are generated by the oss-android-codegen script
Also, as part of this diff I'm inlcuding .cpp files into the output.

These files are only used and compiled in Android

changelog: [internal] internal

Reviewed By: fkgozali

Differential Revision: D23169268

fbshipit-source-id: 404607f3cd6e59197291ea67701774c9c492a282
2020-08-18 17:00:01 -07:00
Ramanpreet Nara 3f77367883 Delay turbomodulejsijni so load until we need it in TurboModulePerfLogger
Summary:
Twilight doesn't have TMPerfLogging enabled. However, the TurboModule infra uses the TMPerfLogger java class everywhere, which loads the turbomodulejsijni library on class load. For some reason, this class load doesn't work, and causes Twilight prod to crash.

To mitigate that crash, this diff delays the so load until it's absolutely necessary, which is by the time we call jniEnableCppLogging. This should never be called in Twilight, because it doesn't have TMPerfLogging enabled. Therefore, the crash should disappear on Twilight.

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D23192072

fbshipit-source-id: b73ece580e4345dbf835b0fc2f7d43b90f202411
2020-08-18 12:13:35 -07:00
David Vacca 0e442d1c02 Build RN Tester with fabric enabled in sandcastle
Summary:
This diff extends test-react-native-oss-android-legocastle to test the build of RNTester with fabric enabled in Sandcastle

changelog: [internal] internal

Reviewed By: fkgozali

Differential Revision: D23141524

fbshipit-source-id: 396dae1c0a23ce03db1053de1627eacb09a6df94
2020-08-17 16:40:00 -07:00
David Vacca c291265508 Reintroduce CoreComponentsRegistry class
Summary:
This diff reintroduces the CoreComponentsRegistry class to register core components in the RN Tester app.

This class was previously deleted as part of D23091020 (https://github.com/facebook/react-native/commit/7fb1afae7f4b78970463e272b7d4f3230e84887d). Different from a past approach, this diff doesn't use inheritance for Hybrid classes (which seems to bring problems in Android 4 devices)

I'm planning to land this diff after I verify that D23091020 (https://github.com/facebook/react-native/commit/7fb1afae7f4b78970463e272b7d4f3230e84887d) fixed RC (maybe I will wait until sunday's cut)

changelog: [internal] internal

Reviewed By: fkgozali

Differential Revision: D23109856

fbshipit-source-id: 5220e522e197f701c782ab5089f9f1036ec90c19
2020-08-17 14:18:57 -07:00
David Vacca 7fb1afae7f Remove CoreComponentsRegistry class
Summary:
This diff removes the CoreComponentsRegistry class that was recently created to expose Fabric components in OSS

changelog: [internal] internal

Reviewed By: JoshuaGross, shergin

Differential Revision: D23091020

fbshipit-source-id: 9d851608ed0eddb98367265b5e346d5298f5f732
2020-08-12 22:52:20 -07:00
David Vacca 9d33b588f6 Exclude Fabric from RN OSS by default
Summary:
This diff adds a new mechanism to enable or disable the build of Fabric in RN OSS

changelog: [internal] internal

Reviewed By: fkgozali

Differential Revision: D23084586

fbshipit-source-id: b7b0b842486392ec4ccb91ad1e6441ba3a1f48b2
2020-08-12 14:53:56 -07:00
David Vacca 03cc849e30 Simplify reactnativejni Android.mk file
Summary:
This diff removes unnecessary shared library dependencies from reactnativejni module

changelog: [internal] internal

Reviewed By: JoshuaGross

Differential Revision: D23080052

fbshipit-source-id: b914a5a6d5d8d6ab93ee903820dbb779e6817312
2020-08-12 14:53:56 -07:00
Jiawei Lv 7e0824027e Assign ownership for unowned open sourced robolectric tests in fbandroid
Summary: Changelog: [Internal]

Reviewed By: IanChilds

Differential Revision: D22983828

fbshipit-source-id: d0f48760d7a96cfe290ef44addacaf2c0f712b65
2020-08-11 11:25:57 -07:00
David Vacca c03b7dd772 Fix NoSuchMethodError in CoreComponentsRegistry class
Summary:
This diff fixes a NoSuchMethodError in CoreComponentsRegistry class.

changelog: [internal] internal

Reviewed By: JoshuaGross

Differential Revision: D23043627

fbshipit-source-id: bd87ba560cc57ca345bf694b457be09097c433fe
2020-08-10 18:42:05 -07:00
Joshua Gross 73242b45a9 NativeAnimatedModule: allow JS to control queueing of Animated operations
Summary:
In the past I tried a few heuristics to guess when a batch of Animated Operations were ready, and none of these were super reliable. But it turns out we can safely allow JS to manage that explicitly.

Non-Fabric still uses the old behavior which seems fine.

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D23010844

fbshipit-source-id: 4c688d3a61460118557a4971e549ec7457f3eb8f
2020-08-09 01:39:29 -07:00
Joshua Gross 0af275e3be Diagnostics for non-Fabric ViewCommand crash
Summary:
Add additional logging.

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D22980132

fbshipit-source-id: ab98d9aebe47dc65780ffbf6648e9341e1750121
2020-08-09 01:39:29 -07:00
David Vacca 0416f77ce4 Extend 'fabric' module to compile in OSS
Summary:
This diff extends fabric module to compile in OSS

NOTE: As a side effect of this diff, Fabric will be included into "reactnativejni" which is used by RN OSS.

I'm planning to remove this dependency in the near future - T71320460

changelog: [internal] internal

Reviewed By: JoshuaGross

Differential Revision: D22991877

fbshipit-source-id: 0ab3ee410dd448bbd87130114bec27c6e6bc65c6
2020-08-07 19:49:19 -07:00
David Vacca bb15437db9 Create CoreComponentsRegistry
Summary:
This diff introduces the class CoreComponentsRegistry that is responsible of registering core components in fabric.
This is required to make RN Tester to work in Fabric, in the future we'll extract this registry into another module (once we figure it out what's the best way to do this)

changelog: [internal] internal

Reviewed By: JoshuaGross

Differential Revision: D22991876

fbshipit-source-id: 15e85e15aac5dd981161d9eae35eb2cee4fa66b6
2020-08-07 19:49:19 -07:00
David Vacca f441fe6d45 Refactor ComponentFactoryDelegate class
Summary:
This diff refactors the ComponentFactoryDelegate class. It also introduces a new class called ComponentRegistry that will be used to register components into fabric

changelog: [internal] internal

Reviewed By: JoshuaGross

Differential Revision: D22985313

fbshipit-source-id: e33a3d4fcb3a1c509b80c6ff1f43889480b1c2c3
2020-08-07 19:49:19 -07:00
David Vacca 7d5383eea8 Extend 'textlayoutmanager' module to compile in OSS
Summary:
This diff extends the 'textlayoutmanager' module to compile in OSS
As part of this diff I also moved Android files in order to make the module compatible with Android.mk system

changelog: [internal] internal

Reviewed By: JoshuaGross

Differential Revision: D22963706

fbshipit-source-id: 14a7309f589fe12c21131c7d5cef02b4323d4a93
2020-08-07 19:49:19 -07:00
David Vacca 61a16fe1b6 Refactor Runnable C++ class to compile in OSS
Summary:
This diff refactors the class Runnable into a struct to make it work in OSS

changelog: [internal] internal

Reviewed By: JoshuaGross

Differential Revision: D22963704

fbshipit-source-id: 2212c8f1e4a62b2bcad5c061709e29b247454fc1
2020-08-07 19:49:19 -07:00
David Vacca d1d42475e9 Extend 'imagemanager' module to compile in OSS
Summary:
This diff extends the 'imagemanager' module to compile in OSS

changelog: [internal] internal

Reviewed By: JoshuaGross

Differential Revision: D22963701

fbshipit-source-id: 5034cf9801efa01cc39003b2060a84864c46d18e
2020-08-07 19:49:19 -07:00
David Vacca 48e9f0a1c0 Extend 'animations' module to compile in OSS
Summary:
This diff extends the 'animations' module to compile in OSS

changelog: [internal] internal

Reviewed By: JoshuaGross

Differential Revision: D22963702

fbshipit-source-id: e432e2f98b47a4b0456fd5e3d0f5263631782b29
2020-08-07 11:12:02 -07:00
David Vacca 6486b8cffd Extend 'scheduler' module to compile in OSS
Summary:
This diff extends the 'scheduler' module to compile in OSS

changelog: [internal] internal

Reviewed By: JoshuaGross

Differential Revision: D22963705

fbshipit-source-id: ea2b6a4fce49c4d9552deb30e89fcba165cfe772
2020-08-07 11:12:02 -07:00
David Vacca e20df93082 Extend 'templateprocessor' module to compile in OSS
Summary:
This diff extends the 'templateprocessor' module to compile in OSS

changelog: [internal] internal

Reviewed By: JoshuaGross

Differential Revision: D22963703

fbshipit-source-id: c898d846a59a065c0bbfd443303e125e6b9bcba7
2020-08-07 11:12:02 -07:00
David Vacca 2fa8829305 Extend 'uimanager' module to compile in OSS
Summary:
This diff extends the 'uimanager' module to compile in OSS

changelog: [internal] internal

Reviewed By: JoshuaGross

Differential Revision: D22918206

fbshipit-source-id: 2783ec6d9e53cdafab5c77a3f217b32c1c7f0b41
2020-08-07 11:12:02 -07:00
Oleg Lokhvitsky 7e5cf51117 Back out "Remove complex NativeAnimated queueing mechanisms"
Summary:
changelog: [internal]
Original commit changeset: 9241fff84376

Reviewed By: JoshuaGross

Differential Revision: D22987878

fbshipit-source-id: e7fb8f51ab911ff881ed543f39b65afbe076a7aa
2020-08-06 17:13:56 -07:00
David Vacca 5c9c52275f Extend 'attributedstring' module to compile in OSS
Summary:
This diff extends the 'attributedstring' module to compile in OSS

changelog: [internal] internal

Reviewed By: JoshuaGross

Differential Revision: D22918207

fbshipit-source-id: 35710789d2aa71826e10c29c27e9ac34b73e5344
2020-08-06 11:53:04 -07:00
David Vacca 459eabbef2 Extend 'better' module to compile in OSS
Summary:
This diff extends the 'better' module to compile in OSS

changelog: [internal] internal

Reviewed By: JoshuaGross

Differential Revision: D22918208

fbshipit-source-id: 11cf7c093bd1d50bbb53c6b6a740a3db41971fc0
2020-08-06 11:53:04 -07:00
David Vacca 8fdb3decda Extend components/scrollview module to compile in OSS
Summary:
This diff extends components/scrollview module to compile in OSS

changelog: [internal] internal

Reviewed By: JoshuaGross

Differential Revision: D22918203

fbshipit-source-id: 6a67213bdcb4b4b2d47a2ee2a9796a134d744956
2020-08-06 11:53:03 -07:00
David Vacca 99ee0309be Extend components/root module to compile in OSS
Summary:
This diff extends components/root module to compile in OSS

changelog: [internal] internal

Reviewed By: JoshuaGross

Differential Revision: D22918209

fbshipit-source-id: 9ce9558f689d0a9b3b8cb7edeb891e8f4bafba6c
2020-08-06 11:53:03 -07:00
David Vacca ba195e878e Extend component/unimplementedview to compils in OSS
Summary:
This diff extends component/unimplementedview to compils in OSS

changelog: [internal] internal

Reviewed By: JoshuaGross

Differential Revision: D22918204

fbshipit-source-id: 85b2338b6135aadcdd00bb798f6aaa2fdf03d81e
2020-08-06 11:53:03 -07:00