Commit Graph

30 Commits

Author SHA1 Message Date
Luke De Feo
f72406b06c Ensure that highlight always responds to prevent timeouts
Summary: In a previous diff D32278523 (8764da7c0b) The desktop request was changed from send to call. Call expects a response and not all code paths return a response. Most calls to set highlight are timing out.

Reviewed By: mweststrate

Differential Revision: D38074704

fbshipit-source-id: 6e85416d6b6470efaa177ad1b74420c8237366d5
2022-07-25 14:51:41 -07:00
Lorenzo Blasa
aed7e7e6f2 UI preview of selected element
Summary:
This is a prototype for view preview within Flipper for iOS (Android next).

If enabled, a preview of the selected element is rendered in the attribute inspector.

Changelog: Add view preview/snapshot for the Layout plugin on iOS.

Reviewed By: antonk52

Differential Revision: D34990372

fbshipit-source-id: 1984514fbf59041ad236008a8db10569c5fc5f94
2022-03-28 05:17:23 -07:00
Andres Suarez
79023ee190 Update copyright headers from Facebook to Meta
Reviewed By: bhamodi

Differential Revision: D33331422

fbshipit-source-id: 016e8dcc0c0c7f1fc353a348b54fda0d5e2ddc01
2021-12-27 14:31:45 -08:00
Michel Weststrate
32bf4c32c2 Remove Console feature
Reviewed By: fabiomassimo

Differential Revision: D27622952

fbshipit-source-id: 45ce5188a55f50b8ca28f28f354d9402902a5df8
2021-04-09 05:03:28 -07:00
Xiangxin Sun
2bae11e132 Revert D27332601: add macOS descriptors for layout plugin
Differential Revision:
D27332601 (ed69c4f16a)

Original commit changeset: 35c93cf715f0

fbshipit-source-id: 5dd601f1ec88d890886272d829f3ce6da3e72259
2021-03-29 20:11:37 -07:00
Kyle Cui
ed69c4f16a add macOS descriptors for layout plugin
Summary: Add macOS only descriptors. Currently does not support Yoga/YogaKit or accessibility features; will add those in a later diff.

Reviewed By: priteshrnandgaonkar

Differential Revision: D27332601

fbshipit-source-id: 35c93cf715f004dbf8dbf8753534f1d4f9801b4c
2021-03-29 16:13:24 -07:00
Pritesh Nandgaonkar
790f23301e Refactor Layout Plugin
Summary:
This diff moves the iOS descriptors and other layout helpers into its own buck target. Earlier everything was part of the FlipperKitLayoutPlugin target. When kcui, tried to add macos descriptors, we realised that FlipperKitLayoutPlugin doesn't have macos platform in it and thus he had to put #if TARGET_OS_SIMULATOR check in iOS descriptors and at some other places.

In order to make the integration easier I decided to split the Layout Plugin in following way.

```
FlipperKitLayoutPlugin
  -> FlipperKitLayoutIOSDescriptors (platform set as IOS)
  -> FlipperKitLayoutHelpers (used in iOS Descriptors and usefule for Macos too)
  -> FlipperKitLayoutMacOSDescriptors(coming soon by kcui)(platform set as MacOS)

```

Reviewed By: kcui

Differential Revision: D27127587

fbshipit-source-id: f108ef81914297e93c886fe53dabf0a4bf11ebc1
2021-03-25 16:00:28 -07:00
Paco Estevez Garcia
d488b308de Add support for tagged messages on the Layout Inspector
Summary:
Related diff [Litho]: D23243009

This diff adds support for a protocol for layout messages where the type is recursively encoded as:

```
{
 kind: "type",
 data: ???
}
```

We check if the message adheres to the new encoding, otherwise we fall back to the old behavior. If it's the new encoding, the message is traversed recursively flattening the types to EditorValue using the type hints provided.

Reviewed By: Andrey-Mishanin

Differential Revision: D23319619

fbshipit-source-id: 79e8886f8f5a0aea4ec32938f1d5cd2fd645a297
2020-08-27 05:34:27 -07:00
Dominik Wielgórski
41f1a0b454 Extra data send from iOS to Flipper Desktop
Summary: Added `extraInfo` for node descriptor for ios. Analogical to android node descriptor

Reviewed By: cuva, Andrey-Mishanin

Differential Revision: D23105947

fbshipit-source-id: f21541e97d79c0009815f94e733a056320324459
2020-08-17 10:20:53 -07:00
Chaiwat Ekkaewnumchai
a42c2dda5b Fix Highlight not Removed Properly When Quit Flipper via Shortcut
Summary: Discovered in https://fburl.com/h6eczhr2; the highlight didn't get removed correctly. This was from [this method](https://fburl.com/diffusion/twur28gt), which must be called on main thread to be executed completely.

Reviewed By: jknoxville

