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
This commit is contained in:
Pritesh Nandgaonkar
2020-02-05 07:08:18 -08:00
committed by Facebook Github Bot
parent 1e11d63ba8
commit 4efc2b8400
2 changed files with 11 additions and 43 deletions

View File

@@ -102,8 +102,10 @@ class ScreenCaptureButtons extends Component<Props, State> {
return;
}
const videoPath = path.join(CAPTURE_LOCATION, getFileName('mp4'));
await selectedDevice.startScreenCapture(videoPath).catch(e => {
console.error(e);
await selectedDevice.startScreenCapture(videoPath);
this.setState({
recording: true,
});
};
@@ -112,23 +114,18 @@ class ScreenCaptureButtons extends Component<Props, State> {
if (!selectedDevice) {
return;
}
const path = await selectedDevice.stopScreenCapture().catch(e => {
console.error(e);
const path = await selectedDevice.stopScreenCapture();
this.setState({
recording: false,
});
path ? openFile(path) : 0;
openFile(path);
};
onRecordingClicked = () => {
if (this.state.recording) {
this.stopRecording();
this.setState({
recording: false,
});
} else {
this.startRecording();
this.setState({
recording: true,
});
}
};

View File

@@ -132,21 +132,6 @@ export default class AndroidDevice extends BaseDevice {
}
}
private async isValidFile(filePath: string): Promise<boolean> {
const fileSize = await this.adb
.shell(this.serial, `touch "${filePath}" && ls -l "${filePath}"`)
.then(adb.util.readAll)
.then((output: Buffer) =>
output
.toString()
.trim()
.split(' '),
)
.then(output => Number(output[5]));
return fileSize > 0;
}
async startScreenCapture(destination: string) {
await this.executeShell(
`mkdir -p "${DEVICE_RECORDING_DIR}" && echo -n > "${DEVICE_RECORDING_DIR}/.nomedia"`,
@@ -155,29 +140,15 @@ export default class AndroidDevice extends BaseDevice {
this.recordingProcess = this.adb
.shell(this.serial, `screenrecord --bugreport "${recordingLocation}"`)
.then(adb.util.readAll)
.then(
output =>
new Promise(async (resolve, _) => {
const isValid = await this.isValidFile(recordingLocation);
if (!isValid) {
const outputMessage = output.toString().trim();
// throw error immediately
throw new Error(
'Recording was not properly started: \n' + outputMessage,
);
}
resolve();
}),
)
.then(
_ =>
new Promise((resolve, reject) => {
new Promise((resolve, reject) =>
this.adb.pull(this.serial, recordingLocation).then(stream => {
stream.on('end', resolve);
stream.on('error', reject);
stream.pipe(createWriteStream(destination));
});
}),
),
)
.then(_ => destination);
}