Merge "Add permission to read attachments"
diff --git a/res/layout/folder_item.xml b/res/layout/folder_item.xml
index af23934..80140cd 100644
--- a/res/layout/folder_item.xml
+++ b/res/layout/folder_item.xml
@@ -32,6 +32,12 @@
         android:visibility="gone"
         android:src="@drawable/folder_parent_icon" />
 
+    <ImageView
+        android:id="@+id/folder_box"
+        style="@style/FolderItemIcon"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentTop="true" />
+
     <TextView
         android:id="@+id/unread"
         style="@style/UnreadCount"
diff --git a/src/com/android/mail/providers/Folder.java b/src/com/android/mail/providers/Folder.java
index 29cb339..3ee4497 100644
--- a/src/com/android/mail/providers/Folder.java
+++ b/src/com/android/mail/providers/Folder.java
@@ -19,11 +19,14 @@
 
 import android.content.Context;
 import android.database.Cursor;
+import android.graphics.Color;
+import android.graphics.drawable.PaintDrawable;
 import android.net.Uri;
 import android.net.Uri.Builder;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.text.TextUtils;
+import android.view.View;
 
 import com.android.mail.utils.LogUtils;
 import com.google.common.collect.Maps;
@@ -380,4 +383,19 @@
     public boolean supportsCapability(int capability) {
         return (capabilities & capability) != 0;
     }
+
+    // Show black text on a transparent swatch for system labels, effectively hiding the
+    // swatch (see bug 2431925).
+    public static void setFolderBlockColor(Folder folder, View colorBlock) {
+        boolean showBg = folder.bgColor != null;
+        final int backgroundColor = showBg ? Color.parseColor(folder.bgColor) : 0;
+
+        if (!showBg) {
+            colorBlock.setBackgroundDrawable(null);
+        } else {
+            PaintDrawable paintDrawable = new PaintDrawable();
+            paintDrawable.getPaint().setColor(backgroundColor);
+            colorBlock.setBackgroundDrawable(paintDrawable);
+        }
+    }
 }
diff --git a/src/com/android/mail/ui/FolderListFragment.java b/src/com/android/mail/ui/FolderListFragment.java
index a64eb6a..cd2062b 100644
--- a/src/com/android/mail/ui/FolderListFragment.java
+++ b/src/com/android/mail/ui/FolderListFragment.java
@@ -219,6 +219,7 @@
             if (mSelectedFolder != null && TextUtils.equals(folder.id, mSelectedFolder.id)) {
                 getListView().setItemChecked(position, true);
             }
+            Folder.setFolderBlockColor(folder, folderItemView.findViewById(R.id.folder_box));
             return folderItemView;
         }
     }
diff --git a/src/com/android/mail/ui/FolderSelectorAdapter.java b/src/com/android/mail/ui/FolderSelectorAdapter.java
index 6bf389d..8f9dbcf 100644
--- a/src/com/android/mail/ui/FolderSelectorAdapter.java
+++ b/src/com/android/mail/ui/FolderSelectorAdapter.java
@@ -20,22 +20,17 @@
 import com.android.mail.R;
 import com.android.mail.providers.Folder;
 import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
 
 import android.content.Context;
 import android.database.Cursor;
-import android.graphics.drawable.PaintDrawable;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.BaseAdapter;
-import android.widget.CheckBox;
 import android.widget.CompoundButton;
-import android.widget.RadioButton;
 
 import java.util.Collections;
 import java.util.List;
-import java.util.Map;
 import java.util.Set;
 
 /**
@@ -136,9 +131,11 @@
         }
 
         FolderRow row = getItem(position);
-        checkBox.setText(row.getFolder().name);
+        Folder folder = row.getFolder();
+        checkBox.setText(folder.name);
         checkBox.setChecked(row.isPresent());
 
+        Folder.setFolderBlockColor(folder, colorBlock);
         return view;
     }