Summary: It didnt need to exist and can be seen as a subtree update of type full scan
Reviewed By: lblasa
Differential Revision: D39731552
fbshipit-source-id: e351413d9480e118fc000c5e55eae0e7980233f2
Summary:
This change removes the getSnapshot implementation from ViewGroupDescriptor.
Instead we rely on the chain implementation to get one.
Once we do get a snapshot, return.
Reviewed By: LukeDefeo
Differential Revision: D39849484
fbshipit-source-id: bfa0b1af22cf501777687295b8d792f8144a8d3b
Summary:
This change aims to reduce the number of bitmap pools by definiting a default pool which can contain bitmaps of different sizes.
A side benefit is that this single pool facilitates handling the case where a view gets resized too.
So overall, this should be both more generic and efficient compared to the previous approach.
Reviewed By: LukeDefeo
Differential Revision: D39815821
fbshipit-source-id: e0aa17ba55db07b74d8f22ea16e0c864288fb169
Summary:
DecorView owns a BitmapPool to take snapshots of the view. These snapshots are later on serialised by the manager.
There's a couple of unrelated changes in this diff but that were already in place making it hard to split.
(1) Renamed 'traverseAndSend' to 'processUpdate'. Why?
The observers as a whole shouldn't necessary know that their 'observation' is being sent to any place. Future changes should move the send logic altogether from the observer too. But that can be made within the scope of a different diff.
(2) There was a bug for nodes that were being observed but then unsubscribed from. If the nodes were being marked for observation and observer was already into place, these were not being told to subscribe again for changes.
Reviewed By: LukeDefeo
Differential Revision: D39812943
fbshipit-source-id: af98c5caf54e1c69f97043bae95049395a2e4545
Summary: Addresses a few issues with the existing implementation.
Reviewed By: LukeDefeo
Differential Revision: D39812624
fbshipit-source-id: 6f955f62bc5a7943558541e4cf7b4ccba4fd9be3
Summary:
Bitmaps are not cheap to create. Also, bitmaps are used from the main thread to capture the contents of a view but can be used and processed by background threads.
BitmapPool aims to solve both problems.
- It is a pool that can be used to recycle bitmaps.
- The recyclable bitmap can be processed by a background thread which can explicitly recycle the bitmap once done with it, hence putting it back into the pool.
UPDATE: D39815821
That diff changes the approach by defining a single default pool which can handle bitmaps of different sizes.
Reviewed By: LukeDefeo
Differential Revision: D39812212
fbshipit-source-id: 065eea656f4139aeb9d09cd5a5c7dddfc9c8edfd
Summary:
This change introduces a new Descriptor method to obtain snapshots of an item in the layout hierarchy.
Only implemented by the ViewDescritor but it can be potentially extended to Windows, Fragments, Activities, ...
Reviewed By: LukeDefeo
Differential Revision: D39690548
fbshipit-source-id: cf3a1ccd63eb28c1de328310e8635829a40964dd
Summary:
Cleanup documentation as with the other traversal, no raw loops.
Note: about no raw loops philosophy
To make clear and explicit the intention of the code, in this case to iterate over all elements of a collection.
A raw loop exposes unwanted flexibility which makes it hard to reason about code. A raw loop body thus have control over the lifetime of the loop itself.
- continue
- break
- return
None of those can be used with a forEach for example. Thus we make it clear the intention of the code.
Reviewed By: LukeDefeo
Differential Revision: D39652960
fbshipit-source-id: ac660dc43256e7850bd18e31b00aa123783d5c98
Summary: It was always the system hash code and in many places it was inconvient to get the descriptor to just end up calling the same function
Reviewed By: lblasa
Differential Revision: D39700215
fbshipit-source-id: b1439d56cd8f39ba8735f933662ad79b87ffbdbe
Summary: The old full traversal was not needed as the partial traversal is a superset of the functionality and it was a pain to maintain both
Reviewed By: lblasa
Differential Revision: D39700216
fbshipit-source-id: 0b028995a59f7c5ea4318add8b0534851ca99547
Summary: We had an issue where the offset for a native view was effectively caclculated twice and summed, once by litho and once by android. Given the UI debugger expects a nodes bounds to be w.r.t its parent the android systems x,y offset is 'wrong' from ui debuggers perspective, we set it to 0,0 and rely on the calculated offsets by the litho component hierachy
Reviewed By: lblasa
Differential Revision: D39695663
fbshipit-source-id: d9c2be950fc68bc2286359a62746356e89299cfd
Summary: This is to support a future diff where we will draw a basic wireframe for debugging
Reviewed By: lblasa
Differential Revision: D39509407
fbshipit-source-id: d99fd6fe39404996a0ed944c10905331262fd0c6
Summary: It was building at target sdk 0 before which lead to various checks failing, in future when these checks fail we should send a notification to flipper
Reviewed By: lblasa
Differential Revision: D39652095
fbshipit-source-id: 748bc74f0b5745011e6289e5582405149df8357f
Summary: Catch the case when we mis the initial draw
Reviewed By: lblasa
Differential Revision: D39658946
fbshipit-source-id: 00a46226128e28a8753df2161d1edcd6ffa47d67
Summary: Previously we were cancelling the entire context which meant after reconnect nothing was sent. Additionally we now close / reinitiaze the channel so that any old events are not sent on reconnect
Reviewed By: lblasa
Differential Revision: D39658945
fbshipit-source-id: bb02724434aa820d811b49ab799a4643ab7e785a
Summary:
^
`mutableClass` should be used instead of `clazz`
Reviewed By: LukeDefeo
Differential Revision: D39652102
fbshipit-source-id: 8ba86d39796beed79ff7cf8b37f3460facc38430
Summary:
Remove usage of '!!', it is generally discourages even though instances are guaranteed to exist.
Adjust comments
Reviewed By: LukeDefeo
Differential Revision: D39575368
fbshipit-source-id: a159a0411a913de3d1ae6236c41ea15255687433
Summary: Keep a weak reference of the view instead of a strong reference.
Reviewed By: LukeDefeo
Differential Revision: D39575312
fbshipit-source-id: ae8df7d089b29ea3b1cf960a6ae020ed5a9c3648
Summary:
^
There's no way to address these warnings, so suppress.
Reviewed By: LukeDefeo
Differential Revision: D39575262
fbshipit-source-id: 6703476d7637c63aa9a81b26f8cdbd0f53e3991c
Summary: This change tidies up the traversal and removes unused LayoutVisitor
Reviewed By: LukeDefeo
Differential Revision: D39575241
fbshipit-source-id: 2ab101f74ae7b2c16ddf7016abc78a03590916b0
Summary:
^
These are the last two types imported from stetho which, if anything, can be integrated as is without having to track back to Stetho
Reviewed By: LukeDefeo
Differential Revision: D39573639
fbshipit-source-id: 8009532116ec7b2fed2751fa966269ad81a7cb00
Summary:
^
After this change lands, it is safe to remove most of the Stetho fragment support types.
Reviewed By: LukeDefeo
Differential Revision: D39460121
fbshipit-source-id: 0e7d4ce71e828ee7bc9c6e945b8fe27dbd6f08f8
Summary:
1. The base class descriptor was removed, this was given that we have chained descriptor there is no need for this anymore
2. The Base interface node descriptor no longer has a mutable list based api. You simply return a list. The mutable list based api was specifically to allow chaining and this quirk is isoltated to the chained descriptor
3. AbstractChainedDescriptor and ChainedDescriptor were merged
Reviewed By: lblasa
Differential Revision: D39496073
fbshipit-source-id: fb3ec629ec3b27f587bdbd0b323624a4bc4ebea3
Summary: Tree observer had multiple components, now their usage is clearer they are moved to separate files
Reviewed By: lblasa
Differential Revision: D39469078
fbshipit-source-id: 4d4c03aff229fd2cc0eace216144b37694637691
Summary: This is to allow us to test dialogs from the UI debugger
Reviewed By: lblasa
Differential Revision: D39468653
fbshipit-source-id: 59c759a794c42b85bc288d60e1b2c6a71e32bb3d
Summary: typing uidebugger into ADB will hit both the log tag and any thing else such as package name. Turned Enum warning down to verbose reduce load on main thread
Reviewed By: lblasa
Differential Revision: D39466932
fbshipit-source-id: 0106a042a92755cf644c0e66683e7e5993e924e1
Summary: We use the root view resolver to detect when roots have been added. We currently have some race conditions where the activity stack managed by application ref doesnt include the first activity
Reviewed By: lblasa
Differential Revision: D39466929
fbshipit-source-id: fff4f830dea337d96dd9a9956a20a080fff2e965
Summary: Each observer was doing a similar job of traversing, and setting up child observers and its easy to not clean up child observers in some cases. This provides a helper utility for the common use case
Reviewed By: lblasa
Differential Revision: D39466930
fbshipit-source-id: e74ae5c3709297b73c020cd148a0485ac9fc0f8f
Summary: The active child was only being passed for the native scan full traversal, Now we have it for the partial traversal also
Reviewed By: lblasa
Differential Revision: D39466933
fbshipit-source-id: a0e281e4f9a21bf2edd12f18ecdb68a29ead3476
Summary: Added an initial litho Tree observer and descriptors, its quiet naive and will be improved in a future diff
Reviewed By: lblasa
Differential Revision: D39466931
fbshipit-source-id: 66a462882af2e585b9719ee2f61595449f99c5e5
Summary: While looking at the event stream it is useful to know which observer type fired it
Reviewed By: lblasa
Differential Revision: D39430756
fbshipit-source-id: bc52f085a5497692f8076b12a9c015cc33a19d1e
Summary:
There is a bug in the code to get fragments from the activity.
A boolean, result from the comparison, was added to the list instead of the actual fragments.
Reviewed By: LukeDefeo
Differential Revision: D39348019
fbshipit-source-id: 669f304055f15f59b40352d86f25d768d92df76e