Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(742)

Unified Diff: ui/android/java/src/org/chromium/ui/gfx/DeviceDisplayInfo.java

Issue 1144333004: Make WebView work for external displays (over Presentations). Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Minor fixes according to boliu/jdduke's comments Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 da8e0262a1f9e202086b5d4095cc61b47555dd48..c6aa5cd0045a951bfbe82494f53425bb61a27757 100644
--- a/ui/android/java/src/org/chromium/ui/gfx/DeviceDisplayInfo.java
+++ b/ui/android/java/src/org/chromium/ui/gfx/DeviceDisplayInfo.java
@@ -17,6 +17,8 @@ import android.view.WindowManager;
import org.chromium.base.CalledByNative;
import org.chromium.base.JNINamespace;
+import java.lang.ref.WeakReference;
+
/**
* This class facilitates access to android information typically only
* available using the Java SDK, including {@link Display} properties.
@@ -26,15 +28,16 @@ import org.chromium.base.JNINamespace;
*/
@JNINamespace("gfx")
public class DeviceDisplayInfo {
-
- private final Context mAppContext;
+ private final WeakReference<Context> mContextRef;
private final WindowManager mWinManager;
+ private final int mSmallestDIPWidth;
private Point mTempPoint = new Point();
private DisplayMetrics mTempMetrics = new DisplayMetrics();
private DeviceDisplayInfo(Context context) {
- mAppContext = context.getApplicationContext();
- mWinManager = (WindowManager) mAppContext.getSystemService(Context.WINDOW_SERVICE);
+ mContextRef = new WeakReference<Context>(context);
+ mWinManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
+ mSmallestDIPWidth = context.getResources().getConfiguration().smallestScreenWidthDp;
}
/**
@@ -153,8 +156,8 @@ public class DeviceDisplayInfo {
* application will see, regardless of orientation.
*/
@CalledByNative
- private int getSmallestDIPWidth() {
- return mAppContext.getResources().getConfiguration().smallestScreenWidthDp;
+ private int getSmallestDIPWidth() { // TODO(gsennton) can we remove this?
+ return mSmallestDIPWidth;
}
/**
@@ -181,18 +184,6 @@ public class DeviceDisplayInfo {
return 0;
}
- /**
- * Inform the native implementation to update its cached representation of
- * the DeviceDisplayInfo values.
- */
- public void updateNativeSharedDisplayInfo() {
- nativeUpdateSharedDeviceDisplayInfo(
- getDisplayHeight(), getDisplayWidth(),
- getPhysicalDisplayHeight(), getPhysicalDisplayWidth(),
- getBitsPerPixel(), getBitsPerComponent(),
- getDIPScale(), getSmallestDIPWidth(), getRotationDegrees());
- }
-
private Display getDisplay() {
return mWinManager.getDefaultDisplay();
}
@@ -207,11 +198,4 @@ public class DeviceDisplayInfo {
public static DeviceDisplayInfo create(Context context) {
return new DeviceDisplayInfo(context);
}
-
- private native void nativeUpdateSharedDeviceDisplayInfo(
- int displayHeight, int displayWidth,
- int physicalDisplayHeight, int physicalDisplayWidth,
- int bitsPerPixel, int bitsPerComponent, double dipScale,
- int smallestDIPWidth, int rotationDegrees);
-
}

Powered by Google App Engine
This is Rietveld 408576698