Summary:
Queries xcode-select on ios dispatcher startup, to see if it's installed.
If it is, carry on with the ios device tracking, if not, don't bother.
This should stop it from emitting errors trying to track devices when things aren't installed.
I think it should also stop those install prompts from popping up.
Sets it in app state so we can tell the user about it, and maybe gate some other things too.
Reviewed By: passy
Differential Revision: D17830696
fbshipit-source-id: 960d09a9c5267afabf5e5e222379a0a7ed2cc444
Summary: Property `device` on Clients for archived device never resolve. As it gets resolved when `addConnection` is called which happens for real non-offline devices. To get around this, I have added an argument to the constructor of the Client, as for offline case we can construct the device before client and can pass it as an argument.
Reviewed By: jknoxville
Differential Revision: D17831261
fbshipit-source-id: a14fb0b65343cccac731077e983026388611d323
Summary:
This diff sends flipper trace as a separate message so that the form can update the state which can be used for validation. If the user doesn't click on "Flipper Trace" then it will show a validation error.
WWW side changes are here D17810526. Merge this diff only when www is landed.
Reviewed By: jknoxville
Differential Revision: D17812023
fbshipit-source-id: 35f17f9e58fc08cde3928072dc66758b1c507bcb
Summary:
A bit ugly to have test-only code in prod logic,
but we don't need any of the logger logic in tests
and by pulling out the `StubLogger`, we can avoid
loading Electron during tests.
Reviewed By: jknoxville
Differential Revision: D17808479
fbshipit-source-id: d2295d7bbca2f09c3f23389ad9443648757d8d03
Summary: You can do this in VSCode by selecting the lines, Cmd-Shift-P, "Sort Lines Ascending".
Reviewed By: passy
Differential Revision: D17710137
fbshipit-source-id: 3cef628b24dd86d4e307bd30761049c30cbc8f68
Summary:
As discussed on an earlier diff, the percentage alone
is a confusing indicator as the number of items to be
serialised can grow over time, causing the percentage
to go down.
This shows the raw numbers in addition to the percentage.
Reviewed By: priteshrnandgaonkar
Differential Revision: D17762477
fbshipit-source-id: 8911b520b2ea74542bc64e6a6662bed7d4f81860
Summary: As per title, this diff makes the Mobile config plugin exportable. This involves moving the important property from `State` to `PersistedState`. Also had to implement the `exportPersistedState` function to fetch the experiments information for the Universes, configs and gatekeeper information.
Reviewed By: danielbuechele
Differential Revision: D17633986
fbshipit-source-id: 604225ba47112620bee0a6c704416b3ac350de9c
Summary:
Gets flipper to restart when settings are updated.
In theory most settings should not need this, but the current only one does (android home) because the path is set at startup only, and this modifies the input to it.
It would be a bit awkward to modify the path more than once, but doable.
Reviewed By: passy
Differential Revision: D17737582
fbshipit-source-id: d4669dcc7acc95469f15783fc6a5ba6794750234
Summary: A settings screen has been added where android home can be set. This changes the downstream code to use this value rather than the `env.PATH` variable.
Reviewed By: passy
Differential Revision: D17713288
fbshipit-source-id: 51551652c9c2f468e1117c18785123348e4b4576
Summary:
Moves the settings state from electron local storage into a json file in the users configured config location.
Unless modified by the user, this will usually be `~/.config/flipper/settings.json`
Settings will now persist across re-installs, and can now be easily inspected and backed up.
Reviewed By: passy
Differential Revision: D17712687
fbshipit-source-id: 1e778063e41d0a1a86145817b9797bf0458121da
Summary:
This will be used for the settings file.
It results in normal JSON, as opposed to json where the value of every key is an escaped string.
Reviewed By: passy
Differential Revision: D17712688
fbshipit-source-id: d37ed93707c7352719fa72a05bf51953611f52c0
Summary:
Adds a simple UI for editing settings, a reducer and persistance config for the data.
These values aren't yet used for anything.
Reviewed By: passy
Differential Revision: D17684490
fbshipit-source-id: e76ac43ffa17d3606e59f4a1ccb940e8d9fbd9e8
Summary:
Add some usage and failure rate stats to the PluginInstaller. Small
typo fix and added a helper to the metrics utils to make simple
usage tracking a little more intuitive.
Reviewed By: jknoxville
Differential Revision: D17760511
fbshipit-source-id: 957031d428f3124435925415619b1555a0c2dc2a
Summary: This diff passes the idler and statusUpdate arguments to the export persisted state, as it is being used in the MobileConfig's export function
Reviewed By: passy
Differential Revision: D17715815
fbshipit-source-id: 98a0f0f5950254de2139c4aaa52cb73401c86c3c
Summary:
The build-release script was using different logic to construct the local url, than the lookup file.
Changed so they both use the same function.
And unit tests added.
Reviewed By: passy
Differential Revision: D17602476
fbshipit-source-id: 6aaedd58eafb2cc59adcdc0ebb4dd329bf99c33a
Summary:
I noticed this didn't have the node prefix so isn't run during `yarn test`.
Now it runs and passes :)
Also checked `ls **/__tests__/*.js` for any similar files and found none.
Reviewed By: passy
Differential Revision: D17601931
fbshipit-source-id: cf45a0ba578d5d0000ba1d25ae4fb26a4f7fc7af
Summary: This diff adds an initial support to prefill the app information and the revision information. This diff also copies the workplace url in the clipboard.
Reviewed By: passy
Differential Revision: D16990925
fbshipit-source-id: 4f354e52de5fea07c2ea36336761d6963c27ef66
Summary:
This is useful for system apps. The files are owned by root, but they need to be readable by the app. There's nothing secret in these files, so it's not a problem.
This doesn't address all issues with system apps, e.g. https://github.com/facebook/flipper/issues/536 but does go some way towards it.
I was able to get a system app to connect successfully, but there may be different states that they can be in, so I don't think it's a fix all.
Reviewed By: passy
Differential Revision: D17499438
fbshipit-source-id: ab82583b5d607f75ff4578ab9ac2baf9d74241f8
Summary: `idb file pull` no longer accepts a directory name as a destination to pull a file to. This passes the destination file name instead.
Reviewed By: passy
Differential Revision: D17420100
fbshipit-source-id: 9e2f5bfda3733832fc71944f1dbbdb7ac0f08acb
Summary:
- Take device id retrieved by matching CSR to the given CSR destination
- Otherwise, use the previous way
Note:
- Backward compatibility will be fixed next diff
Reviewed By: jknoxville
Differential Revision: D17346422
fbshipit-source-id: 59b2fb9849373db1ba930dde702194c5fb201678
Summary: Finally we are able to switch back from our adbkit-fb fork to the original `adbkit`. Replacing all imports
Reviewed By: jknoxville
Differential Revision: D17343236
fbshipit-source-id: e6dd328f1a956544e8be2ab768aa270972463c6b
Summary: This diff was a joy to draft.
Reviewed By: jknoxville
Differential Revision: D17344676
fbshipit-source-id: 0694d0393fa243edef61408ecfee92912fbbfa32
Summary:
Icon names including the -outline suffix get stripped out so the local path becomes the filled variant by default.
But it's only observable in release builds, because they are the only ones that use local icons.
This should fix that by keeping the variant in the local icon path as well.
Reviewed By: danielbuechele
Differential Revision: D17314646
fbshipit-source-id: b8402d85b1cc690caef7870194e60f22d17dca05
Summary:
This diff solves the problem where the export for the graphql plugin was super super super sloooooowwww...... The reason being that the graphql plugin had chunky graphql responses which were json blob which was being serialized by our custom serializer. Instead of serializing those with custom serializer we can directly serialize them as they won't have any map's, sets, classes etc.
This diff adds the two static functions on the plugin which will provide the serialized and deserialized object for the persistedstate. As the plugin knows the structure of its state it can optimize the serialization and deserialization of its data.
This change solves the slow export issue and makes it blazing fast..... 🏎
Bug:
{F206550514}
Reviewed By: danielbuechele
Differential Revision: D17166054
fbshipit-source-id: 058b903c03c12c9194702162c46763ef5b5e7283
Summary: It appears the certificate provider is generating a deviceId which is then sent down to the flipper client to store (under CONNECTION_CONFIG_FILE). For MacOS, this ends up being "unknown". Yet when we attempt to connect to the flipper app, it expects empty string. This diff ensures that for MacOS, we're not sending down "unknown" for the client to store into its config file.
Reviewed By: danielbuechele
Differential Revision: D17190130
fbshipit-source-id: e0d9825f1f0330a03bcb3cf8d606d5bd9fcc1d7f
Summary: It looks a lot better now, but the input is only single line, so entering more than one line would not be good right now.
Reviewed By: danielbuechele
Differential Revision: D17210091
fbshipit-source-id: 9313b6a67731cfa944394962cdc09be915a07720
Summary:
Yesterday I saw someone try to open the xcode executable with the File > Open function.
This made me realise it's not clear what this is for, and you might think it can open all kinds of things.
Reviewed By: danielbuechele
Differential Revision: D17225496
fbshipit-source-id: 893360a1f450a8db25be34fce6c288e8db8f9626
Summary: You need to use a type guard when narrowing types in a filter.
Reviewed By: danielbuechele
Differential Revision: D17163782
fbshipit-source-id: aa78bdd392653ebf1080a04e62e131b607e5181b
Summary:
This converts the index file to TypeScript which is used as an export for all plugins. Alongside, I had to fix a couple of errors in various files to make sure everything works correctly.
For plugins using flow, we define an interface which uses the type definition for FlipperPlugin and types all UI components as `any`.
Reviewed By: passy
Differential Revision: D16936890
fbshipit-source-id: dacd9a63a82b9f0bbb530b06072186874cba7b6f
Summary:
I have moved the screenshot functions from ScreenCaptureButtons to the Device classes. I have slightly rewritten them so that they return a Promise which resolves to a Buffer. The Buffer can then be saved to a file or converted to a data Blob.
I have removed streaming and simply loaded the image into memory. Once the image is in memory it can be manipulated for various tasks i.e. written to a file, or displayed in the app.
iOS screenshots had to be rewritten. I now save the image to a temp folder, load it into the apps memory, and then remove the temp image.
Reviewed By: jknoxville
Differential Revision: D16939901
fbshipit-source-id: 3e39a5aeda8d48829ac5a8ff912a98f110341c07
Summary: Use the new multi-platform update endpoint to indicate when new updates are available for Linux or Windows.
Reviewed By: danielbuechele
Differential Revision: D16939899
fbshipit-source-id: 11c1dc0d4fd19362a1163c613a7b7116c5edf996
Summary:
Convert serialization to typescript.
I tried to type the deserialize function but don't know enough about the expected format to be able to tell what the types should be.
Reviewed By: passy
Differential Revision: D16785945
fbshipit-source-id: 45de7ee1c8972314a52abcf20d428ba44f031a00