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

Commit ef9dfbfa authored by Josh Tsuji's avatar Josh Tsuji Committed by Gerrit Code Review
Browse files

Merge "VolumeDialogImpl: Respect multiple visible rows in landscape"

parents 7260b5c9 337b5399
Loading
Loading
Loading
Loading
+19 −2
Original line number Diff line number Diff line
@@ -363,11 +363,13 @@ public class VolumeDialogImpl implements VolumeDialog,

        // 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.
        // In landscape the ringer expands to the left and it has to be ensured that if there
        // are multiple rows they are touchable.
        if (view == mTopContainer && !mIsRingerDrawerOpen) {
            if (!isLandscape()) {
                y += getRingerDrawerOpenExtraSize();
            } else {
                x += getRingerDrawerOpenExtraSize();
            } else if (getRingerDrawerOpenExtraSize() > getVisibleRowsExtraSize()) {
                x += (getRingerDrawerOpenExtraSize() - getVisibleRowsExtraSize());
            }
        }

@@ -1926,6 +1928,21 @@ public class VolumeDialogImpl implements VolumeDialog,
        return (mRingerCount - 1) * mRingerDrawerItemSize;
    }

    /**
     * Return the size of the additionally visible rows next to the default stream.
     * An additional row is visible for example while receiving a voice call.
     */
    private int getVisibleRowsExtraSize() {
        VolumeRow activeRow = getActiveRow();
        int visibleRows = 0;
        for (final VolumeRow row : mRows) {
            if (shouldBeVisibleH(row, activeRow)) {
                visibleRows++;
            }
        }
        return (visibleRows - 1) * (mDialogWidth + mRingerRowsPadding);
    }

    private void updateBackgroundForDrawerClosedAmount() {
        if (mRingerAndDrawerContainerBackground == null) {
            return;