Commit Graph

16 Commits

Author SHA1 Message Date
Pascal Hartig
60dab0d59e Improve screen capture experience
Summary:
Some improvements on the previous diff that were too much for just comments.

- Remove an unnecessary `touch` that I commented on in the previous diff.
- Ensure that the recording button is not set to "recording" if there's an error during the setup.
- More reliable way of checking the file size on the device before pulling.

Still not done: Show the error more prominently in the UI. Out of scope for this but if we could come up with a design for showing this (perhaps in place of the recording button) when something went wrong, that would be more obvious than having the error caret show up at the top of the screen.

Reviewed By: jknoxville

Differential Revision: D19723627

fbshipit-source-id: 20babcc1482e5a9ac829ff6d6ae7a731a3454fa0
2020-02-05 10:48:07 -08:00
Pritesh Nandgaonkar
4efc2b8400 Back out "Throw error and let user know situation when 'adb shell screenrecord' make error."
Summary:
Original commit changeset: 5caf9df02c95

It backs out the diff as it broke the video recording button in support form.

Bug:

{F227855063}

Reviewed By: passy

Differential Revision: D19742486

fbshipit-source-id: 4a275e6ead919b4f4ed94889545a650c101f89b7
2020-02-05 07:09:55 -08:00
Chanju Kim
959457d1e7 Throw error and let user know situation when 'adb shell screenrecord' make error.
Summary:
Backgrouds
- For screen recording Flipper use 'adb shell scrrenrecord' and 'adb pull'.
- 'screenrecord' make error and doens't works for some android devices and AOS versions.
- For example, "--bugreport" option doesn't work old version of AOS.
- We can not control 'screenrecord' command yet.
- It is better let user know the situation early.

<AS-IS>
When 'screenrecord' emit error:
- Noting happened for users.
- Result of screen record file is just empty. (pull command create the file)

<TO-BE>
When 'screenrecord' emit error:
- Let users know 'screenrecord' is not working properly.

Reviewed By: passy

Differential Revision: D19643060

fbshipit-source-id: 5caf9df02c956283f371c50c1735060be2158fb2
2020-02-04 08:11:37 -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
Pascal Hartig
c6d5b8ccb5 Fix screen recording on Android
Summary:
There were two issues with the previous approach:

1) We didn't block the shell process, so we would immediately
    start pulling the video from the device as soon as we **started**
    recording it. This meant, you'd usually get the previous recording
    or just an empty file.
2) The stop side doesn't know when it's actually safe to start displaying
    the video as pulling takes time. So we need access to the process
    promise there.

Reviewed By: jknoxville

Differential Revision: D17687827

fbshipit-source-id: 6ad5da52442f1888dd491b2a4c7f7a6b5a7885dd
2019-10-01 11:23:30 -07:00
Daniel Büchele
e33f72bb21 use adbkit instead of adbkit-fb
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
2019-09-13 05:28:31 -07:00
Daniel Büchele
b3de081f68 clear logs
Summary:
- clear logs using executeShell
- remove unused spawnShell

Reviewed By: jknoxville

Differential Revision: D17343235

fbshipit-source-id: 4353b2ebc00e35b31e815e405534a78b65a3eabb
2019-09-13 05:28:30 -07:00
Daniel Büchele
4e7cf077b8 adbkit typing
Summary: Adding proper types for adbkit (extracted from their documentation)

Reviewed By: passy

Differential Revision: D17342184

fbshipit-source-id: da0fc0264961ca3a0fa775ab5165d20872042eb8
2019-09-13 05:28:30 -07:00
Daniel Büchele
01be3dc5d1 refactor screen recording
Summary:
moving logic for screen recordings to the respective devices, instead of having it in the button component.
This is part of my wider effort to unify our use of adb/adbkit and upgrade to the latest version of adbkit.

Reviewed By: passy

Differential Revision: D17318702

fbshipit-source-id: cff4459047d7a197ed6cb8ee8c290b4eaab41479
2019-09-13 05:28:29 -07:00
Pascal Hartig
64373aac0a Fix formatting
Summary: Hmm, how did this land despite the formatting error?

Reviewed By: jknoxville

Differential Revision: D17342057

fbshipit-source-id: 514be1548feb024cc107139ac962b0d69ff42198
2019-09-12 08:03:13 -07:00
Pascal Hartig
4f6bae7cbf Make AndroidDevice strict
Summary:
Relies heavily on types (not) defined in other modules,
so right now it's mostly sprinkling more `any`s in.

My type declaration is based on `dts-gen` output and some
manual fixes. This is the same level as the old flow-typed
definition we had.

Reviewed By: jknoxville

Differential Revision: D17282739

fbshipit-source-id: 0e5015d3b61044615a03c50fefade908041310a8
2019-09-10 10:33:24 -07:00
Pascal Hartig
b19f08ba54 Fix promisify-child-process use
Summary: Per title. Somehow both typecheck, but importing the module like this doesn't work.

Reviewed By: jknoxville

Differential Revision: D17285507

fbshipit-source-id: 40a38db5dfb52213e0407f8bda83f2ebad5c50c7
2019-09-10 09:43:44 -07:00
Pascal Hartig
b90200e2aa Replace child-process promise version
Summary:
This one is in TS, so we get types for free.
`promisify` makes it rather awkward to work with overloaded
functions like `spawn`, so there's still value in having
a proper library for this.

Reviewed By: jknoxville

Differential Revision: D17204471

fbshipit-source-id: 3d07edfe2bb8c1e4c4f3134b53a0c4a0d9be383b
2019-09-09 07:04:54 -07:00
Pascal Hartig
4d7e776672 Refactor BaseDevice constructor
Summary: OS must always be defined.

Reviewed By: jknoxville

Differential Revision: D17204398

fbshipit-source-id: 0d84111c382af623843a41360bcb472394daf3f1
2019-09-09 07:04:54 -07:00
Benjamin Elo
7def9bb681 Moved screenshot functions into Device's class.
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
2019-08-22 05:28:33 -07:00
Pritesh Nandgaonkar
eb26a74327 Migrate AndroidDevice from js to tsx
Summary: As per the title

Reviewed By: jknoxville

Differential Revision: D16667269

fbshipit-source-id: d213f4ebacf8050ae55a8e3268909da8535f2d93
2019-08-09 07:56:53 -07:00