Summary: In a diff down the stack I introduced sending of info/warn/error logs to Scuba. Here I'm just changing level of all connectivity-related logging to "info" as they often required for investigations.
Reviewed By: mweststrate
Differential Revision: D31532770
fbshipit-source-id: 956d6712918291579b3beb12cb91ab69ce1e3859
Summary:
Promisify leads to weird types and sometimes unexpected runtime behaviour. Replacing it with the dep we use everywhere.
It's just really annoying that `stdout` is here explicitly `| null` which isn't the case in the default types.
Reviewed By: timur-valiev
Differential Revision: D31278303
fbshipit-source-id: eadbc49b287704e71a5ecba0d9a311eac91dc6f8
Summary:
Simplifies the logic by only using idb when available to query *both* simulators and physical devices.
Changelog: Prefer idb for device listing when available.
Reviewed By: mweststrate
Differential Revision: D31271539
fbshipit-source-id: ac5b73ca5b00b7707bf87cd4d3a6af6e0c0ae214
Summary:
This stack takes care of handling care of moving all device interactions over the (possible) async channel FlipperServer. The FlipperServer interface (see previous diff) allows listening to specific server events using `on`, and emit commands to be executed by the server by using `exec` (e.g. `exec('take-screenshot', serial) => Promise<buffer>`).
FlipperServerImpl implements this interface on the server side.
The device implementations are split as follows
```
server / backend process:
ServerDevice
- iOSDevice
- AndroidDevice
- MetroDevice
- DummyDevice
- Mac/Windows Device
frontend / ui:
BaseDevice: a normal connected, device, implements device apis as they already existed
- ArchivedDevice (note that this doesn't have a server counterpart)
- TestDevice (for unit tests, with stubbed backend communication)
```
All features of devices are for simplicity unified (since the deviations are small), where specific device types might not implement certain features like taking screenshots or running shell commands.
To avoid making this diff unnecessarily big, some open Todo's will be addressed later in this stack, and it shouldn't be landed alone.
Reviewed By: timur-valiev
Differential Revision: D30909346
fbshipit-source-id: cce0bee94fdd5db59bebe3577a6084219a038719
Summary:
When connecting both to an iOS emulator and physical device, the emulator devices would continuesly be replaced, and Flipper would print the warning
`Tried to replace still connected device XXX with a new instance`
Fixed the logical mistake that causes it. Not sure if this caused any actual bugs, but at least it was incorrect.
Reviewed By: lblasa
Differential Revision: D31015451
fbshipit-source-id: 32dd29043e9dc48357fdbf68cde930d3be11419a
Summary: We're currently getting errors for every duplicate key and can't easily unify them, so we're adding the additional information to a warning instead.
Reviewed By: mweststrate
Differential Revision: D30337821
fbshipit-source-id: db9dc44d7d3424de169bed9b4447b482e411eb19
Summary:
Moved all logic per device type we support to its own dir, including tools and utilities around it, which makes it easier to consolidate logic and decouple in turn per device type.
Per type, all logic can be found in
`server/devices/(desktop|metro|android|ios|webapp)`
Reviewed By: timur-valiev
Differential Revision: D30277817
fbshipit-source-id: 2b5339c363d5d31ceeba07cec03826fc67cf3748