From 79c067c54a944660438c81ac2caf37ec68eedfa9 Mon Sep 17 00:00:00 2001 From: Alan Viverette Date: Wed, 29 Oct 2014 14:27:47 -0700 Subject: [PATCH] Add setters for window elevation and clipToOutline properties These are available as XML attributes but were lacking setters. None of the Window properties have getters, so just adding setters here. BUG: 16847753 Change-Id: I9c032903e94b7f12125210bd73c911243612df69 --- api/current.txt | 2 ++ core/java/android/view/Window.java | 29 +++++++++++++++---- .../internal/policy/impl/PhoneWindow.java | 16 ++++++++++ 3 files changed, 42 insertions(+), 5 deletions(-) diff --git a/api/current.txt b/api/current.txt index aa8057de7e95c..fd08ff780fc25 100644 --- a/api/current.txt +++ b/api/current.txt @@ -34722,12 +34722,14 @@ package android.view { method public void setCallback(android.view.Window.Callback); method public abstract void setChildDrawable(int, android.graphics.drawable.Drawable); method public abstract void setChildInt(int, int); + method public void setClipToOutline(boolean); method public void setContainer(android.view.Window); method public abstract void setContentView(int); method public abstract void setContentView(android.view.View); method public abstract void setContentView(android.view.View, android.view.ViewGroup.LayoutParams); method protected void setDefaultWindowFormat(int); method public void setDimAmount(float); + method public void setElevation(float); method public void setEnterTransition(android.transition.Transition); method public void setExitTransition(android.transition.Transition); method public abstract void setFeatureDrawable(int, android.graphics.drawable.Drawable); diff --git a/core/java/android/view/Window.java b/core/java/android/view/Window.java index 20edeb8da627e..0076abff2f094 100644 --- a/core/java/android/view/Window.java +++ b/core/java/android/view/Window.java @@ -1073,18 +1073,37 @@ public abstract class Window { */ public abstract void onConfigurationChanged(Configuration newConfig); + /** + * Sets the window elevation. + * + * @param elevation The window elevation. + * @see View#setElevation(float) + * @see android.R.styleable#Window_windowElevation + */ + public void setElevation(float elevation) {} + + /** + * Sets whether window content should be clipped to the outline of the + * window background. + * + * @param clipToOutline Whether window content should be clipped to the + * outline of the window background. + * @see View#setClipToOutline(boolean) + * @see android.R.styleable#Window_windowClipToOutline + */ + public void setClipToOutline(boolean clipToOutline) {} + /** * Change the background of this window to a Drawable resource. Setting the * background to null will make the window be opaque. To make the window * transparent, you can use an empty drawable (for instance a ColorDrawable * with the color 0 or the system drawable android:drawable/empty.) * - * @param resid The resource identifier of a drawable resource which will be - * installed as the new background. + * @param resId The resource identifier of a drawable resource which will + * be installed as the new background. */ - public void setBackgroundDrawableResource(int resid) - { - setBackgroundDrawable(mContext.getDrawable(resid)); + public void setBackgroundDrawableResource(int resId) { + setBackgroundDrawable(mContext.getDrawable(resId)); } /** diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindow.java b/policy/src/com/android/internal/policy/impl/PhoneWindow.java index 1ed61fd22e975..4714826dee629 100644 --- a/policy/src/com/android/internal/policy/impl/PhoneWindow.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindow.java @@ -1331,6 +1331,22 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { return (mContextMenu != null) ? mContextMenu.performIdentifierAction(id, flags) : false; } + @Override + public final void setElevation(float elevation) { + mElevation = elevation; + if (mDecor != null) { + mDecor.setElevation(elevation); + } + } + + @Override + public final void setClipToOutline(boolean clipToOutline) { + mClipToOutline = clipToOutline; + if (mDecor != null) { + mDecor.setClipToOutline(clipToOutline); + } + } + @Override public final void setBackgroundDrawable(Drawable drawable) { if (drawable != mBackgroundDrawable || mBackgroundResource != 0) {