18a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira/*
28a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira * Copyright (C) 2012 The Android Open Source Project
38a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira *
48a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira * Licensed under the Apache License, Version 2.0 (the "License");
58a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira * you may not use this file except in compliance with the License.
68a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira * You may obtain a copy of the License at
78a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira *
88a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira *      http://www.apache.org/licenses/LICENSE-2.0
98a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira *
108a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira * Unless required by applicable law or agreed to in writing, software
118a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira * distributed under the License is distributed on an "AS IS" BASIS,
128a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
138a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira * See the License for the specific language governing permissions and
148a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira * limitations under the License.
158a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira */
168a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira
178a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereirapackage com.android.mail.widget;
188a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira
198a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereiraimport android.content.Context;
20a839fd0af18f53574128e32dc0900339280fba05Andrew Sappersteinimport android.content.res.Resources;
218a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereiraimport android.graphics.Bitmap;
22a839fd0af18f53574128e32dc0900339280fba05Andrew Sappersteinimport android.graphics.BitmapFactory;
238a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereiraimport android.graphics.Typeface;
248a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereiraimport android.text.Spannable;
258a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereiraimport android.text.SpannableStringBuilder;
26a839fd0af18f53574128e32dc0900339280fba05Andrew Sappersteinimport android.text.style.AbsoluteSizeSpan;
270a612a52a6691cd5d80a5d33a7e7d6ceb0fdf97eJames Lemieuximport android.text.style.CharacterStyle;
28a839fd0af18f53574128e32dc0900339280fba05Andrew Sappersteinimport android.text.style.ForegroundColorSpan;
298a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereiraimport android.text.style.StyleSpan;
308a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereiraimport android.view.View;
318a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereiraimport android.widget.RemoteViews;
328a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira
33be0cb1e421831672f49c30ecb46e6eee765cb661Andrew Sappersteinimport com.android.mail.R;
34be0cb1e421831672f49c30ecb46e6eee765cb661Andrew Sappersteinimport com.android.mail.providers.Conversation;
35be0cb1e421831672f49c30ecb46e6eee765cb661Andrew Sappersteinimport com.android.mail.providers.Folder;
36be0cb1e421831672f49c30ecb46e6eee765cb661Andrew Sappersteinimport com.android.mail.ui.FolderDisplayer;
37be0cb1e421831672f49c30ecb46e6eee765cb661Andrew Sappersteinimport com.android.mail.utils.FolderUri;
38be0cb1e421831672f49c30ecb46e6eee765cb661Andrew Sapperstein
39747e678d20e99ddd17953ff4530d2ee3f1c6cfc7Mark Weipublic class WidgetConversationListItemViewBuilder {
40a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein    // Static colors
4160590466acfd8eda61ddfdb9e17fe9ff33bdd26cJames Lemieux    private static int SUBJECT_TEXT_COLOR_READ;
4260590466acfd8eda61ddfdb9e17fe9ff33bdd26cJames Lemieux    private static int SUBJECT_TEXT_COLOR_UNREAD;
43928308d6b10d353493492ad05e0227f960ddaa7eJames Lemieux    private static int SNIPPET_TEXT_COLOR;
441c6d71b47e7af11b3cf7bd6da4a89594941be968James Lemieux    private static int DATE_TEXT_COLOR_READ;
451c6d71b47e7af11b3cf7bd6da4a89594941be968James Lemieux    private static int DATE_TEXT_COLOR_UNREAD;
46a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein
47a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein    // Static bitmap
48a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein    private static Bitmap ATTACHMENT;
498a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira
50a4968036e4384431de74b96d43a40faaeecf053eMindy Pereira    private WidgetFolderDisplayer mFolderDisplayer;
518a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira
526fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira    /**
536fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira     * Label Displayer for Widget
546fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira     */
556fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira    protected static class WidgetFolderDisplayer extends FolderDisplayer {
566fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira        public WidgetFolderDisplayer(Context context) {
576fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira            super(context);
586fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira        }
596fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira
606fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira        // Maximum number of folders we want to display
616fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira        private static final int MAX_DISPLAYED_FOLDERS_COUNT = 3;
626fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira
636fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira        /*
646fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira         * Load Conversation Labels
656fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira         */
666fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira        @Override
67259df5b9e11908c8ef7c91483924891dd96b3c27Scott Kennedy        public void loadConversationFolders(Conversation conv, final FolderUri ignoreFolderUri,
6867aa9e5162a15fb8b46b4113ac627cd20668f095Scott Kennedy                final int ignoreFolderType) {
6967aa9e5162a15fb8b46b4113ac627cd20668f095Scott Kennedy            super.loadConversationFolders(conv, ignoreFolderUri, ignoreFolderType);
706fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira        }
716fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira
72b39aaf53a555c1046ef31b3fecf15d086acca013Scott Kennedy        private static int getFolderViewId(int position) {
736fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira            switch (position) {
746fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira                case 0:
756fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira                    return R.id.widget_folder_0;
766fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira                case 1:
776fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira                    return R.id.widget_folder_1;
786fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira                case 2:
796fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira                    return R.id.widget_folder_2;
806fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira            }
816fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira            return 0;
826fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira        }
836fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira
846fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira        /**
856fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira         * Display folders
866fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira         */
876fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira        public void displayFolders(RemoteViews remoteViews) {
886fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira            int displayedFolder = 0;
896fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira            for (Folder folderValues : mFoldersSortedSet) {
906fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira                int viewId = getFolderViewId(displayedFolder);
916fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira                if (viewId == 0) {
926fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira                    continue;
936fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira                }
946fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira                remoteViews.setViewVisibility(viewId, View.VISIBLE);
955edf5fd7327691b73dcb57c3cba340fd25576d18Jin Cao                int color[] = new int[]
965edf5fd7327691b73dcb57c3cba340fd25576d18Jin Cao                        {folderValues.getBackgroundColor(mFolderDrawableResources.defaultBgColor)};
976fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira                Bitmap bitmap = Bitmap.createBitmap(color, 1, 1, Bitmap.Config.RGB_565);
986fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira                remoteViews.setImageViewBitmap(viewId, bitmap);
996fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira
1006fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira                if (++displayedFolder == MAX_DISPLAYED_FOLDERS_COUNT) {
1016fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira                    break;
1026fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira                }
1036fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira            }
1046fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira
1056fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira            for (int i = displayedFolder; i < MAX_DISPLAYED_FOLDERS_COUNT; i++) {
1066fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira                remoteViews.setViewVisibility(getFolderViewId(i), View.GONE);
1076fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira            }
1086fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira        }
1096fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira    }
1106fe3cb987c44fd67e3094fff99769846d8adb8a8Mindy Pereira
1118a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira    /*
1128a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira     * Get font sizes and bitmaps from Resources
1138a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira     */
114747e678d20e99ddd17953ff4530d2ee3f1c6cfc7Mark Wei    public WidgetConversationListItemViewBuilder(Context context) {
115928308d6b10d353493492ad05e0227f960ddaa7eJames Lemieux        final Resources res = context.getResources();
116a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein
117a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein        // Initialize colors
11860590466acfd8eda61ddfdb9e17fe9ff33bdd26cJames Lemieux        SUBJECT_TEXT_COLOR_READ = res.getColor(R.color.subject_text_color_read);
11960590466acfd8eda61ddfdb9e17fe9ff33bdd26cJames Lemieux        SUBJECT_TEXT_COLOR_UNREAD = res.getColor(R.color.subject_text_color_unread);
120928308d6b10d353493492ad05e0227f960ddaa7eJames Lemieux        SNIPPET_TEXT_COLOR = res.getColor(R.color.snippet_text_color);
1211c6d71b47e7af11b3cf7bd6da4a89594941be968James Lemieux        DATE_TEXT_COLOR_READ = res.getColor(R.color.date_text_color_read);
1221c6d71b47e7af11b3cf7bd6da4a89594941be968James Lemieux        DATE_TEXT_COLOR_UNREAD = res.getColor(R.color.date_text_color_unread);
123a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein
124a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein        // Initialize Bitmap
125091484627a207de3fceea8727439082b022748aeJames Lemieux        ATTACHMENT = BitmapFactory.decodeResource(res, R.drawable.ic_attach_file_18dp);
126a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein    }
127a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein
128a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein    /*
129a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein     * Add size, color and style to a given text
130a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein     */
131ff35c4d206132d389cc5b77c488bd1fd41926e4dJames Lemieux    private static SpannableStringBuilder addStyle(CharSequence text, int size, int color) {
132ff35c4d206132d389cc5b77c488bd1fd41926e4dJames Lemieux        final SpannableStringBuilder builder = new SpannableStringBuilder(text);
133a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein        builder.setSpan(
134a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein                new AbsoluteSizeSpan(size), 0, text.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
135a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein        if (color != 0) {
136a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein            builder.setSpan(new ForegroundColorSpan(color), 0, text.length(),
137a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein                    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
138a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein        }
139a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein        return builder;
1408a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira    }
1418a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira
1428a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira    /*
1438a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira     * Return the full View
1448a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira     */
145928308d6b10d353493492ad05e0227f960ddaa7eJames Lemieux    public RemoteViews getStyledView(final Context context, final CharSequence date,
146928308d6b10d353493492ad05e0227f960ddaa7eJames Lemieux            final Conversation conversation, final FolderUri folderUri, final int ignoreFolderType,
14794033deeb31df739a27fce15887a3f0a2e808b12James Lemieux            final SpannableStringBuilder senders, String subject) {
1488a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira
14985c4a77abd849f5f3f0236d51554bb1bb99fe8f6Mindy Pereira        final boolean isUnread = !conversation.read;
150747e678d20e99ddd17953ff4530d2ee3f1c6cfc7Mark Wei        final String snippet = conversation.getSnippet();
151747e678d20e99ddd17953ff4530d2ee3f1c6cfc7Mark Wei        final boolean hasAttachments = conversation.hasAttachments;
152928308d6b10d353493492ad05e0227f960ddaa7eJames Lemieux        final Resources res = context.getResources();
153928308d6b10d353493492ad05e0227f960ddaa7eJames Lemieux        final int dateFontSize = res.getDimensionPixelSize(R.dimen.widget_date_font_size);
154928308d6b10d353493492ad05e0227f960ddaa7eJames Lemieux        final int subjectFontSize = res.getDimensionPixelSize(R.dimen.widget_subject_font_size);
1558a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira
156a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein        // Add style to date
1571c6d71b47e7af11b3cf7bd6da4a89594941be968James Lemieux        final int dateColor = isUnread ? DATE_TEXT_COLOR_UNREAD : DATE_TEXT_COLOR_READ;
158ff35c4d206132d389cc5b77c488bd1fd41926e4dJames Lemieux        final SpannableStringBuilder dateBuilder = addStyle(date, dateFontSize, dateColor);
159ff35c4d206132d389cc5b77c488bd1fd41926e4dJames Lemieux        if (isUnread) {
160ff35c4d206132d389cc5b77c488bd1fd41926e4dJames Lemieux            dateBuilder.setSpan(new StyleSpan(Typeface.BOLD), 0, date.length(),
161ff35c4d206132d389cc5b77c488bd1fd41926e4dJames Lemieux                    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
162ff35c4d206132d389cc5b77c488bd1fd41926e4dJames Lemieux        }
163a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein
16494033deeb31df739a27fce15887a3f0a2e808b12James Lemieux        subject = Conversation.getSubjectForDisplay(context, null /* badgeText */, subject);
16564f56828a81ad7e29cad3a254a6ecdc05c9284e8James Lemieux        final SpannableStringBuilder subjectBuilder = new SpannableStringBuilder(subject);
1668a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira        if (isUnread) {
16794033deeb31df739a27fce15887a3f0a2e808b12James Lemieux            subjectBuilder.setSpan(new StyleSpan(Typeface.BOLD), 0, subject.length(),
1688a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira                    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
1698a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira        }
17060590466acfd8eda61ddfdb9e17fe9ff33bdd26cJames Lemieux        final int subjectColor = isUnread ? SUBJECT_TEXT_COLOR_UNREAD : SUBJECT_TEXT_COLOR_READ;
17160590466acfd8eda61ddfdb9e17fe9ff33bdd26cJames Lemieux        final CharacterStyle subjectStyle = new ForegroundColorSpan(subjectColor);
1720a612a52a6691cd5d80a5d33a7e7d6ceb0fdf97eJames Lemieux        subjectBuilder.setSpan(subjectStyle, 0, subjectBuilder.length(),
1730a612a52a6691cd5d80a5d33a7e7d6ceb0fdf97eJames Lemieux                Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
174928308d6b10d353493492ad05e0227f960ddaa7eJames Lemieux        final CharSequence styledSubject = addStyle(subjectBuilder, subjectFontSize, 0);
175928308d6b10d353493492ad05e0227f960ddaa7eJames Lemieux
176928308d6b10d353493492ad05e0227f960ddaa7eJames Lemieux        final SpannableStringBuilder snippetBuilder = new SpannableStringBuilder(snippet);
177928308d6b10d353493492ad05e0227f960ddaa7eJames Lemieux        snippetBuilder.setSpan(new ForegroundColorSpan(SNIPPET_TEXT_COLOR), 0,
178928308d6b10d353493492ad05e0227f960ddaa7eJames Lemieux                snippetBuilder.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
179928308d6b10d353493492ad05e0227f960ddaa7eJames Lemieux        final CharSequence styledSnippet = addStyle(snippetBuilder, subjectFontSize, 0);
180a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein
181a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein        // Paper clip for attachment
182a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein        Bitmap paperclipBitmap = null;
183a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein        if (hasAttachments) {
184a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein            paperclipBitmap = ATTACHMENT;
185a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein        }
1868a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira
1878a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira        // Inflate and fill out the remote view
188747e678d20e99ddd17953ff4530d2ee3f1c6cfc7Mark Wei        final RemoteViews remoteViews = new RemoteViews(
189928308d6b10d353493492ad05e0227f960ddaa7eJames Lemieux                context.getPackageName(), R.layout.widget_conversation_list_item);
190178ac28d19065ceca8b293e13cf291d685080aa6Mindy Pereira        remoteViews.setTextViewText(R.id.widget_senders, senders);
191ff35c4d206132d389cc5b77c488bd1fd41926e4dJames Lemieux        remoteViews.setTextViewText(R.id.widget_date, dateBuilder);
192a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein        remoteViews.setTextViewText(R.id.widget_subject, styledSubject);
193928308d6b10d353493492ad05e0227f960ddaa7eJames Lemieux        remoteViews.setTextViewText(R.id.widget_snippet, styledSnippet);
194a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein        if (paperclipBitmap != null) {
195a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein            remoteViews.setViewVisibility(R.id.widget_attachment, View.VISIBLE);
196a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein            remoteViews.setImageViewBitmap(R.id.widget_attachment, paperclipBitmap);
197a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein        } else {
198a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein            remoteViews.setViewVisibility(R.id.widget_attachment, View.GONE);
199a839fd0af18f53574128e32dc0900339280fba05Andrew Sapperstein        }
2008a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira        if (isUnread) {
2018a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira            remoteViews.setViewVisibility(R.id.widget_unread_background, View.VISIBLE);
2028a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira            remoteViews.setViewVisibility(R.id.widget_read_background, View.GONE);
2038a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira        } else {
2048a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira            remoteViews.setViewVisibility(R.id.widget_unread_background, View.GONE);
2058a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira            remoteViews.setViewVisibility(R.id.widget_read_background, View.VISIBLE);
2068a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira        }
207928308d6b10d353493492ad05e0227f960ddaa7eJames Lemieux        if (context.getResources().getBoolean(R.bool.display_folder_colors_in_widget)) {
208928308d6b10d353493492ad05e0227f960ddaa7eJames Lemieux            mFolderDisplayer = new WidgetFolderDisplayer(context);
20967aa9e5162a15fb8b46b4113ac627cd20668f095Scott Kennedy            mFolderDisplayer.loadConversationFolders(conversation, folderUri, ignoreFolderType);
210a4968036e4384431de74b96d43a40faaeecf053eMindy Pereira            mFolderDisplayer.displayFolders(remoteViews);
211a4968036e4384431de74b96d43a40faaeecf053eMindy Pereira        }
2128a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira
2138a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira        return remoteViews;
2148a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira    }
2158a8c50d8fcc4f20549c9f395edbad017a940e72bMindy Pereira}
216