Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b0bd3e7a authored by Matvei Malkov's avatar Matvei Malkov
Browse files

Epicenter API for ListPopupWindow

Introduced epicenter API for ListPopupWindow to mirror the same API that we've made for PopupWindow (b/123768589). Also add mutability protection to PopupWindow epicenter rects

Bug: b/124094855

Test: All widgets tests passed. getter / setter tests introduced in
I648c169b67972c80befbeae9c37c2819eaad27d4
Change-Id: I2b79a16039d345c9c8893b815735a2811543cf60
parent de86b375
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -56015,6 +56015,7 @@ package android.widget {
    method @Nullable public android.view.View getAnchorView();
    method @StyleRes public int getAnimationStyle();
    method @Nullable public android.graphics.drawable.Drawable getBackground();
    method @Nullable public android.graphics.Rect getEpicenterBounds();
    method public int getHeight();
    method public int getHorizontalOffset();
    method public int getInputMethodMode();
@@ -56041,6 +56042,7 @@ package android.widget {
    method public void setBackgroundDrawable(@Nullable android.graphics.drawable.Drawable);
    method public void setContentWidth(int);
    method public void setDropDownGravity(int);
    method public void setEpicenterBounds(@Nullable android.graphics.Rect);
    method public void setHeight(int);
    method public void setHorizontalOffset(int);
    method public void setInputMethodMode(int);
+17 −4
Original line number Diff line number Diff line
@@ -471,11 +471,24 @@ public class ListPopupWindow implements ShowableListMenu {
     * Specifies the anchor-relative bounds of the popup's transition
     * epicenter.
     *
     * @param bounds anchor-relative bounds
     * @hide
     * @param bounds anchor-relative bounds, or {@code null} to use default epicenter
     *
     * @see #getEpicenterBounds()
     */
    public void setEpicenterBounds(@Nullable Rect bounds) {
        mEpicenterBounds = bounds != null ? new Rect(bounds) : null;
    }

    /**
     * Returns bounds which are used as a popup's epicenter
     * of the enter and exit transitions.
     *
     * @return bounds relative to anchor view, or {@code null} if not set
     * @see #setEpicenterBounds(Rect)
     */
    public void setEpicenterBounds(Rect bounds) {
        mEpicenterBounds = bounds;
    @Nullable
    public Rect getEpicenterBounds() {
        return mEpicenterBounds != null ? new Rect(mEpicenterBounds) : null;
    }

    /**
+2 −2
Original line number Diff line number Diff line
@@ -490,7 +490,7 @@ public class PopupWindow {
     */
    @Nullable
    public Rect getEpicenterBounds() {
        return mEpicenterBounds;
        return mEpicenterBounds != null ? new Rect(mEpicenterBounds) : null;
    }

    /**
@@ -509,7 +509,7 @@ public class PopupWindow {
     * @see #getEpicenterBounds()
     */
    public void setEpicenterBounds(@Nullable Rect bounds) {
        mEpicenterBounds = bounds;
        mEpicenterBounds = bounds != null ? new Rect(bounds) : null;
    }

    private Transition getTransition(int resId) {