Index: ui/android/java/src/org/chromium/ui/gfx/DeviceDisplayInfo.java |
diff --git a/ui/android/java/src/org/chromium/ui/gfx/DeviceDisplayInfo.java b/ui/android/java/src/org/chromium/ui/gfx/DeviceDisplayInfo.java |
index 088c9c2476e7f2781572be7a56e1482965716dd3..84501daa2594f3b2f385f81caf82c1a8056de277 100644 |
--- a/ui/android/java/src/org/chromium/ui/gfx/DeviceDisplayInfo.java |
+++ b/ui/android/java/src/org/chromium/ui/gfx/DeviceDisplayInfo.java |
@@ -5,6 +5,8 @@ |
package org.chromium.ui.gfx; |
import android.content.Context; |
+import android.content.ComponentCallbacks; |
+import android.content.res.Configuration; |
import android.graphics.PixelFormat; |
import android.os.Build; |
import android.util.DisplayMetrics; |
@@ -115,6 +117,25 @@ public class DeviceDisplayInfo { |
return getMetrics().density; |
} |
+ public void registerListener() { |
Yaron
2013/10/11 10:18:14
private
|
+ mAppContext.registerComponentCallbacks( |
+ new ComponentCallbacks() { |
+ @Override |
+ public void onConfigurationChanged(Configuration configuration) { |
+ updateNativeSharedDisplayInfo(); |
Yaron
2013/10/11 10:18:14
indent 4 for block-level (other places below too).
|
+ } |
+ |
+ @Override |
+ public void onLowMemory() { |
+ } |
+ }); |
+ } |
+ |
+ private void updateNativeSharedDisplayInfo() { |
+ nativeUpdateSharedDeviceDisplayInfo(getDisplayHeight(), getDisplayWidth(), |
+ getBitsPerPixel(), getBitsPerComponent(), getDIPScale()); |
+ } |
+ |
private Display getDisplay() { |
return mWinManager.getDefaultDisplay(); |
} |
@@ -128,8 +149,19 @@ public class DeviceDisplayInfo { |
* @param context A context to use. |
* @return DeviceDisplayInfo associated with a given Context. |
*/ |
- @CalledByNative |
public static DeviceDisplayInfo create(Context context) { |
return new DeviceDisplayInfo(context); |
} |
+ |
+ @CalledByNative |
+ public static DeviceDisplayInfo createWithListener(Context context) { |
Yaron
2013/10/11 10:18:14
Make private. This is unneeded from the java layer
|
+ DeviceDisplayInfo deviceDisplayInfo = new DeviceDisplayInfo(context); |
+ deviceDisplayInfo.registerListener(); |
+ return deviceDisplayInfo; |
+ } |
+ |
+ private native void nativeUpdateSharedDeviceDisplayInfo(int displayHeight, |
+ int displayWidth, int bitsPerPixel, |
+ int bitsPerComponent, double dipScale); |
+ |
} |