diff options
| -rw-r--r-- | policy/src/com/android/internal/policy/impl/PhoneWindow.java | 33 |
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 a8645bc9ea48..ef096e0ea6de 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; @@ -2627,15 +2628,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 @@ -2643,14 +2644,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, @@ -2689,7 +2690,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) { @@ -2701,9 +2702,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() @@ -2719,7 +2720,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 @@ -2736,9 +2738,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 @@ -2746,7 +2749,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); } } @@ -2756,11 +2759,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); } } |