summaryrefslogtreecommitdiffstats
path: root/core/java/android/view
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/view')
-rw-r--r--core/java/android/view/Display.java1
-rw-r--r--core/java/android/view/DisplayInfo.java18
-rw-r--r--core/java/android/view/ViewRootImpl.java9
3 files changed, 14 insertions, 14 deletions
diff --git a/core/java/android/view/Display.java b/core/java/android/view/Display.java
index 46e4d6e..6fd5b01 100644
--- a/core/java/android/view/Display.java
+++ b/core/java/android/view/Display.java
@@ -21,7 +21,6 @@ import android.graphics.PixelFormat;
import android.graphics.Point;
import android.graphics.Rect;
import android.hardware.display.DisplayManager;
-import android.os.RemoteException;
import android.os.SystemClock;
import android.util.DisplayMetrics;
import android.util.Log;
diff --git a/core/java/android/view/DisplayInfo.java b/core/java/android/view/DisplayInfo.java
index 69b6d67..c65ce63 100644
--- a/core/java/android/view/DisplayInfo.java
+++ b/core/java/android/view/DisplayInfo.java
@@ -102,10 +102,10 @@ public final class DisplayInfo implements Parcelable {
public float refreshRate;
/**
- * The logical display density which represents the scaling factor for
- * the Density Independent Pixel unit.
+ * The logical display density which is the basis for density-independent
+ * pixels.
*/
- public float logicalDensity;
+ public int logicalDensityDpi;
/**
* The exact physical pixels per inch of the screen in the X dimension.
@@ -158,7 +158,7 @@ public final class DisplayInfo implements Parcelable {
logicalHeight = other.logicalHeight;
rotation = other.rotation;
refreshRate = other.refreshRate;
- logicalDensity = other.logicalDensity;
+ logicalDensityDpi = other.logicalDensityDpi;
physicalXDpi = other.physicalXDpi;
physicalYDpi = other.physicalYDpi;
}
@@ -174,7 +174,7 @@ public final class DisplayInfo implements Parcelable {
logicalHeight = source.readInt();
rotation = source.readInt();
refreshRate = source.readFloat();
- logicalDensity = source.readFloat();
+ logicalDensityDpi = source.readInt();
physicalXDpi = source.readFloat();
physicalYDpi = source.readFloat();
}
@@ -191,7 +191,7 @@ public final class DisplayInfo implements Parcelable {
dest.writeInt(logicalHeight);
dest.writeInt(rotation);
dest.writeFloat(refreshRate);
- dest.writeFloat(logicalDensity);
+ dest.writeInt(logicalDensityDpi);
dest.writeFloat(physicalXDpi);
dest.writeFloat(physicalYDpi);
}
@@ -206,12 +206,12 @@ public final class DisplayInfo implements Parcelable {
private void getMetricsWithSize(DisplayMetrics outMetrics, CompatibilityInfoHolder cih,
int width, int height) {
- outMetrics.densityDpi =
- (int)((logicalDensity * DisplayMetrics.DENSITY_DEFAULT) + .5f);
+ outMetrics.densityDpi = outMetrics.noncompatDensityDpi = logicalDensityDpi;
outMetrics.noncompatWidthPixels = outMetrics.widthPixels = width;
outMetrics.noncompatHeightPixels = outMetrics.heightPixels = height;
- outMetrics.density = outMetrics.noncompatDensity = logicalDensity;
+ outMetrics.density = outMetrics.noncompatDensity =
+ logicalDensityDpi * DisplayMetrics.DENSITY_DEFAULT_SCALE;
outMetrics.scaledDensity = outMetrics.noncompatScaledDensity = outMetrics.density;
outMetrics.xdpi = outMetrics.noncompatXdpi = physicalXDpi;
outMetrics.ydpi = outMetrics.noncompatYdpi = physicalYDpi;
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index befa0c0..1ad42f5 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -318,6 +318,7 @@ public final class ViewRootImpl implements ViewParent,
HashSet<View> mTempHashSet;
private final int mDensity;
+ private final int mNoncompatDensity;
/**
* Consistency verifier for debugging purposes.
@@ -390,6 +391,7 @@ public final class ViewRootImpl implements ViewParent,
mAttachInfo = new View.AttachInfo(sWindowSession, mWindow, this, mHandler, this);
mViewConfiguration = ViewConfiguration.get(context);
mDensity = context.getResources().getDisplayMetrics().densityDpi;
+ mNoncompatDensity = context.getResources().getDisplayMetrics().noncompatDensityDpi;
mFallbackEventHandler = PolicyManager.makeNewFallbackEventHandler(context);
mProfileRendering = Boolean.parseBoolean(
SystemProperties.get(PROPERTY_PROFILE_RENDERING, "false"));
@@ -2272,8 +2274,7 @@ public final class ViewRootImpl implements ViewParent,
if (mTranslator != null) {
mTranslator.translateCanvas(canvas);
}
- canvas.setScreenDensity(scalingRequired
- ? DisplayMetrics.DENSITY_DEVICE : 0);
+ canvas.setScreenDensity(scalingRequired ? mNoncompatDensity : 0);
attachInfo.mSetIgnoreDirtyState = false;
mView.draw(canvas);
@@ -2673,7 +2674,7 @@ public final class ViewRootImpl implements ViewParent,
CompatibilityInfo ci = mCompatibilityInfo.getIfNeeded();
if (ci != null) {
config = new Configuration(config);
- ci.applyToConfiguration(config);
+ ci.applyToConfiguration(mNoncompatDensity, config);
}
synchronized (sConfigCallbacks) {
@@ -2684,7 +2685,7 @@ public final class ViewRootImpl implements ViewParent,
if (mView != null) {
// At this point the resources have been updated to
// have the most recent config, whatever that is. Use
- // the on in them which may be newer.
+ // the one in them which may be newer.
config = mView.getResources().getConfiguration();
if (force || mLastConfiguration.diff(config) != 0) {
mLastConfiguration.setTo(config);