From dcb70c2e08217a5030d56ee5050ddf853b958b45 Mon Sep 17 00:00:00 2001 From: Filip Gruszczynski Date: Mon, 14 Jul 2014 17:10:42 -0700 Subject: [PATCH] Using outset bottom from theme as bottom inset on circular screens. Change-Id: I46374b345e60a74b6afbbb6a278a0b8e81650681 --- .../internal/policy/impl/PhoneWindow.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindow.java b/policy/src/com/android/internal/policy/impl/PhoneWindow.java index 610f6cfc126e0..b5f88f03014fd 100644 --- a/policy/src/com/android/internal/policy/impl/PhoneWindow.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindow.java @@ -88,6 +88,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; @@ -2093,6 +2094,22 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { return super.dispatchGenericMotionEvent(event); } + @Override + public WindowInsets dispatchApplyWindowInsets(WindowInsets insets) { + if (mOutsetBottom != null) { + final DisplayMetrics metrics = getContext().getResources().getDisplayMetrics(); + int bottom = (int) mOutsetBottom.getDimension(metrics); + WindowInsets newInsets = insets.replaceSystemWindowInsets( + insets.getSystemWindowInsetLeft(), insets.getSystemWindowInsetTop(), + insets.getSystemWindowInsetRight(), + insets.getSystemWindowInsetBottom() + bottom); + return super.dispatchApplyWindowInsets(newInsets); + } else { + return super.dispatchApplyWindowInsets(insets); + } + } + + @Override public boolean onTouchEvent(MotionEvent event) { return onInterceptTouchEvent(event);