/*
   * Return the full View
   */
  public RemoteViews getStyledView(
      final CharSequence date,
      final Conversation conversation,
      final FolderUri folderUri,
      final int ignoreFolderType,
      final SpannableStringBuilder senders,
      final String filteredSubject) {

    final boolean isUnread = !conversation.read;
    final String snippet = conversation.getSnippet();
    final boolean hasAttachments = conversation.hasAttachments;

    // Add style to date
    final CharSequence styledDate = addStyle(date, DATE_FONT_SIZE, DATE_TEXT_COLOR);

    // Add style to subject
    final int subjectColor = isUnread ? SUBJECT_TEXT_COLOR_UNREAD : SUBJECT_TEXT_COLOR_READ;
    final SpannableStringBuilder subjectAndSnippet =
        new SpannableStringBuilder(
            Conversation.getSubjectAndSnippetForDisplay(mContext, filteredSubject, snippet));
    if (isUnread) {
      subjectAndSnippet.setSpan(
          new StyleSpan(Typeface.BOLD),
          0,
          filteredSubject.length(),
          Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    }
    subjectAndSnippet.setSpan(
        new ForegroundColorSpan(subjectColor),
        0,
        subjectAndSnippet.length(),
        Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    final CharSequence styledSubject = addStyle(subjectAndSnippet, SUBJECT_FONT_SIZE, 0);

    // Paper clip for attachment
    Bitmap paperclipBitmap = null;
    if (hasAttachments) {
      paperclipBitmap = ATTACHMENT;
    }

    // Inflate and fill out the remote view
    final RemoteViews remoteViews =
        new RemoteViews(mContext.getPackageName(), R.layout.widget_conversation_list_item);
    remoteViews.setTextViewText(R.id.widget_senders, senders);
    remoteViews.setTextViewText(R.id.widget_date, styledDate);
    remoteViews.setTextViewText(R.id.widget_subject, styledSubject);
    if (paperclipBitmap != null) {
      remoteViews.setViewVisibility(R.id.widget_attachment, View.VISIBLE);
      remoteViews.setImageViewBitmap(R.id.widget_attachment, paperclipBitmap);
    } else {
      remoteViews.setViewVisibility(R.id.widget_attachment, View.GONE);
    }
    if (isUnread) {
      remoteViews.setViewVisibility(R.id.widget_unread_background, View.VISIBLE);
      remoteViews.setViewVisibility(R.id.widget_read_background, View.GONE);
    } else {
      remoteViews.setViewVisibility(R.id.widget_unread_background, View.GONE);
      remoteViews.setViewVisibility(R.id.widget_read_background, View.VISIBLE);
    }
    if (mContext.getResources().getBoolean(R.bool.display_folder_colors_in_widget)) {
      mFolderDisplayer = new WidgetFolderDisplayer(mContext);
      mFolderDisplayer.loadConversationFolders(conversation, folderUri, ignoreFolderType);
      mFolderDisplayer.displayFolders(remoteViews);
    }

    return remoteViews;
  }