Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 package org.chromium.chrome.browser; | |
| 6 | |
| 7 import android.annotation.TargetApi; | |
| 8 import android.content.Context; | |
| 9 import android.graphics.Rect; | |
| 10 import android.os.Build; | |
| 11 import android.util.AttributeSet; | |
| 12 import android.view.WindowInsets; | |
| 13 import android.widget.FrameLayout; | |
| 14 | |
| 15 /** | |
| 16 * The purpose of this view is to consume the insets (OSK resizes, status bar). | |
| 17 * It stores the value of the insets in ContentViewCore so that size of things | |
| 18 * like the OSK can be known. | |
| 19 */ | |
| 20 public class InsetConsumerView extends FrameLayout { | |
|
Ted C
2016/03/12 00:01:44
if we go sibling child route,
can this just be a
ymalik
2016/03/14 22:19:01
Yes. Done.
| |
| 21 | |
| 22 private Rect mWindowInsets; | |
|
Ted C
2016/03/12 00:01:44
make this final
ymalik
2016/03/14 22:19:01
Done.
| |
| 23 | |
| 24 /** | |
| 25 * Creates an {@link InsetConsumerView}. | |
| 26 * | |
| 27 * @param context The Context to create this {@link InsetConsumerView} in. | |
| 28 */ | |
| 29 public InsetConsumerView(Context context) { | |
| 30 super(context); | |
| 31 mWindowInsets = new Rect(); | |
|
Ted C
2016/03/12 00:01:44
also if we go with the sibling child route,
add
s
ymalik
2016/03/14 22:19:01
Done.
| |
| 32 } | |
| 33 | |
| 34 /** | |
| 35 * Creates an {@link InsetConsumerView}. | |
| 36 * | |
| 37 * @param context The Context to create this {@link InsetConsumerView} in. | |
| 38 * @param attrs The AttributeSet used to create this | |
| 39 * {@link InsetConsumerView}. | |
| 40 */ | |
| 41 public InsetConsumerView(Context context, AttributeSet attrs) { | |
| 42 super(context, attrs); | |
| 43 mWindowInsets = new Rect(); | |
| 44 } | |
| 45 | |
| 46 /** | |
| 47 * Returns the left {@link WindowInsets} in pixels. | |
| 48 * | |
| 49 * @return The left system window inset. | |
| 50 */ | |
| 51 public int getSystemWindowInsetsLeft() { | |
| 52 return mWindowInsets.left; | |
| 53 } | |
| 54 | |
| 55 /** | |
| 56 * Returns the top {@link WindowInsets} in pixels. | |
| 57 * | |
| 58 * @return The top system window inset. | |
| 59 */ | |
| 60 public int getSystemWindowInsetsTop() { | |
| 61 return mWindowInsets.top; | |
| 62 } | |
| 63 | |
| 64 /** | |
| 65 * Returns the right {@link WindowInsets} in pixels. | |
| 66 * | |
| 67 * @return The right system window inset. | |
| 68 */ | |
| 69 public int getSystemWindowInsetsRight() { | |
| 70 return mWindowInsets.right; | |
| 71 } | |
| 72 | |
| 73 /** | |
| 74 * Returns the bottom {@link WindowInsets} in pixels. | |
| 75 * | |
| 76 * @return The bottom system window inset. | |
| 77 */ | |
| 78 public int getSystemWindowInsetsBottom() { | |
| 79 return mWindowInsets.bottom; | |
| 80 } | |
| 81 | |
| 82 @SuppressWarnings("deprecation") | |
| 83 @Override | |
| 84 protected boolean fitSystemWindows(Rect insets) { | |
| 85 // For Lollipop and above, onApplyWindowInsets will set the insets. | |
| 86 if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { | |
| 87 mWindowInsets.set(insets.left, insets.top, insets.right, insets.bott om); | |
| 88 } | |
| 89 return super.fitSystemWindows(insets); | |
|
Ted C
2016/03/12 00:01:44
if you return false here, then adding it at positi
ymalik
2016/03/14 22:19:01
Done.
| |
| 90 } | |
| 91 | |
| 92 @TargetApi(Build.VERSION_CODES.LOLLIPOP) | |
| 93 @Override | |
| 94 public WindowInsets onApplyWindowInsets(WindowInsets insets) { | |
|
Ted C
2016/03/12 00:01:44
As for fixing this, you want to do something like
ymalik
2016/03/14 22:19:01
Done. Thanks for the snippet :)!
| |
| 95 mWindowInsets.set(insets.getSystemWindowInsetLeft(), insets.getSystemWin dowInsetTop(), | |
| 96 insets.getSystemWindowInsetRight(), insets.getSystemWindowInsetB ottom()); | |
| 97 return super.onApplyWindowInsets(insets); | |
| 98 } | |
| 99 } | |
| OLD | NEW |