More material updates to DocumentsUI.

All assets cut as alpha variants so we apply desired tinting at
runtime.  Small script to automatically generate XML resources.

Bug: 15836082, 16658537
Change-Id: I803b3f0bf6f121194a5445fd1c6600fabaf28f60
diff --git a/src/com/android/documentsui/IconUtils.java b/src/com/android/documentsui/IconUtils.java
index eaa74eb..b7e1294 100644
--- a/src/com/android/documentsui/IconUtils.java
+++ b/src/com/android/documentsui/IconUtils.java
@@ -22,6 +22,7 @@
 import android.content.res.Resources;
 import android.graphics.drawable.Drawable;
 import android.provider.DocumentsContract.Document;
+import android.util.TypedValue;
 
 import com.google.android.collect.Maps;
 
@@ -45,7 +46,7 @@
         add("application/vnd.android.package-archive", icon);
 
         // Audio
-        icon = R.drawable.ic_doc_audio_dark;
+        icon = R.drawable.ic_doc_audio;
         add("application/ogg", icon);
         add("application/x-flac", icon);
 
@@ -132,7 +133,7 @@
         add("application/x-font-ttf", icon);
 
         // Image
-        icon = R.drawable.ic_doc_image_dark;
+        icon = R.drawable.ic_doc_image;
         add("application/vnd.oasis.opendocument.graphics", icon);
         add("application/vnd.oasis.opendocument.graphics-template", icon);
         add("application/vnd.oasis.opendocument.image", icon);
@@ -186,7 +187,7 @@
         add("application/x-kword", icon);
 
         // Video
-        icon = R.drawable.ic_doc_video_dark;
+        icon = R.drawable.ic_doc_video;
         add("application/x-quicktimeplayer", icon);
         add("application/x-shockwave-flash", icon);
     }
@@ -220,7 +221,7 @@
             if (mode == DocumentsActivity.State.MODE_GRID) {
                 return res.getDrawable(R.drawable.ic_grid_folder);
             } else {
-                return res.getDrawable(R.drawable.ic_root_folder_dark);
+                return res.getDrawable(R.drawable.ic_doc_folder);
             }
         }
 
@@ -231,8 +232,7 @@
         final Resources res = context.getResources();
 
         if (Document.MIME_TYPE_DIR.equals(mimeType)) {
-            // TODO: return a mipmap, since this is used for grid
-            return res.getDrawable(R.drawable.ic_root_folder_dark);
+            return res.getDrawable(R.drawable.ic_doc_folder);
         }
 
         // Look for exact match first
@@ -249,15 +249,27 @@
         // Otherwise look for partial match
         final String typeOnly = mimeType.split("/")[0];
         if ("audio".equals(typeOnly)) {
-            return res.getDrawable(R.drawable.ic_doc_audio_dark);
+            return res.getDrawable(R.drawable.ic_doc_audio);
         } else if ("image".equals(typeOnly)) {
-            return res.getDrawable(R.drawable.ic_doc_image_dark);
+            return res.getDrawable(R.drawable.ic_doc_image);
         } else if ("text".equals(typeOnly)) {
             return res.getDrawable(R.drawable.ic_doc_text);
         } else if ("video".equals(typeOnly)) {
-            return res.getDrawable(R.drawable.ic_doc_video_dark);
+            return res.getDrawable(R.drawable.ic_doc_video);
         } else {
             return res.getDrawable(R.drawable.ic_doc_generic);
         }
     }
+
+    public static Drawable applyTint(Context context, int drawableId, int tintAttrId) {
+        final Resources res = context.getResources();
+
+        final TypedValue outValue = new TypedValue();
+        context.getTheme().resolveAttribute(tintAttrId, outValue, true);
+
+        final Drawable icon = res.getDrawable(drawableId);
+        icon.mutate();
+        icon.setTintList(res.getColorStateList(outValue.resourceId));
+        return icon;
+    }
 }