Summary: You're not supposed to be here.
Reviewed By: SidharthGuglani
Differential Revision: D15353936
fbshipit-source-id: f389aeaff71f940d96dfc0422694fb0020dee05c
Summary:
The main goal is to update visitation id for our targeted tabs requirements (https://fb.quip.com/2jZiA97DTATi). In doing so, we want an easier way to debug whether everything is working as expected.
I've been meaning to add something like this for a while since it's a pain to explain what the visitation id and HSM look like as you navigate the app, so this should help the other teams who're using visitation id as well.
Will probably also start adding navigation events and any other data that we feel is useful.
Run:
```
fbsource/xplat/sonar/scripts/facebook/create-plugin.py Navigation --android
```
Then clean a few things up and fix lints.
Differential Revision: D14759995
fbshipit-source-id: 066dcbf70eed7056f995053cc9ba80dcbbafdb03
Summary: This is to unblock our mobile lab build target that adds Flipper to a redex-able build. Redex currently crashes when it tries to optimise Rhino. This could probably be fixed but we don't have any real use-cases for the console plugin right now. It should be fairly easy to unland this even partially if we want to revive this in the future.
Reviewed By: danielbuechele
Differential Revision: D15044539
fbshipit-source-id: f0857274aa046f5be935a342cf91b6a390fcb3dc
Summary:
This is because `doLast` may happen after the cleanup came around to undo `createNativeDepsDirectories` specified as dependency.
Pull Request resolved: https://github.com/facebook/flipper/pull/436
Reviewed By: jknoxville
Differential Revision: D15260597
Pulled By: passy
fbshipit-source-id: b752af2b71217ebc1d802b43f1585e858a41fc00
Summary: Quick fix for layout plugin and export crashing when encountering nullable props for colors and drawables like `refreshProgressBarBackgroundColor` on `RecyclerSpec`. The rendered view in the inspector is not great right now, but better than a crash. Working on the correct representation next.
Reviewed By: jknoxville
Differential Revision: D15241151
fbshipit-source-id: 3754dee8861a442127a34d7c3211d223c5f390c1
Summary:
JS is next. Screenshot on the intro page is really bad.
I hope danielbuechele can replace this. :)
Reviewed By: jknoxville
Differential Revision: D15184371
fbshipit-source-id: 2faaf46450d192ae400675c13b8d71fa1b7dab14
Summary: I hope that this takes care of all the android violations.
Reviewed By: danielbuechele
Differential Revision: D15199150
fbshipit-source-id: 0f5b4edc1bc9d38de0885f88bb2c3e43acfa09cd
Summary:
Without this, running clean as part of a longer build
chain will fail because it tries to write to a directory
which got removed in a previous step.
Reviewed By: jknoxville
Differential Revision: D15197982
fbshipit-source-id: 296f5a30661a6e2138c0e37f0103f1b6a82bcfc9
Summary: In this step, we want to visualize our mammals in a custom card view. For this reason, we need to replace `createTablePlugin` with a React component that extends `FlipperPlugin`.
Reviewed By: jknoxville
Differential Revision: D15183324
fbshipit-source-id: 329cdc5c6cbd7e1435538e8cdddf049d914ff221
Summary:
Moves some things around for package access reasons.
Otherwise sets up the simplest possible plugin that
just sends over all the data it shows in the UI
on connection time. Is that a good idea? You tell me.
JS part coming with the next diff.
Reviewed By: jknoxville
Differential Revision: D15182282
fbshipit-source-id: da5c1de43dfaee273b4eecc0f4512bef872a0ac6
Summary: Add the affiliates bit that the linter is checking for.
Reviewed By: jknoxville
Differential Revision: D15164826
fbshipit-source-id: 500ffe89ec0c2fd3acfbc374408d16a337cecfa4
Summary:
A very basic app with a scrolling list backed by a static data source. It also covers two bases that we hadn't before: Sections and Kotlin; the latter being the better choice for a modern Android tutorial anyway.
Missing right now: BUCK support (likely not going to come anytime soon due to the kapt limitations), the actual Flipper plugin integration (that's up next).
Reviewed By: jknoxville
Differential Revision: D15166195
fbshipit-source-id: 3cfaa1d243548279cabc4f244c13363f1bcaa36c
Summary:
This makes use of the new no-op package and also structures the app
into release and debug flavours that can be built with and without
Flipper part of the APK.
This was a pretty tedious adventure. I may have missed some corner cases
and also restructured a bunch of seemingly unrelated stuff that was
necessary to respect buck module boundaries.
Reviewed By: jknoxville
Differential Revision: D15148004
fbshipit-source-id: bf81f45105f5f16d17daccb3e8050ee00d69fc35
Summary:
We should not ship this as part of our distribution.
Just meant we had to bifurcate our unit tests which
is a bit awkward, but it works now.
Reviewed By: jknoxville
Differential Revision: D15146980
fbshipit-source-id: 496b000630bbfcaa663cddacb00550e1499a1279
Summary: Last big batch of adding license headers in Java code where they were missing.
Reviewed By: jknoxville
Differential Revision: D15164860
fbshipit-source-id: 4c0a61eec7b5659fdc674ebed85f2ade60dd0aa0
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/425
Incomplete implementation that should allow for most uses
as a release-only package.
Next steps:
- Integrate sample app with this.
- Set up CI to build sample app in release mode with this.
- Register with JCenter.
- Automatically publish to JCenter as part of our release step.
Reviewed By: jknoxville
Differential Revision: D15146823
fbshipit-source-id: 3ad058dce7b0395721c6e6715d44d4d51b1834da
Summary: Native can return nullptr, so this should be annotated.
Reviewed By: jknoxville
Differential Revision: D15146700
fbshipit-source-id: 332e3a074d2e39cfff677f3d84e94f910563f992
Summary: Makes the API a bit easier to use. Don't have to build an empty sidebar if you don't want one.
Reviewed By: passy
Differential Revision: D15064205
fbshipit-source-id: bd31c1aa97fd6d1c93717c10b268f49e44eb1299
Summary:
This diff makes headless flipper accept `metrics` argument. Once this is passed. The headless flipper will terminate to export the metrics of the plugins, the type of the export looks like the following.
```
export type MetricType = {[metricName: string]: number};
type MetricPluginType = {[pluginID: string]: MetricType};
export type ExportMetricType = {[clientID: string]: MetricPluginType};
```
This diff, uses the store to export the metrics. I will modify the logic to accept the data which gets exported through `exportData`
Reviewed By: passy
Differential Revision: D14933499
fbshipit-source-id: dade5b7bc59ea4beb6d16c5ef471737e8597358a
Summary:
Currently running the sample app on a pre-21 device produces a runtime error. This is because it includes OkHttp which requires 21+.
So this change just stops the sample app from being installable on pre-21 devices.
```
FATAL EXCEPTION: main
Process: com.facebook.flipper.sample, PID: 19629
java.lang.ExceptionInInitializerError
at okhttp3.OkHttpClient.newSslSocketFactory(OkHttpClient.java:263)
at okhttp3.OkHttpClient.<init>(OkHttpClient.java:229)
at okhttp3.OkHttpClient$Builder.build(OkHttpClient.java:1015)
at com.facebook.flipper.sample.FlipperSampleApplication.onCreate(FlipperSampleApplication.java:54)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4344)
at android.app.ActivityThread.access$1500(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalStateException: Expected Android API level 21+ but was 19
at okhttp3.internal.platform.AndroidPlatform.buildIfSupported(AndroidPlatform.java:238)
at okhttp3.internal.platform.Platform.findPlatform(Platform.java:202)
at okhttp3.internal.platform.Platform.<clinit>(Platform.java:79)
... 16 more
```
Reviewed By: passy
Differential Revision: D14953859
fbshipit-source-id: 8289c19e837f1d3739e120dc5a0f53111b800ca0
Summary:
The crash logged from `ErrorReporterRunnable` wasn't detailed. For example look at the following video.
Also for some reason the `FlipperConnection` interface doesn't have an argument for crash name. Thus I changed the js side of the plugin to accept `crash.name` to be undefined.
{F155526537}
Reviewed By: passy
Differential Revision: D14852561
fbshipit-source-id: 6daf9847535b4508fa312b4f940b014911aae2e5
Summary: I'm adding these in the table plugin for now, since it's the only native plugin, but it probably makes sense to have this ability in all native plugins.
Reviewed By: passy
Differential Revision: D14833326
fbshipit-source-id: 906190745091e02daccb9f6e84b95e0e13f2d8bd
Summary: These are full width blocks, and can be put anywhere, so calling them SidebarSections isn't very helpful.
Reviewed By: danielbuechele
Differential Revision: D14833465
fbshipit-source-id: 2433337f78b6bbcb951cd90b6925de1b9a304d42
Summary:
The main change is is changing from the inheritance model:
`FlipperPlugin > NativePlugin > TablePlugin > ConcretePlugin`
to a composition model where:
`NativePlugin > TablePlugin > ConcretePlugin`
And behind the scenes, there's a `FlipperPlugin` that has a `NativePlugin` reference.
Now your native plugin will call methods like (in the table case) `display.updateRows` instead of `super.updateRows()`
The reasons for this are:
* Testability: we can easily mock the display and assert output.
* Encapsulation: Previously, native plugins could call `mConnection.send(...)` and send completely unsupported messages to the desktop. Now they only have access to the display's public api, which is guaranteed to work.
I've also changed it so that on every row update, we send the latest table metadata along with it. This makes sure we can ensure that the right table schema is displayed for the current data.
QueryResponder interface also added, which will come in useful for queryable datasets.
Reviewed By: passy
Differential Revision: D14751885
fbshipit-source-id: ea0bbd25f7eaa60020f8866fe210d8bd1c22e90b
Summary: Searches for all shared pref files instead of only the package name by default
Reviewed By: xiphirx
Differential Revision: D14763787
fbshipit-source-id: a3b7dfe8db078ac4f55e236b1516ed2de668f8d2
Summary:
Changes sidebar from just a bucket of json, to be a list of SidebarSections.
Currently implemented sections are Json, and Toolbar.
Reviewed By: passy
Differential Revision: D14620095
fbshipit-source-id: 6ba57f6f1ad954373c0bbb79570d779787e5d4db
Summary:
Adds abstract classes NativePlugin and TableNativePlugin.
Extend NativePlugin to implement a new NativePlugin type/template.
TableNativePlugin is an example of that. Extend TableNativePlugin to add a particular instance of a table plugin. See the stacked diff for an example of that (newsfeed inspector).
I think I'm going to change the NativePlugin implementation so it uses composition instead of inheriting from FlipperPlugin, so that the concrete subclasses don't get access to the FlipperPlugin primitive methods like onConnect etc. But I don't mind shipping this as is and changing it separately.
Reviewed By: passy
Differential Revision: D14505912
fbshipit-source-id: 0534147112aaf4c5a41d2d3e08de855767b2a010
Summary: Use responder rather than allowing exception to propagate.
Reviewed By: jknoxville
Differential Revision: D14538883
fbshipit-source-id: 2774a2adfcee356e1853fa3bf3c01aa113181262
Summary:
I'm not sure why this was made an AssertionError in the first place
as this cannot be caught by a catch branch that only takes Exception-subclasses.
Given that this is expected behaviour in some cases, using an Error here
is rather dangerous.
This does not fix the underlying issue of the attached task, but fixes
the undesired crashing behaviour of the app.
Reviewed By: priteshrnandgaonkar
Differential Revision: D14598611
fbshipit-source-id: b024b35f07e16755d9a4ab2f4a1f75b10d1353fb
Summary: Umm, not sure why this is still around. Looks like an `hg mv` gone wrong.
Reviewed By: jknoxville
Differential Revision: D14639300
fbshipit-source-id: 511116808c4e8ae684fc21454853a482a2c36122
Summary: This diff makes the params final.
Reviewed By: jknoxville
Differential Revision: D14641443
fbshipit-source-id: 5c003bd09144a8d8dd848c04599388ace4baef4d
Summary:
as title; refactored getStateData for components so we can reuse
Depends on D14386744
Reviewed By: passy
Differential Revision: D14386910
fbshipit-source-id: 088605b920fd5b489d007e5daa69f4cd53fc3072
Summary:
as title.
Refactored the getPropsData from DebugComponentDescriptor and extracted it to separate class so we can use it for SectionComponentDescriptor as well.
Will follow up with adding state info
Reviewed By: passy
Differential Revision: D14386744
fbshipit-source-id: c6b9887aa9d0c8d2333e7e64fa0954e56b505e51