Commit Graph

141 Commits

Author SHA1 Message Date
Luke De Feo
44b8a39874 remove common package
Summary: Just cleaning up some packages

Reviewed By: lblasa

Differential Revision: D50849169

fbshipit-source-id: 2b732e41ff11361dc7462598f282abb2d4116ce7
2023-11-02 12:29:07 -07:00
Luke De Feo
6bf93347ee Extracted snapshot out of descriptor
Summary: Snapshot never made much sense in the descriptor since we only snapshot the decor views. Additionally in the next diff i will introduce a new way to snapshot so this will make it easier

Reviewed By: lblasa

Differential Revision: D50845280

fbshipit-source-id: c2eac351b72786e7b66951d0fa09cea52a6dcc69
2023-11-02 12:29:07 -07:00
generatedunixname89002005325672
e72dcbb28d Daily arc lint --take KTFMT
Reviewed By: martintrojer

Differential Revision: D50925513

fbshipit-source-id: 1b964b758c53d6d490bd6c7f76d003c0afecfc70
2023-11-02 03:41:53 -07:00
Luke De Feo
9f78eb3f00 Fix NPE in text descriptor
Summary: Apparantly this can be null, we have received traversal errors with this in the stacktrace

Reviewed By: adityasharat

Differential Revision: D50839760

fbshipit-source-id: 8e43f35b2adfa91358924b1e162c53c50b0d855d
2023-11-01 06:41:55 -07:00
Luke De Feo
620b41b691 Fix npe crash in visibility check
Summary:
https://fb.workplace.com/groups/443457641253219/permalink/1716178925529425/

we had this stack trace which i belive is because we are accessing the litho view after its been unmounted, this is possible as the attributes fetching is async. To fix we move this part to be sync on the main thread

