summaryrefslogtreecommitdiffstats
path: root/policy/src
diff options
context:
space:
mode:
authorAdrian Roos <roosa@google.com>2014-06-12 20:06:09 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-06-12 20:06:09 +0000
commitd0406a45e276b7940b5266a6cb827e48025c5513 (patch)
tree0567eafc1044fcdec0ac81c101e6011e1dff2ea2 /policy/src
parent005fbda20568412693dc11a26ba3c5caab6b8877 (diff)
parent4a1ca967388804e599180a27bf9f03ea16ce6362 (diff)
downloadframeworks_base-d0406a45e276b7940b5266a6cb827e48025c5513.zip
frameworks_base-d0406a45e276b7940b5266a6cb827e48025c5513.tar.gz
frameworks_base-d0406a45e276b7940b5266a6cb827e48025c5513.tar.bz2
am 92140c92: Merge "Update PhoneWindow to new window inset dispatching" into lmp-preview-dev
* commit '92140c925ab4a142798f9b1acd6efe506d1f55e3': Update PhoneWindow to new window inset dispatching
Diffstat (limited to 'policy/src')
-rw-r--r--policy/src/com/android/internal/policy/impl/PhoneWindow.java33
1 files changed, 18 insertions, 15 deletions
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindow.java b/policy/src/com/android/internal/policy/impl/PhoneWindow.java
index 81dcc62..5e1aa3b 100644
--- a/policy/src/com/android/internal/policy/impl/PhoneWindow.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindow.java
@@ -93,6 +93,7 @@ import android.view.ViewParent;
import android.view.ViewRootImpl;
import android.view.ViewStub;
import android.view.Window;
+import android.view.WindowInsets;
import android.view.WindowManager;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
@@ -2631,15 +2632,15 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
}
@Override
- protected boolean fitSystemWindows(Rect insets) {
- mFrameOffsets.set(insets);
+ public WindowInsets onApplyWindowInsets(WindowInsets insets) {
+ mFrameOffsets.set(insets.getSystemWindowInsets());
updateColorViews(insets);
- updateStatusGuard(insets);
+ insets = updateStatusGuard(insets);
updateNavigationGuard(insets);
if (getForeground() != null) {
drawableChanged();
}
- return super.fitSystemWindows(insets);
+ return insets;
}
@Override
@@ -2647,14 +2648,14 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
return false;
}
- private void updateColorViews(Rect insets) {
+ private void updateColorViews(WindowInsets insets) {
if (mIsFloating || !ActivityManager.isHighEndGfx()) {
// No colors on floating windows or low end devices :(
return;
}
if (insets != null) {
- mLastTopInset = insets.top;
- mLastBottomInset = insets.bottom;
+ mLastTopInset = insets.getSystemWindowInsetTop();
+ mLastBottomInset = insets.getSystemWindowInsetBottom();
}
mStatusColorView = updateColorViewInt(mStatusColorView,
SYSTEM_UI_FLAG_FULLSCREEN, FLAG_TRANSLUCENT_STATUS,
@@ -2693,7 +2694,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
return view;
}
- private void updateStatusGuard(Rect insets) {
+ private WindowInsets updateStatusGuard(WindowInsets insets) {
boolean showStatusGuard = false;
// Show the status guard when the non-overlay contextual action bar is showing
if (mActionModeView != null) {
@@ -2705,9 +2706,9 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
&& mActionModeView.isShown();
if (nonOverlayShown) {
// set top margin to top insets, show status guard
- if (mlp.topMargin != insets.top) {
+ if (mlp.topMargin != insets.getSystemWindowInsetTop()) {
mlpChanged = true;
- mlp.topMargin = insets.top;
+ mlp.topMargin = insets.getSystemWindowInsetTop();
if (mStatusGuard == null) {
mStatusGuard = new View(mContext);
mStatusGuard.setBackgroundColor(mContext.getResources()
@@ -2723,7 +2724,8 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
}
}
}
- insets.top = 0; // consume top insets
+ insets = insets.consumeSystemWindowInsets(
+ false, true /* top */, false, false);
showStatusGuard = true;
} else {
// reset top margin
@@ -2740,9 +2742,10 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
if (mStatusGuard != null) {
mStatusGuard.setVisibility(showStatusGuard ? View.VISIBLE : View.GONE);
}
+ return insets;
}
- private void updateNavigationGuard(Rect insets) {
+ private void updateNavigationGuard(WindowInsets insets) {
// IMEs lay out below the nav bar, but the content view must not (for back compat)
if (getAttributes().type == WindowManager.LayoutParams.TYPE_INPUT_METHOD) {
// prevent the content view from including the nav bar height
@@ -2750,7 +2753,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
if (mContentParent.getLayoutParams() instanceof MarginLayoutParams) {
MarginLayoutParams mlp =
(MarginLayoutParams) mContentParent.getLayoutParams();
- mlp.bottomMargin = insets.bottom;
+ mlp.bottomMargin = insets.getSystemWindowInsetBottom();
mContentParent.setLayoutParams(mlp);
}
}
@@ -2760,11 +2763,11 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
mNavigationGuard.setBackgroundColor(mContext.getResources()
.getColor(R.color.input_method_navigation_guard));
addView(mNavigationGuard, indexOfChild(mNavigationColorView), new LayoutParams(
- LayoutParams.MATCH_PARENT, insets.bottom,
+ LayoutParams.MATCH_PARENT, insets.getSystemWindowInsetBottom(),
Gravity.START | Gravity.BOTTOM));
} else {
LayoutParams lp = (LayoutParams) mNavigationGuard.getLayoutParams();
- lp.height = insets.bottom;
+ lp.height = insets.getSystemWindowInsetBottom();
mNavigationGuard.setLayoutParams(lp);
}
}