Differential Revision: D21629318

fbshipit-source-id: cfc52ac755a1ddfe92e675aac1a81066ce338bd7
2020-05-19 09:44:49 -07:00
Adam Ernst
82898b784e Clean up Flipper's iOS layout invalidation
Summary:
This reverts D21285438 and patches some holes in the layout invalidation routines.

(I tried to use `didAddSubview:` and `willRemoveSubview:` but those are annoying for other reasons; for example, `willRemoveSubview:` can be called from within `dealloc` which is surprising. Also they still don't catch the case where subviews are being reordered.)

Reviewed By: Andrey-Mishanin

Differential Revision: D21512129

fbshipit-source-id: 1d9e8dac9333eddfae2309d446ef4de9e83220d6
2020-05-12 05:54:38 -07:00
Chaiwat Ekkaewnumchai
367dbeee8c (client_ios) Return Tree And Path to Flipper Desktop
Summary:
Similar to D21040429, we need to add data sent to Flipper desktop so that we can use to retrieve necessary data.

~~The implementation is different; storing **all** component data is needed because the plugin refers to it when asked for information. This might cause an issue because we need to store more data. However, due to the sparseness of data at a single touch, this shouldn't cause any OOM.~~

Implementation Detail:
- `FlipperKitLayoutPlugin.mm`
  - When the process finishes the tree returned is trie from root node to every node that is touched
- `SKTouch.m`
  - `_nodeStack` keeps track of path from root to current component
  - `_treeStack` keeps track of current prefix tree (trie)
  - `continueWithChildIndex` takes care of logic for `_nodeStack` and `_treeStack`

Reviewed By: Andrey-Mishanin

Differential Revision: D21335956

fbshipit-source-id: 84c0cabd7399abe50cf2deaff2b01149a1a792d5
2020-05-07 06:18:38 -07:00
Pritesh Nandgaonkar
794d2f282f Solved the bug related to the toggle inspector of iOS
Summary:
Before this diff the nodes were not invalidated properly when the new view got added in the hierarchy, due to this there was following bug.

https://our.intern.facebook.com/intern/px/p/15RSP

Reviewed By: Andrey-Mishanin

Differential Revision: D21285438

fbshipit-source-id: b72aa93856688b31296ae1df4f15e128037aa1ca
2020-05-04 09:53:12 -07:00
Adam Ernst
affade67ff Remove unused getAllNodes support from Layout plugin impl
Summary: Added in D14209157, but the JavaScript no longer ever calls this method.

Reviewed By: jknoxville

Differential Revision: D21290792

fbshipit-source-id: df1969d83f0dc096a24977c15c27100d2f2bdfc0
2020-04-29 08:37:55 -07:00
Adam Ernst
c62760b3e8 Speed up Flipper by using background queue for serialization
Reviewed By: jknoxville

Differential Revision: D21290732

fbshipit-source-id: 21fcb793900a6517d764fa3a581255fd75a39801
2020-04-28 21:32:49 -07:00
Adam Ernst
89d6dfcf95 Simplify invalidate batching in Layout plugin
Summary:
- Avoid holding lock while calling out to `send:withParams:`; it's hard to reason about whether we could trigger deadlock.
- Remove unnecessary `lastInvalidateMessage` ivar; we already ensure that we send at most one invalidate batch per 500ms by using `invalidateMessageQueued`.
- Misc code style items

Reviewed By: Andrey-Mishanin

Differential Revision: D20462193

fbshipit-source-id: 80f61e5a7ce5021e16ebc19a2ec40adfc46f9b92
2020-03-16 07:29:23 -07:00
generatedunixname89002005287564
5c44d53739 Daily arc lint --take CLANGFORMAT
Reviewed By: zertosh

Differential Revision: D20278397

fbshipit-source-id: 2188283cd01d0d9d9d5b3995bd8d3f1fd687ad55
2020-03-05 08:30:40 -08:00
Pritesh Nandgaonkar
f03f119f0e Fix the broken target selector
Summary:
The target selector was broken on iOS. The overlay view which has the gesture recognizer, was never added to the window, due to which the gestures were not registered and the feature broke.

This diff adds the overlay view in the window object as the subview and then discards it in its view descriptor as otherwise we will capture all our touches in this view.

This was the most popular bug in our research trip and almost everyone reported it.

Reviewed By: fabiomassimo

Differential Revision: D20225594

fbshipit-source-id: af4041859d7e662152b2575d1eb258dd0c2d990e
2020-03-04 06:46:59 -08:00
Pritesh Nandgaonkar
e8b20d5b15 Run CLANGFORMAT on plugins
Summary:
This diff runs CLANGFORMAT lint on plugins. I have added CLANGFORMAT as the lint engined for objc files in xplat/sonar. Right now the iOS folder is not formatted according to CLANGFORMAT.

Ran `arc lint -a --paths-cmd "find ./iOS/Plugins -type f" --verbose`

Reviewed By: passy

Differential Revision: D19942173

fbshipit-source-id: 8b975b0a344df073b02d69cd1f9ee5629af2799d
2020-02-17 10:49:18 -08:00
Pritesh Nandgaonkar
cfb8b367c5 Fix for the broken Layout plugin
Summary: Fixes the broken Layout plugin in wilde. Before this fix it will just show an empty screen in the layout plugin.

Reviewed By: jknoxville

Differential Revision: D19621517

fbshipit-source-id: e10078248b95b93c6b9c87ccf4508628b6ad86bb
2020-01-29 07:50:27 -08:00
Andres Suarez
0675dd924d Tidy up Flipper license headers [1/2]
Reviewed By: passy

Differential Revision: D17863711

fbshipit-source-id: 259dc77826fb803ff1b88c88529d7f679d3b74d8
2019-10-11 13:46:45 -07:00
Andres Suarez
c4c5d453c2 Fix license headers
Reviewed By: scottrice

Differential Revision: D17673481

fbshipit-source-id: 1794e0a6e92e6894b5634b24c6e7910847616261
2019-09-30 15:10:17 -07:00
Roman Gorbunov
00e8f43e37 Improvement of live editing
Summary:
Live editing is now working faster.
We had an issue that it took about 5 seconds to see the view changed and 10 seconds to see tha value in the flipper, now it's done immidiately

Reviewed By: priteshrnandgaonkar

Differential Revision: D16500961

fbshipit-source-id: 742ce628a887bab06c1b883d9710c477af2508e7
2019-07-31 03:13:38 -07:00
Roman Gorbunov
f2bc5d3fb2 Generic solution for live editing
Summary: Preparation for making components live editable

Reviewed By: kevin0571

Differential Revision: D16379961

fbshipit-source-id: d0ea3d753eb588fe7b55f2345124427b4a5a58b5
2019-07-25 04:03:03 -07:00
Roman Gorbunov
cf1347d2e3 Fixed bug with flipper live editing
Summary:
Fixed bug with live editing
Previously if the meaining of the value was changed in flipper you receive back same value as it was
Now you see correct changed value

Reviewed By: priteshrnandgaonkar

Differential Revision: D16162141

fbshipit-source-id: 1a68ea64603171e952382c5093470d2cc12f7bbe
2019-07-10 12:13:15 -07:00
Pascal Hartig
bbee7a3357 Update iOS license headers (and more)
Summary: Add the affiliates bit that the linter is checking for.

Reviewed By: jknoxville

Differential Revision: D15164826

fbshipit-source-id: 500ffe89ec0c2fd3acfbc374408d16a337cecfa4
2019-05-02 03:28:07 -07:00
Pritesh Nandgaonkar
af317eed2b Export and import all the nodes
Summary:
This diff does the following

- Support to export the entire view hierarchy for iOS
- Android is not supported yet
- This diff adds a call `getAllNodes` to the client side of iOS, which returns the entire view hierarchy
- Currently the search doesn't work on the imported layout plugin data. Also the imported layout plugin data doesn't expand the way it does when component is mounted, reason being the client passed to the plugin is not functional for the archived case

I will work on fixing the last points in the next diffs stacked on the current one.

For Android:
- Currently the export function will export whatever is currently displayed on the Flipper app, not the entire view hierarchy

Support for Android will also come up in later diffs.

Reviewed By: jknoxville

Differential Revision: D14209157

fbshipit-source-id: 3ad3e39edfd994913dc19cc239bfbbe011a9757c
2019-02-28 09:40:50 -08:00
John Knox
9b6db1f482 Respond on exceptions thrown when on main thread
Summary: Changes FlipperPerformBlockOnMainThread to take a responder, and respond with an error if an exception is caught.

Reviewed By: passy

Differential Revision: D14066982

fbshipit-source-id: 70135bf58171684bcd013c66d9deec366aed36f5
2019-02-14 06:24:38 -08:00
John Knox
4eaf76ecf2 Fix isSearchActive crash in wilde
Summary:
This responder was added to android but not iOS, and was always being called during layout init.
Fixing by implementing it in iOS too.

Reviewed By: priteshrnandgaonkar

Differential Revision: D10489411

fbshipit-source-id: ef711dc5f54f52dd76db1245d07f9007fc846532
2018-10-23 05:54:25 -07:00
Pritesh Nandgaonkar
ba7b43a547 Rename SonarKitLayoutPlugin to FlipperKitLayoutPlugin
Summary: Renames SonarKitLayoutPlugin to FlipperKitLayoutPlugin

Reviewed By: passy

Differential Revision: D9949785

fbshipit-source-id: 8cfde4dfad3e34038d2f66f0ce4393db9d83ef60
2018-09-20 04:45:35 -07:00