ui-debugger] Client error during traversal:  {\n  \"nodeName\": \"DeferredProcessing\",\n  \"errorType\": \"NullPointerException\",\n  \"errorMessage\": \"Attempt to invoke virtual method 'com.facebook.rendercore.extensions.ExtensionState com.facebook.litho.LithoHostListenerCoordinator.getVisibilityExtensionState()' on a null object reference\",\n  \"stack\": \"java.lang.NullPointerException: Attempt to invoke virtual method 'com.facebook.rendercore.extensions.ExtensionState com.facebook.litho.LithoHostListenerCoordinator.getVisibilityExtensionState()' on a null object reference\\n\\tat com.facebook.litho.LithoView.getVisibilityExtensionState(LithoView.java:710)\\n\\tat com.facebook.litho.DebugComponent$Companion.isVisible(DebugComponent.kt:406)\\n\\tat com.facebook.flipper.plugins.uidebugger.litho.descriptors.DebugComponentDescriptor.getMountingData(DebugComponentDescriptor.kt:182)\\n\\tat com.facebook.flipper.plugins.uidebugger.litho.descriptors.DebugComponentDescriptor.access$getMountingData(DebugComponentDescriptor.kt:32)\\n\\tat com.facebook.flipper.plugins.uidebugger.litho.descriptors.Debug

Reviewed By: adityasharat

Differential Revision: D50843793

fbshipit-source-id: 8c1df8b291371fd379cb819df33ed933f36026a6
2023-11-01 06:41:55 -07:00
generatedunixname89002005325672
9aadcefbf9 Daily arc lint --take KTFMT
Reviewed By: martintrojer

Differential Revision: D50729003

fbshipit-source-id: b739c041af3edb9ae7f787368938b23ae8efe4d0
2023-10-27 01:34:53 -07:00
Luke De Feo
92e831cc40 Promote k state to top level
Summary:
In the new sidebar design complex types are behind a preview. before states was an array under the key states.

Now we create a top level attribute according to its index

Reviewed By: lblasa

Differential Revision: D50654698

fbshipit-source-id: 410c50c5f1ab14efc77184a5b147d9bdf70761d4
2023-10-26 11:29:30 -07:00
Luke De Feo
cdb96df06f Litho layout prop improvements
Summary:
A few fixes.

1. We were ignoring start and end inputs, they are now sent to desktop
2. we were computing our own version of the resolved (computed ) values for border padding and margin. We are now using the correct about from litho getLayoutX

Removed some code duplication

Unfortunatley getLayoutBorderWidth is not available in open source yet so will need to land that first

Reviewed By: adityasharat

Differential Revision: D50496369

fbshipit-source-id: 7960a5d338adb40175f48982150665e046688fe1
2023-10-24 06:22:20 -07:00
generatedunixname89002005325672
6251c58154 Daily arc lint --take KTFMT
Reviewed By: hick209

Differential Revision: D49534542

fbshipit-source-id: 122e7e2ca3070176dc9b510b6deefbb9fe71de11
2023-09-22 08:50:37 -07:00
Luke De Feo
3b8e03e94d fix open source
Summary: these constants are not in the latest release and has broken the build

Reviewed By: adityasharat

Differential Revision: D49455455

fbshipit-source-id: d84b3d214907de197e166130d1c8911a5e0db3c2
2023-09-21 05:10:03 -07:00
Luke De Feo
d7f8ed5d81 Fix broken attribution of mount events
Summary: The string were out of sync so using the constants instead

Reviewed By: fabiocarballo

Differential Revision: D49414046

fbshipit-source-id: 5d61831505e5d7ecec3d5c9717d4549ba4b291a8
2023-09-19 06:14:25 -07:00
Nate Stedman
ef621b07b7 Update ktfmt component on FBS:master
Reviewed By: hick209

Differential Revision: D49300079

fbshipit-source-id: 7e704e2366feee3f6f2c25ac25d3daea407e71f9
2023-09-15 07:19:43 -07:00
Aditya Sharat
00c203efc3 Renames debug event attributes to be more consistent
Summary: Renames debug event attributes to be more consistent

Reviewed By: pentiumao

Differential Revision: D49269291

fbshipit-source-id: 88fe3607bdfc58b941897a5dcc00f20bdb98fea3
2023-09-14 07:45:23 -07:00
Aditya Sharat
134e1f6bfa Renames debug event attributes and deduplicate them
Summary: Renames debug event attributes and deduplicate them

Reviewed By: pentiumao

Differential Revision: D49268777

fbshipit-source-id: 62f707424bb62e95a0d372307e7bf71ff770e554
2023-09-14 07:45:23 -07:00
Aditya Sharat
ba94a2416c Renames global key to key
Summary: Renames global key to key

Reviewed By: pentiumao

Differential Revision: D49268637

fbshipit-source-id: 9c3e11ce78380048eed75d554170319e81892efd
2023-09-14 07:45:23 -07:00
Pascal Hartig
0900a2a41d Export android plugin to OSS (#5109)
Summary:
Changelog: UI Debugger is now available for Litho in Open Source

Pull Request resolved: https://github.com/facebook/flipper/pull/5109

Remove the stub, replace with the real thing.

Reviewed By: lblasa

Differential Revision: D46859213

fbshipit-source-id: 74c59a53d1d22e046254f4bca202da17a0b0e5d8
2023-09-08 04:02:48 -07:00
Pascal Hartig
29f072fc75 ACTUALLY disable dokka builds (#5005)
Summary:
This should hopefully unblock our Android builds for real this time. I didn't realise that the AGP itself seems to ship with a version of Dokka, so just removing the import didn't actually address the problem we were seeing.

Pull Request resolved: https://github.com/facebook/flipper/pull/5005

Test Plan:
```
./gradlew publishToMavenLocal -PRELEASE_SIGNING_ENABLED=false
```

This now succeeds.

Reviewed By: jknoxville

Differential Revision: D48312784

Pulled By: passy

fbshipit-source-id: f049e089a511726857f544386fe13dcb50fb2971
2023-08-14 06:34:51 -07:00
Pascal Hartig
24cfd74252 Remove dokka plugin (#4995)
Summary:
[gradle] Remove dokka plugin
This is currently breaking our jetpack-compose build and blocks the entire release
as a consequence: https://github.com/facebook/flipper/issues/4970

There are all sorts of workarounds but they require changing the java target
which could have other downstream consequences: https://github.com/Kotlin/dokka/issues/2956

We don't actually rely on these artefacts at all, so it's probably safe to just disable this.

Closes https://github.com/facebook/flipper/issues/4970

Pull Request resolved: https://github.com/facebook/flipper/pull/4995

Test Plan: ./gradlew publishToMavenLocal

Reviewed By: antonk52

Differential Revision: D48062872

Pulled By: passy

fbshipit-source-id: aef0696d5ac83dd50bcbb96b0552f9b222f5a566
2023-08-07 11:18:54 -07:00
Luke De Feo
60016e69f5 Remove Node id default impl
Summary: This is never identity hash code for declarative framework so this default impl is just a source of bugs, including this one.

Reviewed By: lblasa

Differential Revision: D47754625

fbshipit-source-id: 470aab084c82fa847f25116342021a79d52b7c67
2023-07-26 04:58:43 -07:00
dependabot[bot]
4176415b55 Bump org.jetbrains.kotlin:kotlin-reflect from 1.8.22 to 1.9.0 (#4965)
Summary:
Bumps [org.jetbrains.kotlin:kotlin-reflect](https://github.com/JetBrains/kotlin) from 1.8.22 to 1.9.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin:kotlin-reflect's releases</a>.</em></p>
<blockquote>
<h2>Kotlin 1.9.0</h2>
<h2>Changelog</h2>
<h3>Analysis API</h3>
<h4>New Features</h4>
<ul>
<li><a href="https://youtrack.jetbrains.com/issue/KT-57930"><code>KT-57930</code></a> Analysis API: provide an API for extending Kotlin resolution</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-57636"><code>KT-57636</code></a> K2: Add the return type of K2 reference shortener AA <code>ShortenCommand::invokeShortening()</code> e.g., <code>ShorteningResultInfo</code> to allow callers to access the shortening result PSI</li>
</ul>
<h4>Fixes</h4>
<ul>
<li><a href="https://youtrack.jetbrains.com/issue/KT-58249"><code>KT-58249</code></a> Analysis API: Disable error logging for FE10 implementation of resolveCall when resolve is not successful</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-55626"><code>KT-55626</code></a> Impossible to restore symbol by psi from script file</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-57314"><code>KT-57314</code></a> LL FIR: Combine <code>LLFirProvider$SymbolProvider</code>s in session dependencies (optimization)</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-55527"><code>KT-55527</code></a> K2 IDE: Rewrite KtScopeContext class to allow to handle each scope separately</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-55329"><code>KT-55329</code></a> LL FIR: Unexpected ACTUAL_WITHOUT_EXPECT error on constructor and function declaration</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-50732"><code>KT-50732</code></a> LL API: fix compiler based tests</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-57850"><code>KT-57850</code></a> K2: contract violation due to SymbolLightAccessorMethod.propertyAccessorSymbol</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-56543"><code>KT-56543</code></a> LL FIR: rework lazy transformers so transformers modify only declarations they suppose to</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-56721"><code>KT-56721</code></a> K2: FirExtensionDeclarationsSymbolProvider: java.lang.IllegalStateException: Recursive update</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-50253"><code>KT-50253</code></a> Analysis API: Solve issues with ProcessCancelledException</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-56800"><code>KT-56800</code></a> K2 IDE: optimize deprecation calculation for symbols</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-55006"><code>KT-55006</code></a> Analysis API does not transform Java type refs for callable symbol return types</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-57256"><code>KT-57256</code></a> AA FIR: Reduce lazy resolve phase for deprecation status</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-57619"><code>KT-57619</code></a> K2: CFG for class initializer is not correctly built in reversed resolve mode</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-58141"><code>KT-58141</code></a> K2: AA FIR: impossible to restore symbol for declaration with annotation with argument inside type</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-57462"><code>KT-57462</code></a> Symbol Light Classes: SymbolLightFieldForProperty should retrieve annotations not from KtPropertySymbol, but from the corresponding backing field</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-54864"><code>KT-54864</code></a> Analysis API: add function to get expect KtSymbol list by actual KtSymbol</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-56763"><code>KT-56763</code></a> Analysis API: <code>.KtSourceModuleImpl is missing in the map.</code> on symbol restore when symbol cannot be seen from the use-site module</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-56617"><code>KT-56617</code></a> Analysis API: optimize KtFirSymbolProviderByJavaPsi.getNamedClassSymbol</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-54430"><code>KT-54430</code></a> K2: .getAllOverriddenSymbols() returns invalid results</li>
</ul>
<h3>Backend. Native. Debug</h3>
<ul>
<li><a href="https://youtrack.jetbrains.com/issue/KT-55440"><code>KT-55440</code></a> Kotlin/Native debugger: inline function parameters are not visible during debugging</li>
</ul>
<h3>Backend. Wasm</h3>
<ul>
<li><a href="https://youtrack.jetbrains.com/issue/KT-58293"><code>KT-58293</code></a> Wasm: ReferenceError: e is not defined in kotlin.test.jsThrow</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-58931"><code>KT-58931</code></a> Wasm tests are failing to start on Kotlin 1.9.0-Beta</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-58188"><code>KT-58188</code></a> Restore binary compatibility of PlatformDiagnosticSuppressor.shouldReportUnusedParameter</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-57136"><code>KT-57136</code></a> K/Wasm: Restrict non-external types in JS interop</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-57060"><code>KT-57060</code></a> Clarify the lack of support for dynamic in Kotlin/Wasm</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-56955"><code>KT-56955</code></a> K/Wasm: Support restricted version of K/JS <code>js(code)</code></li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-57276"><code>KT-57276</code></a> Wasm: &quot;Body not found for function&quot; error when compiling konform library with Kotlin/Wasm support</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-56976"><code>KT-56976</code></a> K/Wasm bug with calling override of external function with default parameters</li>
</ul>
<h3>Compiler</h3>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin:kotlin-reflect's changelog</a>.</em></p>
<blockquote>
<h2>1.8.21</h2>
<h3>Compiler</h3>
<ul>
<li><a href="https://youtrack.jetbrains.com/issue/KT-57848"><code>KT-57848</code></a> Native: compilation of dynamic/static library fails with Xcode 14.3</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-57875"><code>KT-57875</code></a> Native compilation failure: Suspend functions should be lowered out at this point, but FUN LOCAL_FUNCTION_FOR_LAMBDA</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-57946"><code>KT-57946</code></a> KAPT: &quot;RuntimeException: No type for expression&quot; with delegate</li>
</ul>
<h3>JavaScript</h3>
<ul>
<li><a href="https://youtrack.jetbrains.com/issue/KT-57356"><code>KT-57356</code></a> KJS: StackOverflowException on <a href="https://github.com/JsExport"><code>@​JsExport</code></a> with type parameters referring to one another</li>
</ul>
<h3>Tools. Compiler plugins. Serialization</h3>
<ul>
<li><a href="https://youtrack.jetbrains.com/issue/KT-58067"><code>KT-58067</code></a> Serialization: NullPointerException caused by <a href="https://github.com/Contextual"><code>@​Contextual</code></a> property with type with generic</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-57730"><code>KT-57730</code></a> Serialization: &quot;IllegalStateException: Serializer for element of type <!-- raw HTML omitted -->.Foo has not been found&quot; caused by serialization of Java type</li>
</ul>
<h3>Tools. Gradle. JS</h3>
<ul>
<li><a href="https://youtrack.jetbrains.com/issue/KT-57766"><code>KT-57766</code></a> KJS / Gradle &quot;Module not found: Error: Can't resolve 'kotlin-kotlin-stdlib-js-ir'&quot; when using &quot;useEsModules&quot;</li>
</ul>
<h3>Tools. Kapt</h3>
<ul>
<li><a href="https://youtrack.jetbrains.com/issue/KT-58027"><code>KT-58027</code></a> Kotlin 1.8.20 kapt issue &quot;null: KtCallExpression: build()&quot;</li>
</ul>
<h3>Tools. Maven</h3>
<ul>
<li><a href="https://youtrack.jetbrains.com/issue/KT-58048"><code>KT-58048</code></a> Maven: &quot;Too many source module declarations found&quot; after upgrading to 1.8.20</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-58101"><code>KT-58101</code></a> 'Unable to access class' in kotlin-maven-plugin after updating to Kotlin 1.8.20</li>
</ul>
<h2>1.8.20</h2>
<h3>Analysis API</h3>
<ul>
<li><a href="https://youtrack.jetbrains.com/issue/KT-55510"><code>KT-55510</code></a> K2: Lost designation for local classes</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-55191"><code>KT-55191</code></a> AA: add an API to compare symbol pointers</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-55487"><code>KT-55487</code></a> K2: symbol pointer restoring doesn't work for static members</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-55336"><code>KT-55336</code></a> K2 IDE: &quot;java.lang.IllegalStateException: Required value was null.&quot; exception while importing a compiled JPS project</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-55098"><code>KT-55098</code></a> AA: KtDeclarationRenderer should render a context receivers</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-51181"><code>KT-51181</code></a> LL API: errors for SAM with suspend function from another module</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-50250"><code>KT-50250</code></a> Analysis API: Implement Analysis API of KtExpression.isUsedAsExpression</li>
<li><a href="https://youtrack.jetbrains.com/issue/KT-54360"><code>KT-54360</code></a> KtPropertySymbol: support JvmField in javaSetterName and javaGetterName</li>
</ul>
<h3>Analysis API. FE1.0</h3>
<ul>
<li><a href="https://youtrack.jetbrains.com/issue/KT-55825"><code>KT-55825</code></a> AA FE1.0: stackoverflow when resolution to a function with a recursive type parameter</li>
</ul>
<h3>Analysis API. FIR</h3>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="bcf27812cd"><code>bcf2781</code></a> Add ChangeLog for 1.9.0</li>
<li><a href="d372470550"><code>d372470</code></a> Don't get BuildScanExtension when buildScan report is disabled</li>
<li><a href="0ec76786a6"><code>0ec7678</code></a> [Gradle, JS] Return back deprecated methods for compatibility</li>
<li><a href="2427b51ba8"><code>2427b51</code></a> Relocate aalto-xml and stax2-api dependencies in embeddable compiler (KT-59631)</li>
<li><a href="56a7789f1d"><code>56a7789</code></a> Revert &quot;[Gradle] Fix invalidating iOS framework after import&quot;</li>
<li><a href="8cf1abc294"><code>8cf1abc</code></a> Add the possibility to omit explicitly specifying a version in annotationProc...</li>
<li><a href="4823fc3c64"><code>4823fc3</code></a> [Gradle] GranularMetadataTransformation: Collect moduleIds in ProjectData for...</li>
<li><a href="0d1932eab6"><code>0d1932e</code></a> [Gradle] Implement Future&lt;T&gt;.map(transform)</li>
<li><a href="bbf64b14d7"><code>bbf64b1</code></a> [Gradle] Implement KT59446TransformationOnTransitiveJavaDependencyTest</li>
<li><a href="54b11e3a95"><code>54b11e3</code></a> [Gradle] KotlinPluginLifecycle: Implement .toString for better diagnostics</li>
<li>Additional commits viewable in <a href="https://github.com/JetBrains/kotlin/compare/v1.8.22...v1.9.0">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=org.jetbrains.kotlin:kotlin-reflect&package-manager=gradle&previous-version=1.8.22&new-version=1.9.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

 ---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `dependabot rebase` will rebase this PR
- `dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `dependabot merge` will merge this PR after your CI passes on it
- `dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `dependabot cancel merge` will cancel a previously requested merge and block automerging
- `dependabot reopen` will reopen this PR if it is closed
- `dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

</details>

Pull Request resolved: https://github.com/facebook/flipper/pull/4965

Reviewed By: aigoncharov

Differential Revision: D47755886

Pulled By: passy

fbshipit-source-id: 6b253ac55c5177ef58702adb89ee4ebc2b4bea92
2023-07-25 09:10:38 -07:00
Pascal Hartig
6048f09fd0 Update copyright headers for jetpack-compose
Reviewed By: lawrencelomax

Differential Revision: D47664798

fbshipit-source-id: 1dfd69e7e821fb2640cfb2fd6f481942d59a8162
2023-07-24 04:40:53 -07:00
Luke De Feo
20d7b57dbe Fix KState extraction
Summary:
The field changed from mStates to states breaking our reflection based code. Ideally I would like to just check if type == KStateContainer and access the field normally but the rest of the infrastructure expect to work on a java field.

Added tests to catch this sort of thing in the future. had to shift buck files around a bit to get it to work

Reviewed By: antonk52

Differential Revision: D46974357

fbshipit-source-id: 87a6f5883b33e4d1a7359df5987fc7ead7c19033
2023-07-03 12:19:26 -07:00
Facebook Community Bot
23a934a47c Re-sync with internal repository 2023-06-26 10:17:06 -07:00
Pascal Hartig
ad25c2468d Set up gradle project
Summary: Build the jetpack compose plugin with gradle and export it to Maven.

Reviewed By: lblasa

Differential Revision: D46932689

fbshipit-source-id: cca0468bae7e6a324430aab548613aa1fdb61bf2
2023-06-23 14:42:14 -07:00
Pascal Hartig
b35cbaae55 Export jetpack-compose code
Summary: Move the jetpack plugin to a location that will get exported to GitHub. It won't get built as part of Gradle just yet.

Reviewed By: lblasa

Differential Revision: D46932691

fbshipit-source-id: 5837bbb2f31aad4221ee745fd145b91b2783d7fe
2023-06-23 14:42:14 -07:00
Pascal Hartig
65f28ecdbe Upgrade Kotlin to 1.8.20 (#4753)
Summary:
[android] Upgrade Kotlin to 1.8.20
The additional source/target settings should hopefully no longer be necessary with
AGP 8.1:

https://kotlinlang.org/docs/gradle-configure-project.html#gradle-java-toolchains-support

Pull Request resolved: https://github.com/facebook/flipper/pull/4753

Test Plan:
- CI
- Build sample app
- AS sync

 ---
Stack created with [Sapling](https://sapling-scm.com). Best reviewed with [ReviewStack](https://reviewstack.dev/facebook/flipper/pull/4753).
* https://github.com/facebook/flipper/issues/4759
* https://github.com/facebook/flipper/issues/4758
* https://github.com/facebook/flipper/issues/4757
* https://github.com/facebook/flipper/issues/4756
* https://github.com/facebook/flipper/issues/4755
* https://github.com/facebook/flipper/issues/4754
* __->__ https://github.com/facebook/flipper/issues/4753
* https://github.com/facebook/flipper/issues/4752
* https://github.com/facebook/flipper/issues/4751

Reviewed By: ivanmisuno

Differential Revision: D46068906

Pulled By: passy

fbshipit-source-id: 93da60ebfe2ec590ef88ea1936fcfd5257699cc7
2023-05-23 10:16:38 -07:00
Pascal Hartig
4e0bbb62fe Upgrade gradle plugin (#4751)
Summary:
[android] Upgrade gradle project
Makes us compatible with Android Studio Flamingo and unlocks upgrades to Kotlin
(which we need to be in sync with fbsource).

Pull Request resolved: https://github.com/facebook/flipper/pull/4751

Test Plan:
- ./gradlew :android:assembleDebug
- Android Studio Sync
- CI

 ---
Stack created with [Sapling](https://sapling-scm.com). Best reviewed with [ReviewStack](https://reviewstack.dev/facebook/flipper/pull/4751).
* https://github.com/facebook/flipper/issues/4759
* https://github.com/facebook/flipper/issues/4758
* https://github.com/facebook/flipper/issues/4757
* https://github.com/facebook/flipper/issues/4756
* https://github.com/facebook/flipper/issues/4755
* https://github.com/facebook/flipper/issues/4754
* https://github.com/facebook/flipper/issues/4753
* https://github.com/facebook/flipper/issues/4752
* __->__ https://github.com/facebook/flipper/issues/4751

Reviewed By: aigoncharov

Differential Revision: D46068236

Pulled By: passy

fbshipit-source-id: 707422134b49c0d940b663f6f40937fe6561a038
2023-05-23 08:48:24 -07:00
Pascal Hartig
cd3cd44e98 Remove deprecated kotlin plugin (#4749)
Summary:
[android] Remove deprecated kotlin plugin
See https://goo.gle/kotlin-android-extensions-deprecation.

We don't seem to be making use of the extension.

Pull Request resolved: https://github.com/facebook/flipper/pull/4749

Test Plan:
```
./gradlew :android:assembleDebug
```

CI

Task: T153938450

Reviewed By: antonk52

Differential Revision: D46066063

Pulled By: passy

fbshipit-source-id: 1ae58535ca408bf29c97d5a945013f968f5b47a2
2023-05-22 04:34:22 -07:00
Luke De Feo
914b32c383 Add framework event infra
Summary:
Added infra for collecting events from UI frameworks.
1. Framework event metadata captures all the static metadata around the event. This allows to us to not send the same metadata in every event as well as populate the monitoring drop down immediately. This is sent in init since this information is static
2. Framework event itself is quite bare at the moment. It will have thread and more attributes in the future

The UIdebugger litho support ulitity has been simplified now there are 3 extension points.

Context renamed to UIDContext since it is referenced in app initialisers where the android context is also imported and it create a naming collision

Reviewed By: lblasa

Differential Revision: D42606933

fbshipit-source-id: a419f3fd424c533d586813004c40b68feafd9a2e
2023-03-01 08:49:49 -08:00
Sachin Tewari
2e31247486 Move flipper-fresco-plugin to fresco's repo from flipper's repo (#4546)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/4546

Move flipper-fresco-plugin to fresco's repo from flipper's repo

Reviewed By: passy

Differential Revision: D43467895

fbshipit-source-id: efea88563cf931baf4bda0c8bbdfbe41d0f769c5
2023-02-23 04:44:41 -08:00
Luke De Feo
6deedabfb2 Remove UI Debugger litho components from open source build
Summary:
I created a separate folder under src called facedbook, which
1.  isnt synced to github
2.  isnt build by gradle

I also needed to exclude the file with the duplicate symbol from buck. I seemed to have to move both the src/facebook and src/main under one buck file to get the exclude to work

Reviewed By: lblasa

Differential Revision: D41612114

fbshipit-source-id: a8386e1b1eabdeca2a800d98d8732b2ca694836b
2022-12-19 09:20:27 -08:00
Luke De Feo
0414e145a9 Port visibility and mount state for litho mountables
Summary: Based off D41224546

Reviewed By: mihaelao

Differential Revision: D41582451

fbshipit-source-id: 8792d40e47b2049e63a22a51363c093be310fe78
2022-12-19 09:20:27 -08:00
generatedunixname89002005325672
ecae770824 Daily arc lint --take KTFMT
Reviewed By: adamjernst

Differential Revision: D41833756

fbshipit-source-id: 0ecc95aff3bdadadb0769dec55d27fb84fe50e95
2022-12-12 07:51:03 -08:00
Luke De Feo
1a9724d790 Added inline tree attributes
Summary:
This is temporary solution to get to parity with the old plugin. In future would like to make this more flexible on the desktop side

Additionally getData was renamed to getAttributes for consistency

Reviewed By: lblasa

Differential Revision: D41845248

fbshipit-source-id: 50e94a7712f5d42938229134e212cef5d379475d
2022-12-12 07:28:37 -08:00
Lorenzo Blasa
d954828bbc Remove concept of dynamic metadata
Summary:
Although conceptually it made sense, it creates an issue with registration.

### Let me explain

Effectively, as an engineer, what constitutes static and dynamic metadata and how can I ensure that is treated as such?

It may be trivial to answer those questions but there was a fundamental assumption for static metadata that no longer holds true.  Static metadata was registered when descriptors were first referenced, which most of the times happens when added to the descriptors registry.

This used worked fine until we introduced the concept of deferred attributes.
Deferred attributes, even though static, may register its metadata only when requested to.

The issue is even more fundamental as not all the objects that declare static metadata will be loaded into memory by the time the plugin is connected and sends this.

### Solution

To simplify, as the concept was never really used, there's only metadata.

There's only pending metadata which is metadata that is yet to be sent to Flipper Desktop.

Reviewed By: LukeDefeo

Differential Revision: D41614186

fbshipit-source-id: 85d62eeff81ff22ae6e969d7b5aed8628b336258
2022-11-30 07:23:29 -08:00
Luke De Feo
d0a05ad1a9 Use global id for debugcomponent id
Summary: Global Id is stable as the component is rerendered. It is not stable if the whole component tree updates so we might want to deal with this in the future

Reviewed By: lblasa

Differential Revision: D41581346

fbshipit-source-id: 0c2834ba452ddcfc3e0a7392672825fc040901d9
2022-11-29 08:54:58 -08:00
Luke De Feo
cffe42a93a Litho state support
Reviewed By: lblasa

Differential Revision: D41581347

fbshipit-source-id: 262670053c586676be4f9465854ec79f95699d33
2022-11-29 08:54:58 -08:00
Lorenzo Blasa
76b1673d15 Basic array support
Summary:
Attributes Inspector didn't have support for inspectable arrays.

This change addresses an issue with the inspectable itself and adds basic support to it in the visualiser.

Reviewed By: LukeDefeo

Differential Revision: D41522879

fbshipit-source-id: f9cad42470541039c8157477b0fe9bc58f18f1ba
2022-11-28 10:19:20 -08:00
Luke De Feo
7ec09b4f95 Shift fetching litho attributes to background thread
Summary: Due to litho component instances being immutable we are able to process them later if we hold on to the instance. We have added a Maybe deferred type which sort of resembles a Monad. It wraps a value which may or may not be calculated later.

Reviewed By: lblasa

Differential Revision: D41474251

fbshipit-source-id: 2ba6e688518dba55cf4aa5ba53f390a92cf0921f
2022-11-23 03:45:26 -08:00
Lorenzo Blasa
5b3e110821 Remove Enumeration type
Summary:
Enumeration used to be a type containing a single property value of type string.

The InspectableEnum is a type that had an Enumeration value and possible values.

As we removed possible values from the enum value, this structure no longer serves its purpose.

Reviewed By: antonk52

Differential Revision: D41400874

fbshipit-source-id: e5c2d1e15ee9b3074ddd69f75ee9b8150d44379f
2022-11-21 05:30:18 -08:00
Lorenzo Blasa
6268c7b455 Litho margins
Summary:
Litho margins/padding/borders have the following attributes:

- left, top, right, bottom
- horizontal, vertical
- all
- start, end

This change processes these attributes and creates a SpaceBox inspectable which enables the margin visualiser in Flipper Desktop.

Reviewed By: LukeDefeo

Differential Revision: D41375299

fbshipit-source-id: be8bac1819f2b17c2fd1b1b86678aa0559278609
2022-11-18 02:34:33 -08:00
Lorenzo Blasa
0ac8c2a6b3 Migrate enum possible values to metadata
Summary:
Before this change, possible values for an enumeration were embedded within the attribute value itself.

After this change, possible values are located within the attribute metadata.

Reviewed By: LukeDefeo

Differential Revision: D41337003

fbshipit-source-id: cef5654a679e9b961e82993abb201b518fcbcd00
2022-11-17 04:42:22 -08:00
Luke De Feo
0ebedc9c49 Add Id to node descriptor interface
Summary:
There were 2 situations where the UI hadn't changed but we were sending a nodes with a different Id accross traversals which confuses things on the desktop

1. By removing the litho observer we are repeatidly scanning the entire hierachy on scroll or when a video plays. The debug component that represents litho views are not stable, they are generated each time even if the underlying component is the same
2. Offset child is generated by us each time and the old id refered to the generated offset child not the underlying object

This diff addresses these 2 cases by allowing a descriptor to choose the ID.

The nodeId convience method was used in a lot of places. For the places where the id ended up in the protocol we have migrated to the descriptors getID. In some other places it is only used internally or for logging.  In this case I have renamed the method and changed the return type from Id to int so it cant be accidently used in the protocol

Reviewed By: lblasa

Differential Revision: D41307239

fbshipit-source-id: 655b230180a6d02d66888e86b2293eead3385455
2022-11-16 10:38:23 -08:00
Luke De Feo
53c15b2e59 Remove litho observer
Summary:
There seem to be a number of issues with registering to all changes properly for litho observer.

Removing it and allowing the decor view to do a full traversal fixes a number of problems. The performance with hardware rendering seems to be fine. This should be  stopgap untill we tackle time travel properly

Reviewed By: lblasa

Differential Revision: D41304501

fbshipit-source-id: 5b7cdbd0dac04ba0dbf8dd5e449c99f0db4d0863
2022-11-16 10:38:23 -08:00
Luke De Feo
1398e2aa8a Make node bounds mandatory in protocol
Summary: This makes life on the desktop easier as 99% of the time bounds were there but we were dealing with non sensical non null branches.

Reviewed By: lblasa

Differential Revision: D41218325

fbshipit-source-id: e490d3775720c1c55dcb8f4a2a85520294f5e2a9
2022-11-14 07:05:58 -08:00
Lorenzo Blasa
7ae0eac13a Litho Props
Summary:
This diff adds support for layout and component props from Litho.

Notes:
- Each component could register a descriptor for itself.

Reviewed By: LukeDefeo

Differential Revision: D40680095

fbshipit-source-id: 57c78a199db58e05dd6dac4ed32ff6a869a73b0a
2022-11-11 04:49:02 -08:00
Lorenzo Blasa
f33e3fc78b Add qualified name to Node
Summary:
Our descriptors currently have a method to return the name as it will be displayed on the elements hierarchy.

However, it doesn't provide enough context if the name is to be used to discover the type in our code base.

This change adds a qualified name method that can provide a more complete name which can indeed be used by the Open In IDE functionality, for example.

Reviewed By: passy

Differential Revision: D40936785

fbshipit-source-id: 790ae02b9ebf37501765c52a24307fcaaaf9c14d
2022-11-11 03:22:39 -08:00
Lorenzo Blasa
01dc22b1ab Attributes Metadata
Summary:
Before this change, attributes and attribute metadata were intermingled and sent as one unit via subtree update event.

This represented a few issues:
- Repetitiveness. For each declared and dynamic attribute, metadata was included on each value unit.
- Metadata can vary in size and thus can have a negative impact on payload size.
- The attribute name which is part of metadata is a string which always overhead on processing.
- Metadata instantiation is not cheap thus this also incurs in processing overhead i.e. even instantiating a single string can have an impact.

The proposal is to separate metadata of attributes from the actual node reported attributes. This solves the problems mentioned above.

Reviewed By: LukeDefeo

Differential Revision: D40674156

fbshipit-source-id: 0788551849fbce53065f819ba503e7e4afc03cc0
2022-11-10 11:52:28 -08:00
Lorenzo Blasa
3598fb2cde Use correct bounds for litho debug components
Summary:
This change is a follow-up on Litho release:
https://central.sonatype.dev/artifact/com.facebook.litho/litho-widget-kotlin/0.44.0

This change ensures DebugComponent returns the correct Bounds.

Reviewed By: aigoncharov

Differential Revision: D40678191

fbshipit-source-id: 1d587efa114a9cd5c0b8162d219e93e3cbad282e
2022-10-28 04:58:52 -07:00
Luke De Feo
b1bee28f08 Coordinate update event when litho scrolls or is shifted
Summary: See doc comment for explanation

Reviewed By: lblasa

Differential Revision: D40587610

fbshipit-source-id: f0909440c4e6e3cc9f5c7b557198a93ba8809bd9
2022-10-25 07:10:38 -07:00