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

Commit 882754e8 authored by Winson Chung's avatar Winson Chung Committed by Android (Google) Code Review
Browse files

Merge "Modified GridView to report when to small"

parents c1eaeea6 edd9508a
Loading
Loading
Loading
Loading
+10 −3
Original line number Original line Diff line number Diff line
@@ -889,10 +889,11 @@ public class GridView extends AbsListView {
        return sel;
        return sel;
    }
    }


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

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

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


            break;
            break;
        }
        }
        return didNotInitiallyFit;
    }
    }


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


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