am 6bbeaaeb: Merge "Remove Folder.newUnsafeInstance" into jb-ub-mail-ur9

* commit '6bbeaaebc4d6111e4b327a7f7761047b89e20e01':
  Remove Folder.newUnsafeInstance
diff --git a/src/com/android/mail/browse/ConversationViewHeader.java b/src/com/android/mail/browse/ConversationViewHeader.java
index 6d37dd0..3b34965 100644
--- a/src/com/android/mail/browse/ConversationViewHeader.java
+++ b/src/com/android/mail/browse/ConversationViewHeader.java
@@ -212,29 +212,27 @@
         }
 
         public void appendFolderSpans(SpannableStringBuilder sb) {
-            for (Folder f : mFoldersSortedSet) {
-                addSpan(sb, f);
+            for (final Folder f : mFoldersSortedSet) {
+                final int bgColor = Folder.getNonEmptyColor(f.bgColor, mDefaultBgColor);
+                final int fgColor = Folder.getNonEmptyColor(f.fgColor, mDefaultFgColor);
+                addSpan(sb, f.name, bgColor, fgColor);
             }
 
             if (mFoldersSortedSet.isEmpty()) {
-                final Folder addLabel = Folder.newUnsafeInstance();
                 final Resources r = mContext.getResources();
-                addLabel.name = r.getString(R.string.add_label);
-                addLabel.bgColor = ""
-                        + r.getColor(R.color.conv_header_add_label_background);
-                addLabel.fgColor = "" + r.getColor(R.color.conv_header_add_label_text);
-                addSpan(sb, addLabel);
+                final String name = r.getString(R.string.add_label);
+                final int bgColor = r.getColor(R.color.conv_header_add_label_background);
+                final int fgColor = r.getColor(R.color.conv_header_add_label_text);
+                addSpan(sb, name, bgColor, fgColor);
             }
         }
 
-        private void addSpan(SpannableStringBuilder sb, Folder folder) {
+        private void addSpan(SpannableStringBuilder sb, String name, int bgColor,
+                             int fgColor) {
             final int start = sb.length();
-            sb.append(folder.name);
+            sb.append(name);
             final int end = sb.length();
 
-            final int fgColor = folder.getForegroundColor(mDefaultFgColor);
-            final int bgColor = folder.getBackgroundColor(mDefaultBgColor);
-
             sb.setSpan(new BackgroundColorSpan(bgColor), start, end,
                     Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
             sb.setSpan(new ForegroundColorSpan(fgColor), start, end,
diff --git a/src/com/android/mail/providers/Folder.java b/src/com/android/mail/providers/Folder.java
index 928d6bb..a414f51 100644
--- a/src/com/android/mail/providers/Folder.java
+++ b/src/com/android/mail/providers/Folder.java
@@ -34,6 +34,7 @@
 import com.android.mail.utils.LogTag;
 import com.android.mail.utils.LogUtils;
 import com.android.mail.utils.Utils;
+import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Objects;
 import com.google.common.collect.ImmutableList;
 
@@ -354,10 +355,10 @@
 
     /**
      * Creates a new instance of a folder object that is <b>not</b> initialized.  The caller is
-     * expected to fill in the details. This resulting instance is not guaranteed to work
-     * correctly, and might break functionality.  Use at your own risk!!
+     * expected to fill in the details. Used only for testing.
      * @return a new instance of an unsafe folder.
      */
+    @VisibleForTesting
     public static Folder newUnsafeInstance() {
         return new Folder();
     }
@@ -473,11 +474,21 @@
     }
 
     public int getBackgroundColor(int defaultColor) {
-        return TextUtils.isEmpty(bgColor) ? defaultColor : Integer.parseInt(bgColor);
+        return getNonEmptyColor(bgColor, defaultColor);
     }
 
     public int getForegroundColor(int defaultColor) {
-        return TextUtils.isEmpty(fgColor) ? defaultColor : Integer.parseInt(fgColor);
+        return getNonEmptyColor(fgColor, defaultColor);
+    }
+
+    /**
+     * Returns the candidate color if non-emptyp, or the default if the candidate is empty
+     * @param candidate
+     * @return
+     */
+    public static int getNonEmptyColor(String candidate, int defaultColor) {
+        return TextUtils.isEmpty(candidate) ? defaultColor : Integer.parseInt(candidate);
+
     }
 
     /**
@@ -620,7 +631,7 @@
      * all the fields.
      */
     public static Folder getDeficientDisplayOnlyFolder(Cursor cursor) {
-        Folder f = Folder.newUnsafeInstance();
+        Folder f = new Folder();
         f.id = cursor.getInt(UIProvider.FOLDER_ID_COLUMN);
         f.uri = Utils.getValidUri(cursor.getString(UIProvider.FOLDER_URI_COLUMN));
         f.totalCount = cursor.getInt(UIProvider.FOLDER_TOTAL_COUNT_COLUMN);
diff --git a/src/com/android/mail/ui/FolderListFragment.java b/src/com/android/mail/ui/FolderListFragment.java
index e912bab..7ebea4a 100644
--- a/src/com/android/mail/ui/FolderListFragment.java
+++ b/src/com/android/mail/ui/FolderListFragment.java
@@ -728,7 +728,7 @@
         /**
          * Given an account, get the unreadCount from the FolderWatcher.
          *
-         * @param c Account to get inbox unread count from
+         * @param account Account to get inbox unread count from
          * @return Default inbox unread count
          */
         public int getInboxUnreadCount(Account account) {