summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
Diffstat (limited to 'services')
-rw-r--r--services/java/com/android/server/display/DisplayDeviceInfo.java6
-rw-r--r--services/java/com/android/server/display/DisplayManagerService.java2
-rw-r--r--services/java/com/android/server/display/HeadlessDisplayAdapter.java4
-rwxr-xr-xservices/java/com/android/server/wm/WindowManagerService.java1
-rw-r--r--services/jni/com_android_server_display_SurfaceFlingerDisplayAdapter.cpp7
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;