From eeb40b5944d4eb063b357d59ed7960d07f0e1c85 Mon Sep 17 00:00:00 2001 From: John Knox Date: Tue, 22 Jan 2019 10:48:01 -0800 Subject: [PATCH] Record success rate of screenshot capture Summary: Android and iOS each have a separate metric Reviewed By: passy Differential Revision: D13763758 fbshipit-source-id: f679360ec0ee008b434bfe12107ac6548d882a1f --- src/chrome/ScreenCaptureButtons.js | 42 +++++++++++++++++------------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/src/chrome/ScreenCaptureButtons.js b/src/chrome/ScreenCaptureButtons.js index 111d0bdc9..aa1b0016c 100644 --- a/src/chrome/ScreenCaptureButtons.js +++ b/src/chrome/ScreenCaptureButtons.js @@ -15,6 +15,7 @@ import adb from 'adbkit-fb'; import {exec, spawn} from 'child_process'; import {remote} from 'electron'; import path from 'path'; +import {recordSuccessMetric} from '../utils/metrics'; let CAPTURE_LOCATION = remote.app.getPath('desktop'); try { @@ -125,26 +126,31 @@ class ScreenCaptureButtons extends Component { const {selectedDevice} = this.props; if (selectedDevice instanceof AndroidDevice) { - return selectedDevice.adb - .screencap(selectedDevice.serial) - .then(writePngStreamToFile) - .then(openFile) - .catch(console.error); + return recordSuccessMetric( + selectedDevice.adb + .screencap(selectedDevice.serial) + .then(writePngStreamToFile) + .then(openFile), + 'captureScreenshotAndroid', + ).catch(console.error); } else if (selectedDevice instanceof IOSDevice) { const screenshotPath = path.join(CAPTURE_LOCATION, getFileName('png')); - return new Promise((resolve, reject) => { - exec( - `xcrun simctl io booted screenshot "${screenshotPath}"`, - async (err, data) => { - if (err) { - reject(err); - } else { - openFile(screenshotPath); - resolve(); - } - }, - ); - }); + return recordSuccessMetric( + new Promise((resolve, reject) => { + exec( + `xcrun simctl io booted screenshot "${screenshotPath}"`, + async (err, data) => { + if (err) { + reject(err); + } else { + openFile(screenshotPath); + resolve(); + } + }, + ); + }), + 'captureScreenshotIos', + ); } };