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
diff --git a/api/current.txt b/api/current.txt
index aa8057d..fd08ff7 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -34722,12 +34722,14 @@
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 20edeb8..0076abf 100644
--- a/core/java/android/view/Window.java
+++ b/core/java/android/view/Window.java
@@ -1074,17 +1074,36 @@
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 1ed61fd..4714826 100644
--- a/policy/src/com/android/internal/policy/impl/PhoneWindow.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindow.java
@@ -1332,6 +1332,22 @@
}
@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) {
mBackgroundResource = 0;