Merge "Show folder color (if it exists) in the folder items."
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;
}