[DO NOT MERGE] Catch RuntimeException from DisplayManager am: 39745d829c
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13566539
MUST ONLY BE SUBMITTED BY AUTOMERGER
Change-Id: Iddbaad3b57389deed966782c4e63422de42ab080
diff --git a/media/java/android/media/MediaRouter.java b/media/java/android/media/MediaRouter.java
index 1a367d9..f9785e9 100644
--- a/media/java/android/media/MediaRouter.java
+++ b/media/java/android/media/MediaRouter.java
@@ -381,7 +381,12 @@
}
public Display[] getAllPresentationDisplays() {
- return mDisplayService.getDisplays(DisplayManager.DISPLAY_CATEGORY_PRESENTATION);
+ try {
+ return mDisplayService.getDisplays(DisplayManager.DISPLAY_CATEGORY_PRESENTATION);
+ } catch (RuntimeException ex) {
+ Log.e(TAG, "Unable to get displays.", ex);
+ return null;
+ }
}
private void updatePresentationDisplays(int changedDisplayId) {
@@ -2085,6 +2090,9 @@
private Display choosePresentationDisplay() {
if ((mSupportedTypes & ROUTE_TYPE_LIVE_VIDEO) != 0) {
Display[] displays = sStatic.getAllPresentationDisplays();
+ if (displays == null || displays.length == 0) {
+ return null;
+ }
// Ensure that the specified display is valid for presentations.
// This check will normally disallow the default display unless it was