1bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook/* 2bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * Copyright (C) 2011 The Android Open Source Project 3bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * 4bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * Licensed under the Apache License, Version 2.0 (the "License"); 5bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * you may not use this file except in compliance with the License. 6bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * You may obtain a copy of the License at 7bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * 8bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * http://www.apache.org/licenses/LICENSE-2.0 9bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * 10bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * Unless required by applicable law or agreed to in writing, software 11bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * distributed under the License is distributed on an "AS IS" BASIS, 12bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * See the License for the specific language governing permissions and 14bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * limitations under the License. 15bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook */ 16bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook 17bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookpackage com.android.email.widget; 18bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook 19bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookimport com.android.email.R; 20bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookimport com.android.email.data.ThrottlingCursorLoader; 21bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookimport com.android.emailcommon.provider.Account; 22bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookimport com.android.emailcommon.provider.EmailContent; 23bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookimport com.android.emailcommon.provider.EmailContent.Message; 24bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookimport com.android.emailcommon.provider.EmailContent.MessageColumns; 25bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookimport com.android.emailcommon.provider.Mailbox; 26bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook 27bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookimport android.content.Context; 28bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookimport android.content.res.Resources; 29bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookimport android.database.Cursor; 30bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookimport android.database.CursorWrapper; 31bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook 32bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook/** 33bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * Loader for {@link EmailWidget}. 34bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * 35bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * This loader not only loads the messages, but also: 36bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * - The number of accounts. 37bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * - The message count shown in the widget header. 38bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * It's currently just the same as the message count, but this will be updated to the unread 39bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * counts for inboxes. 40bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook */ 41bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookclass EmailWidgetLoader extends ThrottlingCursorLoader { 42bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook private static final String SORT_TIMESTAMP_DESCENDING = MessageColumns.TIMESTAMP + " DESC"; 43bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook 44bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook // The projection to be used by the WidgetLoader 45bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook private static final String[] WIDGET_PROJECTION = new String[] { 46bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook EmailContent.RECORD_ID, MessageColumns.DISPLAY_NAME, MessageColumns.TIMESTAMP, 47bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook MessageColumns.SUBJECT, MessageColumns.FLAG_READ, MessageColumns.FLAG_FAVORITE, 48bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook MessageColumns.FLAG_ATTACHMENT, MessageColumns.MAILBOX_KEY, MessageColumns.SNIPPET, 49bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook MessageColumns.ACCOUNT_KEY, MessageColumns.FLAGS 50bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook }; 51bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook public static final int WIDGET_COLUMN_ID = 0; 52bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook public static final int WIDGET_COLUMN_DISPLAY_NAME = 1; 53bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook public static final int WIDGET_COLUMN_TIMESTAMP = 2; 54bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook public static final int WIDGET_COLUMN_SUBJECT = 3; 55bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook public static final int WIDGET_COLUMN_FLAG_READ = 4; 56bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook public static final int WIDGET_COLUMN_FLAG_FAVORITE = 5; 57bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook public static final int WIDGET_COLUMN_FLAG_ATTACHMENT = 6; 58bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook public static final int WIDGET_COLUMN_MAILBOX_KEY = 7; 59bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook public static final int WIDGET_COLUMN_SNIPPET = 8; 60bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook public static final int WIDGET_COLUMN_ACCOUNT_KEY = 9; 61bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook public static final int WIDGET_COLUMN_FLAGS = 10; 62bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook 63bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook private long mAccountId; 64bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook private long mMailboxId; 65bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook 66bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook /** 67bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * Cursor data specifically for use by the Email widget. Contains a cursor of messages in 68bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * addition to a message count and account name. The later elements were opportunistically 69bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * placed in this cursor. We could have defined multiple loaders for these items. 70bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook */ 71bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook static class WidgetCursor extends CursorWrapper { 72bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook private final int mMessageCount; 73bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook private final String mAccountName; 74bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook private final String mMailboxName; 75bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook 76bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook public WidgetCursor(Cursor cursor, int messageCount, String accountName, 77bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook String mailboxName) { 78bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook super(cursor); 79bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook mMessageCount = messageCount; 80bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook mAccountName = accountName; 81bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook mMailboxName = mailboxName; 82bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } 83bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook 84bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook /** 85bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * Gets the count to be shown on the widget header. If the currently viewed mailbox ID is 86bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * not {@link Mailbox#QUERY_ALL_FAVORITES}, it is the unread count, which is different from 87bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * number of records returned by {@link #getCount()}. 88bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook */ 89bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook public int getMessageCount() { 90bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook return mMessageCount; 91bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } 92bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook /** Gets the display name of the account */ 93bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook public String getAccountName() { 94bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook return mAccountName; 95bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } 96bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook /** Gets the display name of the mailbox */ 97bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook public String getMailboxName() { 98bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook return mMailboxName; 99bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } 100bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } 101bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook 102bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook private final Context mContext; 103bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook 104bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook EmailWidgetLoader(Context context) { 105bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook super(context, Message.CONTENT_URI, WIDGET_PROJECTION, null, 106bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook null, SORT_TIMESTAMP_DESCENDING); 107bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook mContext = context; 108bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } 109bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook 110bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook @Override 111bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook public Cursor loadInBackground() { 112bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook final Cursor messagesCursor = super.loadInBackground(); 113bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook 114bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook // Reset the notification Uri to our Message table notifier URI 115bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook messagesCursor.setNotificationUri(mContext.getContentResolver(), Message.NOTIFIER_URI); 116bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook 117bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook final int messageCount; 118bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook if (mMailboxId != Mailbox.QUERY_ALL_FAVORITES) { 119bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook String selection = "(" + getSelection() + " ) AND " + MessageColumns.FLAG_READ + " = 0"; 120bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook messageCount = EmailContent.count(mContext, Message.CONTENT_URI, selection, 121bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook getSelectionArgs()); 122bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } else { 123bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook // Just use the number of all messages shown. 124bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook messageCount = messagesCursor.getCount(); 125bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } 126bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook Account account = Account.restoreAccountWithId(mContext, mAccountId); 127bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook final String accountName; 128bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook if (account != null) { 129bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook accountName = account.mDisplayName; 130bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } else { 131bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook if (mAccountId == Account.ACCOUNT_ID_COMBINED_VIEW) { 132bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook int accountCount = EmailContent.count(mContext, Account.CONTENT_URI); 133bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook Resources res = mContext.getResources(); 134bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook String countString = 135bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook res.getQuantityString(R.plurals.picker_combined_view_account_count, 136bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook accountCount, accountCount); 137bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook accountName = res.getString(R.string.picker_combined_view_fmt, countString); 138bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } else { 139bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook // TODO What to use here? "unknown"? Account is real, but, doesn't exist. 140bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook accountName = null; 141bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } 142bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } 143bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook final String mailboxName; 144bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook if (mMailboxId > 0) { 145bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook Mailbox mailbox = Mailbox.restoreMailboxWithId(mContext, mMailboxId); 146bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook if (mailbox != null) { 147bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook mailboxName = mailbox.mDisplayName; // regular mailbox 148bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } else { 149bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook // TODO What use here? "unknown"? Mailbox is "real", but, doesn't exist. 150bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook mailboxName = null; 151bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } 152bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } else { 153bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook if (mMailboxId == Mailbox.QUERY_ALL_INBOXES) { 154bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook mailboxName = mContext.getString(R.string.picker_mailbox_name_all_inbox); 155bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } else { // default to all unread for the account's inbox 156bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook mailboxName = mContext.getString(R.string.picker_mailbox_name_all_unread); 157bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } 158bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } 159bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook 160bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook return new WidgetCursor(messagesCursor, messageCount, accountName, mailboxName); 161bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } 162bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook 163bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook /** 164bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * Stop any pending load, reset selection parameters, and start loading. 165bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * 166bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * Must be called from the UI thread 167bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * 168bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * @param accountId The ID of the account. May be {@link Account#ACCOUNT_ID_COMBINED_VIEW}. 169bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * @param mailboxId The mailbox to load; may either be a real mailbox or the pseudo mailbox 170bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * {@link Mailbox#QUERY_ALL_INBOXES} or {@link Mailbox#QUERY_ALL_UNREAD}. If it's 171bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * neither of these pseudo mailboxes, {@link Mailbox#QUERY_ALL_UNREAD} will be used. 172bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook */ 173bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook void load(long accountId, long mailboxId) { 174bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook reset(); 175bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook mAccountId = accountId; 176bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook mMailboxId = mailboxId; 177bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook setSelectionAndArgs(); 178bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook startLoading(); 179bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } 180bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook 181bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook /** Sets the loader's selection and arguments depending upon the account and mailbox */ 182bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook private void setSelectionAndArgs() { 183bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook if (mAccountId == Account.ACCOUNT_ID_COMBINED_VIEW) { 184bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook if (mMailboxId == Mailbox.QUERY_ALL_INBOXES) { 185bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook setSelection(Message.ALL_INBOX_SELECTION); 186bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } else { // default to all unread 187bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook setSelection(Message.ALL_UNREAD_SELECTION); 188bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } 189bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook setSelectionArgs(null); 190bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } else { 191bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook if (mMailboxId > 0L) { 192bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook // Simple mailbox selection 193bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook setSelection( 194bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook MessageColumns.ACCOUNT_KEY + "=? AND " + 195bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook MessageColumns.MAILBOX_KEY + "=?"); 196bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook setSelectionArgs( 197bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook new String[] { Long.toString(mAccountId), Long.toString(mMailboxId) }); 198bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } else { 199bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook if (mMailboxId == Mailbox.QUERY_ALL_INBOXES) { 200bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook setSelection(Message.PER_ACCOUNT_INBOX_SELECTION); 201bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } else { // default to all unread for the account's inbox 202bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook setSelection(Message.PER_ACCOUNT_UNREAD_SELECTION); 203bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } 204bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook setSelectionArgs(new String[] { Long.toString(mAccountId) }); 205bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } 206bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } 207bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } 208bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook} 209