From fe4ad335d80960233022cc2cab79338f5d327582 Mon Sep 17 00:00:00 2001 From: Jeff Brown Date: Tue, 9 Jun 2015 18:26:31 -0700 Subject: [PATCH] Support 4K overlay displays. Bug: 18241736 Change-Id: Ibd479f2ea47ed49a507e7265bdce83afc214b19c --- core/java/android/app/Presentation.java | 4 +++- .../core/java/com/android/server/display/LogicalDisplay.java | 2 ++ .../com/android/server/display/OverlayDisplayAdapter.java | 4 +++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/core/java/android/app/Presentation.java b/core/java/android/app/Presentation.java index bb45abb462e00..e110dcbf1d2ad 100644 --- a/core/java/android/app/Presentation.java +++ b/core/java/android/app/Presentation.java @@ -213,7 +213,7 @@ public class Presentation extends Dialog { // dismiss the presentation immediately. This case is expected // to be rare but surprising, so we'll write a log message about it. if (!isConfigurationStillValid()) { - Log.i(TAG, "Presentation is being immediately dismissed because the " + Log.i(TAG, "Presentation is being dismissed because the " + "display metrics have changed since it was created."); mHandler.sendEmptyMessage(MSG_CANCEL); } @@ -274,6 +274,8 @@ public class Presentation extends Dialog { // is invalid and the application must recreate the presentation to get // a new context. if (!isConfigurationStillValid()) { + Log.i(TAG, "Presentation is being dismissed because the " + + "display metrics have changed since it was created."); cancel(); } } diff --git a/services/core/java/com/android/server/display/LogicalDisplay.java b/services/core/java/com/android/server/display/LogicalDisplay.java index 48237692c3a3f..6efc99a0c3420 100644 --- a/services/core/java/com/android/server/display/LogicalDisplay.java +++ b/services/core/java/com/android/server/display/LogicalDisplay.java @@ -133,6 +133,8 @@ final class LogicalDisplay { mInfo.overscanBottom = mOverrideDisplayInfo.overscanBottom; mInfo.rotation = mOverrideDisplayInfo.rotation; mInfo.logicalDensityDpi = mOverrideDisplayInfo.logicalDensityDpi; + mInfo.physicalXDpi = mOverrideDisplayInfo.physicalXDpi; + mInfo.physicalYDpi = mOverrideDisplayInfo.physicalYDpi; } } return mInfo; diff --git a/services/core/java/com/android/server/display/OverlayDisplayAdapter.java b/services/core/java/com/android/server/display/OverlayDisplayAdapter.java index 0462035041eff..0bddff076c186 100644 --- a/services/core/java/com/android/server/display/OverlayDisplayAdapter.java +++ b/services/core/java/com/android/server/display/OverlayDisplayAdapter.java @@ -174,9 +174,11 @@ final class OverlayDisplayAdapter extends DisplayAdapter { if (width >= MIN_WIDTH && width <= MAX_WIDTH && height >= MIN_HEIGHT && height <= MAX_HEIGHT && densityDpi >= DisplayMetrics.DENSITY_LOW - && densityDpi <= DisplayMetrics.DENSITY_XXHIGH) { + && densityDpi <= DisplayMetrics.DENSITY_XXXHIGH) { modes.add(new OverlayMode(width, height, densityDpi)); continue; + } else { + Slog.w(TAG, "Ignoring out-of-range overlay display mode: " + mode); } } catch (NumberFormatException ex) { }