summaryrefslogtreecommitdiff
path: root/packages/Shell/src
diff options
context:
space:
mode:
authorPaul Chang <changpa@google.com>2020-02-26 18:13:47 +0800
committerPaul Chang <changpa@google.com>2020-02-28 17:14:11 +0000
commit46ab985f41923f946057b2c3a6aa5688f022368c (patch)
treec2cb1fb329c64adc87902f9dea2ec8593ae51107 /packages/Shell/src
parent6c8486c771ba09b33c88d6176abc31a42f6daab0 (diff)
Clean up code of starting bug report
- Let screenshot fd be null if Shell doesn't want to take default screenshot when bug report is triggered. BUG:149525300 Test: Flash and test interactive/full bugreports generated using Shell, and Shell flow does not break during tests Change-Id: I50908af63d74ed66156354ec0b5a237f7131061a Merged-In: I50908af63d74ed66156354ec0b5a237f7131061a
Diffstat (limited to 'packages/Shell/src')
-rw-r--r--packages/Shell/src/com/android/shell/BugreportProgressService.java29
1 files changed, 21 insertions, 8 deletions
diff --git a/packages/Shell/src/com/android/shell/BugreportProgressService.java b/packages/Shell/src/com/android/shell/BugreportProgressService.java
index d126ee0955ea..c76b50bd4e9c 100644
--- a/packages/Shell/src/com/android/shell/BugreportProgressService.java
+++ b/packages/Shell/src/com/android/shell/BugreportProgressService.java
@@ -615,13 +615,16 @@ public class BugreportProgressService extends Service {
+ " bugreport parcel file descriptor is null.");
return;
}
- ParcelFileDescriptor screenshotFd = info.getDefaultScreenshotFd();
- if (screenshotFd == null) {
- Log.e(TAG, "Failed to start bugreport generation as"
- + " screenshot parcel file descriptor is null. Deleting bugreport file");
- FileUtils.closeQuietly(bugreportFd);
- info.bugreportFile.delete();
- return;
+ ParcelFileDescriptor screenshotFd = null;
+ if (isDefaultScreenshotRequired(bugreportType)) {
+ screenshotFd = info.getDefaultScreenshotFd();
+ if (screenshotFd == null) {
+ Log.e(TAG, "Failed to start bugreport generation as"
+ + " screenshot parcel file descriptor is null. Deleting bugreport file");
+ FileUtils.closeQuietly(bugreportFd);
+ info.bugreportFile.delete();
+ return;
+ }
}
mBugreportManager = (BugreportManager) mContext.getSystemService(
@@ -641,10 +644,20 @@ public class BugreportProgressService extends Service {
// The binder call didn't go through successfully, so need to close the fds.
// If the calls went through API takes ownership.
FileUtils.closeQuietly(bugreportFd);
- FileUtils.closeQuietly(screenshotFd);
+ if (screenshotFd != null) {
+ FileUtils.closeQuietly(screenshotFd);
+ }
}
}
+ private static boolean isDefaultScreenshotRequired(
+ @BugreportParams.BugreportMode int bugreportType) {
+ // Modify dumpstate#SetOptionsFromMode as well for default system screenshots.
+ // We override dumpstate for interactive bugreports.
+ return bugreportType == BugreportParams.BUGREPORT_MODE_FULL
+ || bugreportType == BugreportParams.BUGREPORT_MODE_WEAR;
+ }
+
private static ParcelFileDescriptor getFd(File file) {
try {
return ParcelFileDescriptor.open(file,