diff options
| author | 2022-06-08 03:36:29 +0000 | |
|---|---|---|
| committer | 2022-06-08 03:52:33 +0000 | |
| commit | 67bb207b7e5d7ceb7b660e50acdf71d1bb2efc97 (patch) | |
| tree | 5d5b4f1897bde5271778beb0e28d8441838c7001 | |
| parent | 75d2de30f25e7e349840fd8b3f41eddb3f587e95 (diff) | |
Query the display status from DisplayInfo
During the resolution changes, the display status in DisplayMetrics is
obsolete during the resolution changes. To get the accurate display
status, we query the status from DisplayInfo, instead of DisplayMetrics.
Bug: 233698163
Test: Switch resolution with customized density
Change-Id: I360aeecab0feaa5d21cc7a5679ff50e735ed8043
| -rw-r--r-- | packages/SettingsLib/src/com/android/settingslib/display/DisplayDensityUtils.java | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/display/DisplayDensityUtils.java b/packages/SettingsLib/src/com/android/settingslib/display/DisplayDensityUtils.java index 8b34cf3d624f..44a37f4ccaca 100644 --- a/packages/SettingsLib/src/com/android/settingslib/display/DisplayDensityUtils.java +++ b/packages/SettingsLib/src/com/android/settingslib/display/DisplayDensityUtils.java @@ -25,6 +25,7 @@ import android.util.DisplayMetrics; import android.util.Log; import android.util.MathUtils; import android.view.Display; +import android.view.DisplayInfo; import android.view.IWindowManager; import android.view.WindowManagerGlobal; @@ -87,14 +88,14 @@ public class DisplayDensityUtils { } final Resources res = context.getResources(); - final DisplayMetrics metrics = new DisplayMetrics(); - context.getDisplayNoVerify().getRealMetrics(metrics); + DisplayInfo info = new DisplayInfo(); + context.getDisplayNoVerify().getDisplayInfo(info); - final int currentDensity = metrics.densityDpi; + final int currentDensity = info.logicalDensityDpi; int currentDensityIndex = -1; // Compute number of "larger" and "smaller" scales for this display. - final int minDimensionPx = Math.min(metrics.widthPixels, metrics.heightPixels); + final int minDimensionPx = Math.min(info.logicalWidth, info.logicalHeight); final int maxDensity = DisplayMetrics.DENSITY_MEDIUM * minDimensionPx / MIN_DIMENSION_DP; final float maxScaleDimen = context.getResources().getFraction( R.fraction.display_density_max_scale, 1, 1); |