am bcb16b98: Check tablet mode through resources

# Via Vikram Aggarwal
* commit 'bcb16b98140a83a4db3c51568d21c839595f73df':
  Check tablet mode through resources
diff --git a/src/com/android/mail/browse/ConversationItemView.java b/src/com/android/mail/browse/ConversationItemView.java
index 7984950..786af85 100644
--- a/src/com/android/mail/browse/ConversationItemView.java
+++ b/src/com/android/mail/browse/ConversationItemView.java
@@ -585,7 +585,7 @@
         if (mHeader.conversation.conversationInfo != null) {
             Context context = getContext();
             mHeader.messageInfoString = SendersView
-                    .createMessageInfo(context, mHeader.conversation);
+                    .createMessageInfo(context, mHeader.conversation, true);
             int maxChars = ConversationItemViewCoordinates.getSendersLength(context,
                     ConversationItemViewCoordinates.getMode(context, mActivity.getViewMode()),
                     mHeader.conversation.hasAttachments);
@@ -594,11 +594,12 @@
             mHeader.styledSenders = new ArrayList<SpannableString>();
             SendersView.format(context, mHeader.conversation.conversationInfo,
                     mHeader.messageInfoString.toString(), maxChars, mHeader.styledSenders,
-                    mHeader.displayableSenderNames, mHeader.displayableSenderEmails, mAccount);
+                    mHeader.displayableSenderNames, mHeader.displayableSenderEmails, mAccount,
+                    true);
             // If we have displayable sendres, load their thumbnails
             loadSenderImages();
         } else {
-            SendersView.formatSenders(mHeader, getContext());
+            SendersView.formatSenders(mHeader, getContext(), true);
         }
 
         SpannableString spannableDate = new SpannableString(DateUtils.getRelativeTimeSpanString(
diff --git a/src/com/android/mail/browse/SendersView.java b/src/com/android/mail/browse/SendersView.java
index b6870a9..4f43326 100644
--- a/src/com/android/mail/browse/SendersView.java
+++ b/src/com/android/mail/browse/SendersView.java
@@ -95,13 +95,14 @@
         return isUnread ? Typeface.DEFAULT_BOLD : Typeface.DEFAULT;
     }
 
-    private static void getSenderResources(Context context) {
-        if (sConfigurationChangedReceiver == null) {
+    private static synchronized void getSenderResources(
+            Context context, final boolean resourceCachingRequired) {
+        if (sConfigurationChangedReceiver == null && resourceCachingRequired) {
             sConfigurationChangedReceiver = new BroadcastReceiver() {
                 @Override
                 public void onReceive(Context context, Intent intent) {
                     sDraftSingularString = null;
-                    getSenderResources(context);
+                    getSenderResources(context, true);
                 }
             };
             context.registerReceiver(sConfigurationChangedReceiver, new IntentFilter(
@@ -127,87 +128,108 @@
         }
     }
 
-    public static SpannableStringBuilder createMessageInfo(Context context, Conversation conv) {
-        ConversationInfo conversationInfo = conv.conversationInfo;
-        int sendingStatus = conv.sendingState;
+    public static SpannableStringBuilder createMessageInfo(Context context, Conversation conv,
+            final boolean resourceCachingRequired) {
         SpannableStringBuilder messageInfo = new SpannableStringBuilder();
-        boolean hasSenders = false;
-        // This covers the case where the sender is "me" and this is a draft
-        // message, which means this will only run once most of the time.
-        for (MessageInfo m : conversationInfo.messageInfos) {
-            if (!TextUtils.isEmpty(m.sender)) {
-                hasSenders = true;
-                break;
+
+        try {
+            ConversationInfo conversationInfo = conv.conversationInfo;
+            int sendingStatus = conv.sendingState;
+            boolean hasSenders = false;
+            // This covers the case where the sender is "me" and this is a draft
+            // message, which means this will only run once most of the time.
+            for (MessageInfo m : conversationInfo.messageInfos) {
+                if (!TextUtils.isEmpty(m.sender)) {
+                    hasSenders = true;
+                    break;
+                }
+            }
+            getSenderResources(context, resourceCachingRequired);
+            if (conversationInfo != null) {
+                int count = conversationInfo.messageCount;
+                int draftCount = conversationInfo.draftCount;
+                boolean showSending = sendingStatus == UIProvider.ConversationSendingState.SENDING;
+                if (count > 1) {
+                    messageInfo.append(count + "");
+                }
+                messageInfo.setSpan(CharacterStyle.wrap(
+                        conv.read ? sMessageInfoReadStyleSpan : sMessageInfoUnreadStyleSpan),
+                        0, messageInfo.length(), 0);
+                if (draftCount > 0) {
+                    // If we are showing a message count or any draft text and there
+                    // is at least 1 sender, prepend the sending state text with a
+                    // comma.
+                    if (hasSenders || count > 1) {
+                        messageInfo.append(sSendersSplitToken);
+                    }
+                    SpannableStringBuilder draftString = new SpannableStringBuilder();
+                    if (draftCount == 1) {
+                        draftString.append(sDraftSingularString);
+                    } else {
+                        draftString.append(sDraftPluralString
+                                + String.format(sDraftCountFormatString, draftCount));
+                    }
+                    draftString.setSpan(CharacterStyle.wrap(sDraftsStyleSpan), 0,
+                            draftString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+                    messageInfo.append(draftString);
+                }
+                if (showSending) {
+                    // If we are showing a message count or any draft text, prepend
+                    // the sending state text with a comma.
+                    if (count > 1 || draftCount > 0) {
+                        messageInfo.append(sSendersSplitToken);
+                    }
+                    SpannableStringBuilder sending = new SpannableStringBuilder();
+                    sending.append(sSendingString);
+                    sending.setSpan(sSendingStyleSpan, 0, sending.length(), 0);
+                    messageInfo.append(sending);
+                }
+                // Prepend a space if we are showing other message info text.
+                if (count > 1 || (draftCount > 0 && hasSenders) || showSending) {
+                    messageInfo = new SpannableStringBuilder(sMessageCountSpacerString)
+                            .append(messageInfo);
+                }
+            }
+        } finally {
+            if (!resourceCachingRequired) {
+                clearResourceCache();
             }
         }
-        getSenderResources(context);
-        if (conversationInfo != null) {
-            int count = conversationInfo.messageCount;
-            int draftCount = conversationInfo.draftCount;
-            boolean showSending = sendingStatus == UIProvider.ConversationSendingState.SENDING;
-            if (count > 1) {
-                messageInfo.append(count + "");
-            }
-            messageInfo.setSpan(CharacterStyle.wrap(
-                    conv.read ? sMessageInfoReadStyleSpan : sMessageInfoUnreadStyleSpan),
-                    0, messageInfo.length(), 0);
-            if (draftCount > 0) {
-                // If we are showing a message count or any draft text and there
-                // is at least 1 sender, prepend the sending state text with a
-                // comma.
-                if (hasSenders || count > 1) {
-                    messageInfo.append(sSendersSplitToken);
-                }
-                SpannableStringBuilder draftString = new SpannableStringBuilder();
-                if (draftCount == 1) {
-                    draftString.append(sDraftSingularString);
-                } else {
-                    draftString.append(sDraftPluralString
-                            + String.format(sDraftCountFormatString, draftCount));
-                }
-                draftString.setSpan(CharacterStyle.wrap(sDraftsStyleSpan), 0, draftString.length(),
-                        Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
-                messageInfo.append(draftString);
-            }
-            if (showSending) {
-                // If we are showing a message count or any draft text, prepend
-                // the sending state text with a comma.
-                if (count > 1 || draftCount > 0) {
-                    messageInfo.append(sSendersSplitToken);
-                }
-                SpannableStringBuilder sending = new SpannableStringBuilder();
-                sending.append(sSendingString);
-                sending.setSpan(sSendingStyleSpan, 0, sending.length(), 0);
-                messageInfo.append(sending);
-            }
-            // Prepend a space if we are showing other message info text.
-            if (count > 1 || (draftCount > 0 && hasSenders) || showSending) {
-                messageInfo = new SpannableStringBuilder(sMessageCountSpacerString)
-                        .append(messageInfo);
-            }
-        }
+
         return messageInfo;
     }
 
     public static void format(Context context, ConversationInfo conversationInfo,
             String messageInfo, int maxChars, ArrayList<SpannableString> styledSenders,
             ArrayList<String> displayableSenderNames, ArrayList<String> displayableSenderEmails,
-            String account) {
-        getSenderResources(context);
-        format(context, conversationInfo, messageInfo, maxChars, styledSenders,
-                displayableSenderNames, displayableSenderEmails, account,
-                sUnreadStyleSpan, sReadStyleSpan);
+            String account, final boolean resourceCachingRequired) {
+        try {
+            getSenderResources(context, resourceCachingRequired);
+            format(context, conversationInfo, messageInfo, maxChars, styledSenders,
+                    displayableSenderNames, displayableSenderEmails, account,
+                    sUnreadStyleSpan, sReadStyleSpan, resourceCachingRequired);
+        } finally {
+            if (!resourceCachingRequired) {
+                clearResourceCache();
+            }
+        }
     }
 
     public static void format(Context context, ConversationInfo conversationInfo,
             String messageInfo, int maxChars, ArrayList<SpannableString> styledSenders,
             ArrayList<String> displayableSenderNames, ArrayList<String> displayableSenderEmails,
             String account, final TextAppearanceSpan notificationUnreadStyleSpan,
-            final CharacterStyle notificationReadStyleSpan) {
-        getSenderResources(context);
-        handlePriority(context, maxChars, messageInfo, conversationInfo, styledSenders,
-                displayableSenderNames, displayableSenderEmails, account,
-                notificationUnreadStyleSpan, notificationReadStyleSpan);
+            final CharacterStyle notificationReadStyleSpan, final boolean resourceCachingRequired) {
+        try {
+            getSenderResources(context, resourceCachingRequired);
+            handlePriority(context, maxChars, messageInfo, conversationInfo, styledSenders,
+                    displayableSenderNames, displayableSenderEmails, account,
+                    notificationUnreadStyleSpan, notificationReadStyleSpan);
+        } finally {
+            if (!resourceCachingRequired) {
+                clearResourceCache();
+            }
+        }
     }
 
     public static void handlePriority(Context context, int maxChars, String messageInfoString,
@@ -363,25 +385,32 @@
     }
 
     private static void formatDefault(ConversationItemViewModel header, String sendersString,
-            Context context, final CharacterStyle readStyleSpan) {
-        getSenderResources(context);
-        // Clear any existing sender fragments; we must re-make all of them.
-        header.senderFragments.clear();
-        String[] senders = TextUtils.split(sendersString, Address.ADDRESS_DELIMETER);
-        String[] namesOnly = new String[senders.length];
-        Rfc822Token[] senderTokens;
-        String display;
-        for (int i = 0; i < senders.length; i++) {
-            senderTokens = Rfc822Tokenizer.tokenize(senders[i]);
-            if (senderTokens != null && senderTokens.length > 0) {
-                display = senderTokens[0].getName();
-                if (TextUtils.isEmpty(display)) {
-                    display = senderTokens[0].getAddress();
+            Context context, final CharacterStyle readStyleSpan,
+            final boolean resourceCachingRequired) {
+        try {
+            getSenderResources(context, resourceCachingRequired);
+            // Clear any existing sender fragments; we must re-make all of them.
+            header.senderFragments.clear();
+            String[] senders = TextUtils.split(sendersString, Address.ADDRESS_DELIMETER);
+            String[] namesOnly = new String[senders.length];
+            Rfc822Token[] senderTokens;
+            String display;
+            for (int i = 0; i < senders.length; i++) {
+                senderTokens = Rfc822Tokenizer.tokenize(senders[i]);
+                if (senderTokens != null && senderTokens.length > 0) {
+                    display = senderTokens[0].getName();
+                    if (TextUtils.isEmpty(display)) {
+                        display = senderTokens[0].getAddress();
+                    }
+                    namesOnly[i] = display;
                 }
-                namesOnly[i] = display;
+            }
+            generateSenderFragments(header, namesOnly, readStyleSpan);
+        } finally {
+            if (!resourceCachingRequired) {
+                clearResourceCache();
             }
         }
-        generateSenderFragments(header, namesOnly, readStyleSpan);
     }
 
     private static void generateSenderFragments(ConversationItemViewModel header, String[] names,
@@ -391,13 +420,31 @@
                 true);
     }
 
-    public static void formatSenders(ConversationItemViewModel header, Context context) {
-        getSenderResources(context);
-        formatSenders(header, context, sReadStyleSpan);
+    public static void formatSenders(ConversationItemViewModel header, Context context,
+            final boolean resourceCachingRequired) {
+        try {
+            getSenderResources(context, resourceCachingRequired);
+            formatSenders(header, context, sReadStyleSpan, resourceCachingRequired);
+        } finally {
+            if (!resourceCachingRequired) {
+                clearResourceCache();
+            }
+        }
     }
 
     public static void formatSenders(ConversationItemViewModel header, Context context,
-            final CharacterStyle readStyleSpan) {
-        formatDefault(header, header.conversation.senders, context, readStyleSpan);
+            final CharacterStyle readStyleSpan, final boolean resourceCachingRequired) {
+        try {
+            formatDefault(header, header.conversation.senders, context, readStyleSpan,
+                    resourceCachingRequired);
+        } finally {
+            if (!resourceCachingRequired) {
+                clearResourceCache();
+            }
+        }
+    }
+
+    private static void clearResourceCache() {
+        sDraftSingularString = null;
     }
 }
diff --git a/src/com/android/mail/providers/MailAppProvider.java b/src/com/android/mail/providers/MailAppProvider.java
index 587170d..798c446 100644
--- a/src/com/android/mail/providers/MailAppProvider.java
+++ b/src/com/android/mail/providers/MailAppProvider.java
@@ -295,8 +295,8 @@
                     case UIProvider.ACCOUNT_SETTINGS_REPLY_BEHAVIOR_COLUMN:
                         builder.add(Integer.valueOf(account.settings.replyBehavior));
                         break;
-                    case UIProvider.ACCOUNT_SETTINGS_HIDE_CHECKBOXES_COLUMN:
-                        builder.add(Integer.valueOf(account.settings.hideCheckboxes ? 1 : 0));
+                    case UIProvider.ACCOUNT_SETTINGS_SHOW_CHECKBOXES_COLUMN:
+                        builder.add(Integer.valueOf(account.settings.showCheckboxes ? 1 : 0));
                         break;
                     case UIProvider.ACCOUNT_SETTINGS_CONFIRM_DELETE_COLUMN:
                         builder.add(Integer.valueOf(account.settings.confirmDelete ? 1 : 0));
diff --git a/src/com/android/mail/providers/Settings.java b/src/com/android/mail/providers/Settings.java
index b77a19d..d37bab1 100644
--- a/src/com/android/mail/providers/Settings.java
+++ b/src/com/android/mail/providers/Settings.java
@@ -66,7 +66,7 @@
     public final int messageTextSize;
     public final int snapHeaders;
     public final int replyBehavior;
-    public final boolean hideCheckboxes;
+    public final boolean showCheckboxes;
     public final boolean confirmDelete;
     public final boolean confirmArchive;
     public final boolean confirmSend;
@@ -101,7 +101,7 @@
         messageTextSize = MessageTextSize.NORMAL;
         snapHeaders = SnapHeaderValue.ALWAYS;
         replyBehavior = DefaultReplyBehavior.REPLY;
-        hideCheckboxes = false;
+        showCheckboxes = false;
         confirmDelete = false;
         confirmArchive = false;
         confirmSend = false;
@@ -122,7 +122,7 @@
         messageTextSize = inParcel.readInt();
         snapHeaders = inParcel.readInt();
         replyBehavior = inParcel.readInt();
-        hideCheckboxes = inParcel.readInt() != 0;
+        showCheckboxes = inParcel.readInt() != 0;
         confirmDelete = inParcel.readInt() != 0;
         confirmArchive = inParcel.readInt() != 0;
         confirmSend = inParcel.readInt() != 0;
@@ -143,7 +143,7 @@
         messageTextSize = cursor.getInt(UIProvider.ACCOUNT_SETTINGS_MESSAGE_TEXT_SIZE_COLUMN);
         snapHeaders = cursor.getInt(UIProvider.ACCOUNT_SETTINGS_SNAP_HEADERS_COLUMN);
         replyBehavior = cursor.getInt(UIProvider.ACCOUNT_SETTINGS_REPLY_BEHAVIOR_COLUMN);
-        hideCheckboxes = cursor.getInt(UIProvider.ACCOUNT_SETTINGS_HIDE_CHECKBOXES_COLUMN) != 0;
+        showCheckboxes = cursor.getInt(UIProvider.ACCOUNT_SETTINGS_SHOW_CHECKBOXES_COLUMN) != 0;
         confirmDelete = cursor.getInt(UIProvider.ACCOUNT_SETTINGS_CONFIRM_DELETE_COLUMN) != 0;
         confirmArchive = cursor.getInt(UIProvider.ACCOUNT_SETTINGS_CONFIRM_ARCHIVE_COLUMN) != 0;
         confirmSend = cursor.getInt(UIProvider.ACCOUNT_SETTINGS_CONFIRM_SEND_COLUMN) != 0;
@@ -173,8 +173,8 @@
                 sDefault.snapHeaders);
         replyBehavior = json.optInt(AccountColumns.SettingsColumns.REPLY_BEHAVIOR,
                 sDefault.replyBehavior);
-        hideCheckboxes = json.optBoolean(AccountColumns.SettingsColumns.HIDE_CHECKBOXES,
-                sDefault.hideCheckboxes);
+        showCheckboxes = json.optBoolean(AccountColumns.SettingsColumns.SHOW_CHECKBOXES,
+                sDefault.showCheckboxes);
         confirmDelete = json.optBoolean(AccountColumns.SettingsColumns.CONFIRM_DELETE,
                 sDefault.confirmDelete);
         confirmArchive = json.optBoolean(AccountColumns.SettingsColumns.CONFIRM_ARCHIVE,
@@ -228,7 +228,7 @@
             json.put(AccountColumns.SettingsColumns.MESSAGE_TEXT_SIZE, messageTextSize);
             json.put(AccountColumns.SettingsColumns.SNAP_HEADERS, snapHeaders);
             json.put(AccountColumns.SettingsColumns.REPLY_BEHAVIOR, replyBehavior);
-            json.put(AccountColumns.SettingsColumns.HIDE_CHECKBOXES, hideCheckboxes);
+            json.put(AccountColumns.SettingsColumns.SHOW_CHECKBOXES, showCheckboxes);
             json.put(AccountColumns.SettingsColumns.CONFIRM_DELETE, confirmDelete);
             json.put(AccountColumns.SettingsColumns.CONFIRM_ARCHIVE, confirmArchive);
             json.put(AccountColumns.SettingsColumns.CONFIRM_SEND, confirmSend);
@@ -298,7 +298,7 @@
         dest.writeInt(messageTextSize);
         dest.writeInt(snapHeaders);
         dest.writeInt(replyBehavior);
-        dest.writeInt(hideCheckboxes ? 1 : 0);
+        dest.writeInt(showCheckboxes ? 1 : 0);
         dest.writeInt(confirmDelete ? 1 : 0);
         dest.writeInt(confirmArchive? 1 : 0);
         dest.writeInt(confirmSend? 1 : 0);
@@ -391,7 +391,7 @@
                 && messageTextSize == that.messageTextSize
                 && snapHeaders == that.snapHeaders
                 && replyBehavior == that.replyBehavior
-                && hideCheckboxes == that.hideCheckboxes
+                && showCheckboxes == that.showCheckboxes
                 && confirmDelete == that.confirmDelete
                 && confirmArchive == that.confirmArchive
                 && confirmSend == that.confirmSend
@@ -420,7 +420,7 @@
     private final int calculateHashCode() {
         return super.hashCode()
                 ^ Objects.hashCode(signature, mAutoAdvance, mTransientAutoAdvance, messageTextSize,
-                        snapHeaders, replyBehavior, hideCheckboxes, confirmDelete, confirmArchive,
+                        snapHeaders, replyBehavior, showCheckboxes, confirmDelete, confirmArchive,
                         confirmSend, defaultInbox, forceReplyFromDefault, maxAttachmentSize, swipe,
                         priorityArrowsEnabled, setupIntentUri, conversationViewMode,
                         veiledAddressPattern);
diff --git a/src/com/android/mail/providers/UIProvider.java b/src/com/android/mail/providers/UIProvider.java
index 48af7d6..76772b0 100644
--- a/src/com/android/mail/providers/UIProvider.java
+++ b/src/com/android/mail/providers/UIProvider.java
@@ -151,7 +151,7 @@
             .put(AccountColumns.SettingsColumns.MESSAGE_TEXT_SIZE, Integer.class)
             .put(AccountColumns.SettingsColumns.SNAP_HEADERS, Integer.class)
             .put(AccountColumns.SettingsColumns.REPLY_BEHAVIOR, Integer.class)
-            .put(AccountColumns.SettingsColumns.HIDE_CHECKBOXES, Integer.class)
+            .put(AccountColumns.SettingsColumns.SHOW_CHECKBOXES, Integer.class)
             .put(AccountColumns.SettingsColumns.CONFIRM_DELETE, Integer.class)
             .put(AccountColumns.SettingsColumns.CONFIRM_ARCHIVE, Integer.class)
             .put(AccountColumns.SettingsColumns.CONFIRM_SEND, Integer.class)
@@ -203,7 +203,7 @@
     public static final int ACCOUNT_SETTINGS_MESSAGE_TEXT_SIZE_COLUMN = 28;
     public static final int ACCOUNT_SETTINGS_SNAP_HEADERS_COLUMN = 29;
     public static final int ACCOUNT_SETTINGS_REPLY_BEHAVIOR_COLUMN = 30;
-    public static final int ACCOUNT_SETTINGS_HIDE_CHECKBOXES_COLUMN = 31;
+    public static final int ACCOUNT_SETTINGS_SHOW_CHECKBOXES_COLUMN = 31;
     public static final int ACCOUNT_SETTINGS_CONFIRM_DELETE_COLUMN = 32;
     public static final int ACCOUNT_SETTINGS_CONFIRM_ARCHIVE_COLUMN = 33;
     public static final int ACCOUNT_SETTINGS_CONFIRM_SEND_COLUMN = 34;
@@ -528,9 +528,9 @@
 
             /**
              * Integer column containing the user's specified checkbox preference. A
-             * non zero value means to hide checkboxes.
+             * non zero value means to show checkboxes.
              */
-            public static final String HIDE_CHECKBOXES = "hide_checkboxes";
+            public static final String SHOW_CHECKBOXES = "show_checkboxes";
 
             /**
              * Integer column containing the user's specified confirm delete preference value.
@@ -638,8 +638,8 @@
             .put(AccountColumns.SettingsColumns.SNAP_HEADERS,ACCOUNT_SETTINGS_SNAP_HEADERS_COLUMN)
             .put(AccountColumns.SettingsColumns.REPLY_BEHAVIOR,
                     ACCOUNT_SETTINGS_REPLY_BEHAVIOR_COLUMN)
-            .put(AccountColumns.SettingsColumns.HIDE_CHECKBOXES,
-                    ACCOUNT_SETTINGS_HIDE_CHECKBOXES_COLUMN)
+            .put(AccountColumns.SettingsColumns.SHOW_CHECKBOXES,
+                    ACCOUNT_SETTINGS_SHOW_CHECKBOXES_COLUMN)
             .put(AccountColumns.SettingsColumns.CONFIRM_DELETE,
                     ACCOUNT_SETTINGS_CONFIRM_DELETE_COLUMN)
             .put(AccountColumns.SettingsColumns.CONFIRM_ARCHIVE,
diff --git a/src/com/android/mail/ui/AnimatedAdapter.java b/src/com/android/mail/ui/AnimatedAdapter.java
index d456783..e320ac3 100644
--- a/src/com/android/mail/ui/AnimatedAdapter.java
+++ b/src/com/android/mail/ui/AnimatedAdapter.java
@@ -211,7 +211,7 @@
             view = new SwipeableConversationItemView(context, mAccount.name);
         }
         view.bind(conv, mActivity, mBatchConversations, mFolder,
-                mAccount != null ? mAccount.settings.hideCheckboxes : false, mSwipeEnabled,
+                mAccount != null ? !mAccount.settings.showCheckboxes : false, mSwipeEnabled,
                 mPriorityMarkersEnabled, this);
         return view;
     }
@@ -541,7 +541,7 @@
             return;
         }
         ((SwipeableConversationItemView) view).bind(cursor, mActivity, mBatchConversations, mFolder,
-                mAccount != null ? mAccount.settings.hideCheckboxes : false,
+                mAccount != null ? !mAccount.settings.showCheckboxes : false,
                         mSwipeEnabled, mPriorityMarkersEnabled, this);
     }
 
@@ -551,7 +551,7 @@
                 position, null, parent);
         view.reset();
         view.bind(conversation, mActivity, mBatchConversations, mFolder,
-                mAccount != null ? mAccount.settings.hideCheckboxes : false, mSwipeEnabled,
+                mAccount != null ? !mAccount.settings.showCheckboxes : false, mSwipeEnabled,
                 mPriorityMarkersEnabled, this);
         mAnimatingViews.put(conversation.id, view);
         return view;
@@ -797,4 +797,4 @@
             item.cancelFadeOutText();
         }
     }
-}
+}
\ No newline at end of file
diff --git a/src/com/android/mail/ui/ConversationListFragment.java b/src/com/android/mail/ui/ConversationListFragment.java
index fa9f595..ec4c428 100644
--- a/src/com/android/mail/ui/ConversationListFragment.java
+++ b/src/com/android/mail/ui/ConversationListFragment.java
@@ -435,7 +435,7 @@
         if (!(view instanceof ToggleableItem)) {
             return;
         }
-        if (mAccount.settings.hideCheckboxes && !mSelectedSet.isEmpty()) {
+        if (!mAccount.settings.showCheckboxes && !mSelectedSet.isEmpty()) {
             ToggleableItem v = (ToggleableItem) view;
             v.toggleCheckMarkOrBeginDrag();
         } else {
diff --git a/src/com/android/mail/utils/LogUtils.java b/src/com/android/mail/utils/LogUtils.java
index 9ec466b..6176ec8 100644
--- a/src/com/android/mail/utils/LogUtils.java
+++ b/src/com/android/mail/utils/LogUtils.java
@@ -60,7 +60,7 @@
      * Used to enable/disable logging that we don't want included in
      * production releases.
      */
-    private static final int MAX_ENABLED_LOG_LEVEL = VERBOSE;
+    private static final int MAX_ENABLED_LOG_LEVEL = DEBUG;
 
     private static Boolean sDebugLoggingEnabledForTests = null;
 
diff --git a/src/com/android/mail/widget/WidgetService.java b/src/com/android/mail/widget/WidgetService.java
index fd31bf1..f588022 100644
--- a/src/com/android/mail/widget/WidgetService.java
+++ b/src/com/android/mail/widget/WidgetService.java
@@ -363,7 +363,7 @@
                 if (conversation.conversationInfo != null) {
                     ArrayList<SpannableString> senders = new ArrayList<SpannableString>();
                     SendersView.format(mContext, conversation.conversationInfo, "",
-                            MAX_SENDERS_LENGTH, senders, null, null, mAccount.name);
+                            MAX_SENDERS_LENGTH, senders, null, null, mAccount.name, true);
                     senderBuilder = ellipsizeStyledSenders(conversation.conversationInfo,
                             MAX_SENDERS_LENGTH, senders);
                 } else {
diff --git a/tests/src/com/android/mail/browse/SendersFormattingTests.java b/tests/src/com/android/mail/browse/SendersFormattingTests.java
index 2aa625f..2020c05 100644
--- a/tests/src/com/android/mail/browse/SendersFormattingTests.java
+++ b/tests/src/com/android/mail/browse/SendersFormattingTests.java
@@ -43,8 +43,8 @@
         conv.addMessage(info);
         ArrayList<SpannableString> strings = new ArrayList<SpannableString>();
         ArrayList<String> emailDisplays = null;
-        SendersView
-                .format(getContext(), conv, "", 100, strings, emailDisplays, emailDisplays, null);
+        SendersView.format(getContext(), conv, "", 100, strings, emailDisplays, emailDisplays,
+                null, false);
         assertEquals(1, strings.size());
         assertEquals(strings.get(0).toString(), "me");
 
@@ -52,8 +52,8 @@
         MessageInfo info2 = new MessageInfo(read, starred, "", -1, null);
         strings.clear();
         conv2.addMessage(info2);
-        SendersView
-                .format(getContext(), conv, "", 100, strings, emailDisplays, emailDisplays, null);
+        SendersView.format(getContext(), conv, "", 100, strings, emailDisplays, emailDisplays,
+                null, false);
         assertEquals(1, strings.size());
         assertEquals(strings.get(0).toString(), "me");
 
@@ -63,8 +63,8 @@
         MessageInfo info4 = new MessageInfo(read, starred, "", -1, null);
         conv3.addMessage(info4);
         strings.clear();
-        SendersView
-                .format(getContext(), conv, "", 100, strings, emailDisplays, emailDisplays, null);
+        SendersView.format(getContext(), conv, "", 100, strings, emailDisplays, emailDisplays,
+                null, false);
         assertEquals(1, strings.size());
         assertEquals(strings.get(0).toString(), "me");
     }
@@ -80,8 +80,8 @@
         conv.addMessage(info);
         MessageInfo info2 = new MessageInfo(read, starred, sender, -1, null);
         conv.addMessage(info2);
-        SendersView
-                .format(getContext(), conv, "", 100, strings, emailDisplays, emailDisplays, null);
+        SendersView.format(getContext(), conv, "", 100, strings, emailDisplays, emailDisplays,
+                null, false);
         // We actually don't remove the item, we just set it to null, so count
         // just the non-null items.
         int count = 0;