Pick column count based on available space.

Set background color of RecyclerView.

BUG: 22640007
BUG: 22672201
Change-Id: Ic9c65a2a25164698bc08b4620bfa0b067d620f1b
diff --git a/src/com/android/documentsui/DirectoryFragment.java b/src/com/android/documentsui/DirectoryFragment.java
index 0554601..e29c4ba 100644
--- a/src/com/android/documentsui/DirectoryFragment.java
+++ b/src/com/android/documentsui/DirectoryFragment.java
@@ -510,18 +510,18 @@
         final LayoutManager layout;
         switch (mode) {
             case MODE_GRID:
-                if (mGridLayout == null) {
-                    // TODO: Determine appropriate column count.
-                    mGridLayout = new GridLayoutManager(getContext(), 4);
-                }
                 thumbSize = getResources().getDimensionPixelSize(R.dimen.grid_width);
+                if (mGridLayout == null) {
+                    int columnCount = Math.max(1, mRecView.getWidth() / thumbSize);
+                    mGridLayout = new GridLayoutManager(getContext(), columnCount);
+                }
                 layout = mGridLayout;
                 break;
             case MODE_LIST:
+                thumbSize = getResources().getDimensionPixelSize(R.dimen.icon_size);
                 if (mListLayout == null) {
                     mListLayout = new LinearLayoutManager(getContext());
                 }
-                thumbSize = getResources().getDimensionPixelSize(R.dimen.icon_size);
                 layout = mListLayout;
                 break;
             case MODE_UNKNOWN: