diff options
Diffstat (limited to 'services')
5 files changed, 12 insertions, 8 deletions
diff --git a/services/java/com/android/server/display/DisplayDeviceInfo.java b/services/java/com/android/server/display/DisplayDeviceInfo.java index c28b9bb..c60c2e9 100644 --- a/services/java/com/android/server/display/DisplayDeviceInfo.java +++ b/services/java/com/android/server/display/DisplayDeviceInfo.java @@ -33,7 +33,7 @@ public final class DisplayDeviceInfo { public int height; public float refreshRate; - public float density; + public int densityDpi; public float xDpi; public float yDpi; @@ -41,7 +41,7 @@ public final class DisplayDeviceInfo { width = other.width; height = other.height; refreshRate = other.refreshRate; - density = other.density; + densityDpi = other.densityDpi; xDpi = other.xDpi; yDpi = other.yDpi; } @@ -49,6 +49,6 @@ public final class DisplayDeviceInfo { @Override public String toString() { return width + " x " + height + ", " + refreshRate + " fps, " - + "density " + density + ", " + xDpi + " x " + yDpi + " dpi"; + + "density " + densityDpi + ", " + xDpi + " x " + yDpi + " dpi"; } } diff --git a/services/java/com/android/server/display/DisplayManagerService.java b/services/java/com/android/server/display/DisplayManagerService.java index 082d28f..e714064 100644 --- a/services/java/com/android/server/display/DisplayManagerService.java +++ b/services/java/com/android/server/display/DisplayManagerService.java @@ -144,7 +144,7 @@ public final class DisplayManagerService extends IDisplayManager.Stub { mDefaultDisplayInfo.logicalHeight = mDefaultDisplayDeviceInfo.height; mDefaultDisplayInfo.rotation = Surface.ROTATION_0; mDefaultDisplayInfo.refreshRate = mDefaultDisplayDeviceInfo.refreshRate; - mDefaultDisplayInfo.logicalDensity = mDefaultDisplayDeviceInfo.density; + mDefaultDisplayInfo.logicalDensityDpi = mDefaultDisplayDeviceInfo.densityDpi; mDefaultDisplayInfo.physicalXDpi = mDefaultDisplayDeviceInfo.xDpi; mDefaultDisplayInfo.physicalYDpi = mDefaultDisplayDeviceInfo.yDpi; mDefaultDisplayInfo.smallestNominalAppWidth = mDefaultDisplayDeviceInfo.width; diff --git a/services/java/com/android/server/display/HeadlessDisplayAdapter.java b/services/java/com/android/server/display/HeadlessDisplayAdapter.java index d2a70d2..cd18c37 100644 --- a/services/java/com/android/server/display/HeadlessDisplayAdapter.java +++ b/services/java/com/android/server/display/HeadlessDisplayAdapter.java @@ -16,6 +16,8 @@ package com.android.server.display; +import android.util.DisplayMetrics; + /** * Provides a fake default display for headless systems. */ @@ -26,7 +28,7 @@ public final class HeadlessDisplayAdapter extends DisplayAdapter { outInfo.width = 640; outInfo.height = 480; outInfo.refreshRate = 60; - outInfo.density = 1.0f; + outInfo.densityDpi = DisplayMetrics.DENSITY_DEFAULT; outInfo.xDpi = 160; outInfo.yDpi = 160; } diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java index d0aea12..1283da3 100755 --- a/services/java/com/android/server/wm/WindowManagerService.java +++ b/services/java/com/android/server/wm/WindowManagerService.java @@ -6546,6 +6546,7 @@ public class WindowManagerService extends IWindowManager.Stub config.compatScreenWidthDp = (int)(config.screenWidthDp / mCompatibleScreenScale); config.compatScreenHeightDp = (int)(config.screenHeightDp / mCompatibleScreenScale); config.compatSmallestScreenWidthDp = computeCompatSmallestWidth(rotated, dm, dw, dh); + config.densityDpi = mDisplayMetrics.densityDpi; // Update the configuration based on available input devices, lid switch, // and platform configuration. diff --git a/services/jni/com_android_server_display_SurfaceFlingerDisplayAdapter.cpp b/services/jni/com_android_server_display_SurfaceFlingerDisplayAdapter.cpp index e636eed..05a74d3 100644 --- a/services/jni/com_android_server_display_SurfaceFlingerDisplayAdapter.cpp +++ b/services/jni/com_android_server_display_SurfaceFlingerDisplayAdapter.cpp @@ -31,7 +31,7 @@ static struct { jfieldID width; jfieldID height; jfieldID refreshRate; - jfieldID density; + jfieldID densityDpi; jfieldID xDpi; jfieldID yDpi; } gDisplayDeviceInfoClassInfo; @@ -49,7 +49,8 @@ static void nativeGetDefaultDisplayDeviceInfo(JNIEnv* env, jclass clazz, jobject env->SetIntField(infoObj, gDisplayDeviceInfoClassInfo.width, info.w); env->SetIntField(infoObj, gDisplayDeviceInfoClassInfo.height, info.h); env->SetFloatField(infoObj, gDisplayDeviceInfoClassInfo.refreshRate, info.fps); - env->SetFloatField(infoObj, gDisplayDeviceInfoClassInfo.density, info.density); + env->SetIntField(infoObj, gDisplayDeviceInfoClassInfo.densityDpi, + (jint)((info.density*160) + .5f)); env->SetFloatField(infoObj, gDisplayDeviceInfoClassInfo.xDpi, info.xdpi); env->SetFloatField(infoObj, gDisplayDeviceInfoClassInfo.yDpi, info.ydpi); } @@ -81,7 +82,7 @@ int register_android_server_display_SurfaceFlingerDisplayAdapter(JNIEnv* env) { GET_FIELD_ID(gDisplayDeviceInfoClassInfo.width, clazz, "width", "I"); GET_FIELD_ID(gDisplayDeviceInfoClassInfo.height, clazz, "height", "I"); GET_FIELD_ID(gDisplayDeviceInfoClassInfo.refreshRate, clazz, "refreshRate", "F"); - GET_FIELD_ID(gDisplayDeviceInfoClassInfo.density, clazz, "density", "F"); + GET_FIELD_ID(gDisplayDeviceInfoClassInfo.densityDpi, clazz, "densityDpi", "I"); GET_FIELD_ID(gDisplayDeviceInfoClassInfo.xDpi, clazz, "xDpi", "F"); GET_FIELD_ID(gDisplayDeviceInfoClassInfo.yDpi, clazz, "yDpi", "F"); return 0; |