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

Commit 9cfa162b authored by Josh Tsuji's avatar Josh Tsuji Committed by Automerger Merge Worker
Browse files

Merge "Fix ringer drawer area being touchable while the drawer is closed."...

Merge "Fix ringer drawer area being touchable while the drawer is closed." into sc-dev am: 1ed9066f

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14499939

Change-Id: I7455d6f9c859e60ec583a74eee6b719cfff42afe
parents ec2bcbbb 1ed9066f
Loading
Loading
Loading
Loading
+23 −8
Original line number Original line Diff line number Diff line
@@ -315,9 +315,23 @@ public class VolumeDialogImpl implements VolumeDialog,
            final View view = mDialogView.getChildAt(i);
            final View view = mDialogView.getChildAt(i);
            final int[] locInWindow = new int[2];
            final int[] locInWindow = new int[2];
            view.getLocationInWindow(locInWindow);
            view.getLocationInWindow(locInWindow);

            float x = locInWindow[0];
            float y = locInWindow[1];

            // The ringer and rows container has extra height at the top to fit the expanded ringer
            // drawer. This area should not be touchable unless the ringer drawer is open.
            if (view == mRingerAndRowsContainer && !mIsRingerDrawerOpen) {
                if (!isLandscape()) {
                    y += getRingerDrawerOpenExtraSize();
                } else {
                    x += getRingerDrawerOpenExtraSize();
                }
            }

            mTouchableRegion.op(
            mTouchableRegion.op(
                    locInWindow[0],
                    (int) x,
                    locInWindow[1],
                    (int) y,
                    locInWindow[0] + view.getWidth(),
                    locInWindow[0] + view.getWidth(),
                    locInWindow[1] + view.getHeight(),
                    locInWindow[1] + view.getHeight(),
                    Region.Op.UNION);
                    Region.Op.UNION);
@@ -697,10 +711,10 @@ public class VolumeDialogImpl implements VolumeDialog,
                    mDialogView.getPaddingLeft(),
                    mDialogView.getPaddingLeft(),
                    mDialogView.getPaddingTop(),
                    mDialogView.getPaddingTop(),
                    mDialogView.getPaddingRight(),
                    mDialogView.getPaddingRight(),
                    mDialogView.getPaddingBottom() + getRingerDrawerOpenExtraHeight());
                    mDialogView.getPaddingBottom() + getRingerDrawerOpenExtraSize());
        } else {
        } else {
            mDialogView.setPadding(
            mDialogView.setPadding(
                    mDialogView.getPaddingLeft() + getRingerDrawerOpenExtraHeight(),
                    mDialogView.getPaddingLeft() + getRingerDrawerOpenExtraSize(),
                    mDialogView.getPaddingTop(),
                    mDialogView.getPaddingTop(),
                    mDialogView.getPaddingRight(),
                    mDialogView.getPaddingRight(),
                    mDialogView.getPaddingBottom());
                    mDialogView.getPaddingBottom());
@@ -1720,10 +1734,11 @@ public class VolumeDialogImpl implements VolumeDialog,
    }
    }


    /**
    /**
     * Return the height of the 1-2 extra ringer options that are made visible when the ringer
     * Return the size of the 1-2 extra ringer options that are made visible when the ringer drawer
     * drawer is opened.
     * is opened. The drawer options are square so this can be used for height calculations (when in
     * portrait, and the drawer opens upward) or for width (when opening sideways in landscape).
     */
     */
    private int getRingerDrawerOpenExtraHeight() {
    private int getRingerDrawerOpenExtraSize() {
        return (mRingerCount - 1) * mRingerDrawerItemSize;
        return (mRingerCount - 1) * mRingerDrawerItemSize;
    }
    }


@@ -1737,7 +1752,7 @@ public class VolumeDialogImpl implements VolumeDialog,
        }
        }


        final Rect bounds = mRingerAndRowsContainerBackground.copyBounds();
        final Rect bounds = mRingerAndRowsContainerBackground.copyBounds();
        bounds.top = (int) (drawerClosedAmount * getRingerDrawerOpenExtraHeight());
        bounds.top = (int) (drawerClosedAmount * getRingerDrawerOpenExtraSize());
        mRingerAndRowsContainerBackground.setBounds(bounds);
        mRingerAndRowsContainerBackground.setBounds(bounds);
    }
    }