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

Commit edd9508a authored by Adam Lesinski's avatar Adam Lesinski
Browse files

Modified GridView to report when to small

-With views being able to set MEASURED_STATE_TOO_SMALL
the GridView should do so when the determining its
column widths/stretch modes

Change-Id: Ib8433ffa9e489467ffe7ed8169d4e23d69658c6c
parent 8a78d759
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -889,10 +889,11 @@ public class GridView extends AbsListView {
        return sel;
    }

    private void determineColumns(int availableSpace) {
    private boolean determineColumns(int availableSpace) {
        final int requestedHorizontalSpacing = mRequestedHorizontalSpacing;
        final int stretchMode = mStretchMode;
        final int requestedColumnWidth = mRequestedColumnWidth;
        boolean didNotInitiallyFit = false;
        
        if (mRequestedNumColumns == AUTO_FIT) {
            if (requestedColumnWidth > 0) {
@@ -922,6 +923,11 @@ public class GridView extends AbsListView {
        default:
            int spaceLeftOver = availableSpace - (mNumColumns * requestedColumnWidth) -
                    ((mNumColumns - 1) * requestedHorizontalSpacing);

            if (spaceLeftOver < 0) {
                didNotInitiallyFit = true;
            }

            switch (stretchMode) {
            case STRETCH_COLUMN_WIDTH:
                // Stretch the columns
@@ -954,6 +960,7 @@ public class GridView extends AbsListView {

            break;
        }
        return didNotInitiallyFit;
    }

    @Override
@@ -976,7 +983,7 @@ public class GridView extends AbsListView {
        }
        
        int childWidth = widthSize - mListPadding.left - mListPadding.right;
        determineColumns(childWidth);
        boolean didNotInitiallyFit = determineColumns(childWidth);

        int childHeight = 0;
        int childState = 0;
@@ -1035,7 +1042,7 @@ public class GridView extends AbsListView {
            int ourSize = (mRequestedNumColumns*mColumnWidth)
                    + ((mRequestedNumColumns-1)*mHorizontalSpacing)
                    + mListPadding.left + mListPadding.right;
            if (ourSize > widthSize) {
            if (ourSize > widthSize || didNotInitiallyFit) {
                widthSize |= MEASURED_STATE_TOO_SMALL;
            }
        }