diff --git a/packages/Shell/src/com/android/shell/BugreportProgressService.java b/packages/Shell/src/com/android/shell/BugreportProgressService.java index 0ae00e1ac8b5a..0278294b6ea54 100644 --- a/packages/Shell/src/com/android/shell/BugreportProgressService.java +++ b/packages/Shell/src/com/android/shell/BugreportProgressService.java @@ -617,7 +617,7 @@ public class BugreportProgressService extends Service { return; } ParcelFileDescriptor screenshotFd = null; - if (isDefaultScreenshotRequired(bugreportType)) { + if (isDefaultScreenshotRequired(bugreportType, /* hasScreenshotButton= */ !mIsTv)) { screenshotFd = info.getDefaultScreenshotFd(); if (screenshotFd == null) { Log.e(TAG, "Failed to start bugreport generation as" @@ -652,10 +652,12 @@ public class BugreportProgressService extends Service { } private static boolean isDefaultScreenshotRequired( - @BugreportParams.BugreportMode int bugreportType) { + @BugreportParams.BugreportMode int bugreportType, + boolean hasScreenshotButton) { // Modify dumpstate#SetOptionsFromMode as well for default system screenshots. - // We override dumpstate for interactive bugreports. - return bugreportType == BugreportParams.BUGREPORT_MODE_FULL + // We override dumpstate for interactive bugreports with a screenshot button. + return (bugreportType == BugreportParams.BUGREPORT_MODE_INTERACTIVE && !hasScreenshotButton) + || bugreportType == BugreportParams.BUGREPORT_MODE_FULL || bugreportType == BugreportParams.BUGREPORT_MODE_WEAR; } diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index 1e1256547f2ca..791a857c181be 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -692,7 +692,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { accessibilityShortcutActivated(); break; case MSG_BUGREPORT_TV: - requestFullBugreportOrLaunchHandlerApp(); + requestBugreportForTv(); break; case MSG_ACCESSIBILITY_TV: if (mAccessibilityShortcutController.isAccessibilityShortcutAvailable(false)) { @@ -3030,13 +3030,13 @@ public class PhoneWindowManager implements WindowManagerPolicy { return mAccessibilityTvScheduled; } - private void requestFullBugreportOrLaunchHandlerApp() { + private void requestBugreportForTv() { if ("1".equals(SystemProperties.get("ro.debuggable")) || Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0) == 1) { try { if (!ActivityManager.getService().launchBugReportHandlerApp()) { - ActivityManager.getService().requestFullBugReport(); + ActivityManager.getService().requestInteractiveBugReport(); } } catch (RemoteException e) { Slog.e(TAG, "Error taking bugreport", e);