Chromium Code Reviews| Index: content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java |
| diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java |
| index 4c199e0970ca7606cf224abdff13e083663f5c2c..f5a13cea985dc7cafaa9aaa76b3ed271ce860729 100644 |
| --- a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java |
| +++ b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java |
| @@ -35,6 +35,7 @@ import android.view.MotionEvent; |
| import android.view.View; |
| import android.view.ViewGroup; |
| import android.view.ViewStructure; |
| +import android.view.WindowInsets; |
| import android.view.accessibility.AccessibilityManager; |
| import android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener; |
| import android.view.accessibility.AccessibilityNodeProvider; |
| @@ -470,6 +471,7 @@ public class ContentViewCore implements AccessibilityStateChangeListener, Screen |
| private int mPhysicalBackingHeightPix; |
| private int mTopControlsHeightPix; |
| private boolean mTopControlsShrinkBlinkSize; |
| + private Rect mWindowInsets; |
|
aelias_OOO_until_Jul13
2016/01/28 05:04:55
Please add code that will guarantee this is popula
ymalik
2016/02/11 01:06:22
Done.
|
| // Cached copy of all positions and scales as reported by the renderer. |
| private final RenderCoordinates mRenderCoordinates; |
| @@ -625,6 +627,33 @@ public class ContentViewCore implements AccessibilityStateChangeListener, Screen |
| } |
| /** |
| + * @return The system window insets (from OSK, status bar, etc). |
| + */ |
| + public Rect getWindowInsets() { |
| + return mWindowInsets != null ? mWindowInsets : new Rect(); |
| + } |
| + |
| + /** |
| + * @param insets The system window insets Rect (from OSK, status bar, etc). |
| + */ |
| + public void setWindowInsets(Rect insets) { |
| + mWindowInsets = insets; |
| + } |
| + |
| + /** |
| + * @param insets The insets (from OSK, status bar, etc). |
| + */ |
| + @TargetApi(Build.VERSION_CODES.LOLLIPOP) |
| + public void setWindowInsets(WindowInsets insets) { |
|
AKV
2016/02/10 11:35:28
private
ymalik
2016/02/11 01:06:23
The setWindowInsets function is used by InsetConsu
|
| + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) return; |
|
AKV
2016/02/10 11:35:28
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LO
ymalik
2016/02/11 01:06:22
Removed this function.
|
| + if (insets == null) return; |
| + mWindowInsets = new Rect(insets.getSystemWindowInsetLeft(), |
|
aelias_OOO_until_Jul13
2016/01/28 05:04:55
Could you create this once at construction time an
ymalik
2016/02/11 01:06:22
I have removed this function and changed it to tak
|
| + insets.getSystemWindowInsetTop(), |
| + insets.getSystemWindowInsetRight(), |
| + insets.getSystemWindowInsetBottom()); |
| + } |
| + |
| + /** |
| * @return The WebContents currently being rendered. |
| */ |
| public WebContents getWebContents() { |
| @@ -1023,6 +1052,14 @@ public class ContentViewCore implements AccessibilityStateChangeListener, Screen |
| } |
| /** |
| + * @return Viewport height when the OSK is hidden in physical pixels as set from onSizeChanged. |
| + */ |
| + @CalledByNative |
| + public int getViewportHeightWithOSKHiddenPix() { |
| + return mViewportHeightPix + getWindowInsets().bottom; |
|
aelias_OOO_until_Jul13
2016/01/28 05:04:55
Your design doc says this includes the status bar,
bokan
2016/01/28 15:53:42
The status bar would presumably be in getWindowIns
ymalik
2016/02/11 01:06:22
That's right. The status bar is in getWindowInsets
|
| + } |
| + |
| + /** |
| * @return Width of underlying physical surface. |
| */ |
| @CalledByNative |