1897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki/* 2897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki * Copyright (C) 2011 The Android Open Source Project 3897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki * 4897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki * Licensed under the Apache License, Version 2.0 (the "License"); 5897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki * you may not use this file except in compliance with the License. 6897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki * You may obtain a copy of the License at 7897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki * 8897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki * http://www.apache.org/licenses/LICENSE-2.0 9897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki * 10897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki * Unless required by applicable law or agreed to in writing, software 11897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki * distributed under the License is distributed on an "AS IS" BASIS, 12897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki * See the License for the specific language governing permissions and 14897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki * limitations under the License. 15897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki */ 16897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki 17897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onukipackage com.android.email.widget; 18897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki 19cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedyimport com.android.email.R; 20897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onukiimport com.android.email.data.ThrottlingCursorLoader; 21f5418f1f93b02e7fab9f15eb201800b65510998eMarc Blankimport com.android.emailcommon.provider.Account; 22897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onukiimport com.android.emailcommon.provider.EmailContent; 23897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onukiimport com.android.emailcommon.provider.EmailContent.Message; 24897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onukiimport com.android.emailcommon.provider.EmailContent.MessageColumns; 2544f5cd67c97da6a5c7e63a73b4dca7057b83cdbbTodd Kennedyimport com.android.emailcommon.provider.Mailbox; 26897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki 27897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onukiimport android.content.Context; 28cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedyimport android.content.res.Resources; 29897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onukiimport android.database.Cursor; 30897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onukiimport android.database.CursorWrapper; 31897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki 32897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki/** 33897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki * Loader for {@link EmailWidget}. 34897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki * 35897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki * This loader not only loads the messages, but also: 36897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki * - The number of accounts. 37897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki * - The message count shown in the widget header. 38897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki * It's currently just the same as the message count, but this will be updated to the unread 39897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki * counts for inboxes. 40897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki */ 4144f5cd67c97da6a5c7e63a73b4dca7057b83cdbbTodd Kennedyclass EmailWidgetLoader extends ThrottlingCursorLoader { 42897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki private static final String SORT_TIMESTAMP_DESCENDING = MessageColumns.TIMESTAMP + " DESC"; 43897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki 44897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki // The projection to be used by the WidgetLoader 45897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki private static final String[] WIDGET_PROJECTION = new String[] { 46897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki EmailContent.RECORD_ID, MessageColumns.DISPLAY_NAME, MessageColumns.TIMESTAMP, 47897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki MessageColumns.SUBJECT, MessageColumns.FLAG_READ, MessageColumns.FLAG_FAVORITE, 48897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki MessageColumns.FLAG_ATTACHMENT, MessageColumns.MAILBOX_KEY, MessageColumns.SNIPPET, 49897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki MessageColumns.ACCOUNT_KEY, MessageColumns.FLAGS 50897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki }; 51897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki public static final int WIDGET_COLUMN_ID = 0; 52897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki public static final int WIDGET_COLUMN_DISPLAY_NAME = 1; 53897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki public static final int WIDGET_COLUMN_TIMESTAMP = 2; 54897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki public static final int WIDGET_COLUMN_SUBJECT = 3; 55897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki public static final int WIDGET_COLUMN_FLAG_READ = 4; 56897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki public static final int WIDGET_COLUMN_FLAG_FAVORITE = 5; 57897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki public static final int WIDGET_COLUMN_FLAG_ATTACHMENT = 6; 58897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki public static final int WIDGET_COLUMN_MAILBOX_KEY = 7; 59897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki public static final int WIDGET_COLUMN_SNIPPET = 8; 60897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki public static final int WIDGET_COLUMN_ACCOUNT_KEY = 9; 61897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki public static final int WIDGET_COLUMN_FLAGS = 10; 62897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki 6344f5cd67c97da6a5c7e63a73b4dca7057b83cdbbTodd Kennedy private long mAccountId; 6444f5cd67c97da6a5c7e63a73b4dca7057b83cdbbTodd Kennedy private long mMailboxId; 6544f5cd67c97da6a5c7e63a73b4dca7057b83cdbbTodd Kennedy 66897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki /** 67fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy * Cursor data specifically for use by the Email widget. Contains a cursor of messages in 68fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy * addition to a message count and account name. The later elements were opportunistically 69fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy * placed in this cursor. We could have defined multiple loaders for these items. 70897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki */ 71fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy static class WidgetCursor extends CursorWrapper { 72897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki private final int mMessageCount; 73fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy private final String mAccountName; 74cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy private final String mMailboxName; 75897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki 76cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy public WidgetCursor(Cursor cursor, int messageCount, String accountName, 77cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy String mailboxName) { 78897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki super(cursor); 79897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki mMessageCount = messageCount; 80fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy mAccountName = accountName; 81cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy mMailboxName = mailboxName; 82897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki } 83897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki 84897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki /** 85fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy * Gets the count to be shown on the widget header. If the currently viewed mailbox ID is 86fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy * not {@link Mailbox#QUERY_ALL_FAVORITES}, it is the unread count, which is different from 87fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy * number of records returned by {@link #getCount()}. 88897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki */ 89897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki public int getMessageCount() { 90897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki return mMessageCount; 91897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki } 92fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy /** Gets the display name of the account */ 93fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy public String getAccountName() { 94fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy return mAccountName; 95fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy } 96cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy /** Gets the display name of the mailbox */ 97cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy public String getMailboxName() { 98cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy return mMailboxName; 99cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy } 100897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki } 101897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki 102897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki private final Context mContext; 103897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki 10444f5cd67c97da6a5c7e63a73b4dca7057b83cdbbTodd Kennedy EmailWidgetLoader(Context context) { 105897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki super(context, Message.CONTENT_URI, WIDGET_PROJECTION, null, 106897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki null, SORT_TIMESTAMP_DESCENDING); 107897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki mContext = context; 108897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki } 109897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki 110897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki @Override 111897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki public Cursor loadInBackground() { 112897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki final Cursor messagesCursor = super.loadInBackground(); 113897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki 114897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki // Reset the notification Uri to our Message table notifier URI 115897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki messagesCursor.setNotificationUri(mContext.getContentResolver(), Message.NOTIFIER_URI); 116897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki 117fc4006b2760aadc98e87a09472b717dcd966db42Makoto Onuki final int messageCount; 11844f5cd67c97da6a5c7e63a73b4dca7057b83cdbbTodd Kennedy if (mMailboxId != Mailbox.QUERY_ALL_FAVORITES) { 11944f5cd67c97da6a5c7e63a73b4dca7057b83cdbbTodd Kennedy String selection = "(" + getSelection() + " ) AND " + MessageColumns.FLAG_READ + " = 0"; 12044f5cd67c97da6a5c7e63a73b4dca7057b83cdbbTodd Kennedy messageCount = EmailContent.count(mContext, Message.CONTENT_URI, selection, 12144f5cd67c97da6a5c7e63a73b4dca7057b83cdbbTodd Kennedy getSelectionArgs()); 122fc4006b2760aadc98e87a09472b717dcd966db42Makoto Onuki } else { 123fc4006b2760aadc98e87a09472b717dcd966db42Makoto Onuki // Just use the number of all messages shown. 124fc4006b2760aadc98e87a09472b717dcd966db42Makoto Onuki messageCount = messagesCursor.getCount(); 125fc4006b2760aadc98e87a09472b717dcd966db42Makoto Onuki } 126fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy Account account = Account.restoreAccountWithId(mContext, mAccountId); 127fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy final String accountName; 128fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy if (account != null) { 129fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy accountName = account.mDisplayName; 130fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy } else { 131cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy if (mAccountId == Account.ACCOUNT_ID_COMBINED_VIEW) { 132cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy int accountCount = EmailContent.count(mContext, Account.CONTENT_URI); 133cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy Resources res = mContext.getResources(); 134cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy String countString = 135cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy res.getQuantityString(R.plurals.picker_combined_view_account_count, 136cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy accountCount, accountCount); 137cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy accountName = res.getString(R.string.picker_combined_view_fmt, countString); 138cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy } else { 139cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy // TODO What to use here? "unknown"? Account is real, but, doesn't exist. 140cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy accountName = null; 141cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy } 142cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy } 143cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy final String mailboxName; 144cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy if (mMailboxId > 0) { 145cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy Mailbox mailbox = Mailbox.restoreMailboxWithId(mContext, mMailboxId); 146cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy if (mailbox != null) { 147cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy mailboxName = mailbox.mDisplayName; // regular mailbox 148cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy } else { 149cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy // TODO What use here? "unknown"? Mailbox is "real", but, doesn't exist. 150cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy mailboxName = null; 151cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy } 152cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy } else { 153cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy if (mMailboxId == Mailbox.QUERY_ALL_INBOXES) { 154cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy mailboxName = mContext.getString(R.string.picker_mailbox_name_all_inbox); 155cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy } else { // default to all unread for the account's inbox 156cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy mailboxName = mContext.getString(R.string.picker_mailbox_name_all_unread); 157cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy } 158fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy } 159897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki 160cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy return new WidgetCursor(messagesCursor, messageCount, accountName, mailboxName); 161897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki } 162897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki 163897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki /** 164897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki * Stop any pending load, reset selection parameters, and start loading. 165897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki * 166897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki * Must be called from the UI thread 167897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki * 168fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy * @param accountId The ID of the account. May be {@link Account#ACCOUNT_ID_COMBINED_VIEW}. 169cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy * @param mailboxId The mailbox to load; may either be a real mailbox or the pseudo mailbox 170cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy * {@link Mailbox#QUERY_ALL_INBOXES} or {@link Mailbox#QUERY_ALL_UNREAD}. If it's 171cf772cc8ad38fe4eb929964c3839d7388dfd585cTodd Kennedy * neither of these pseudo mailboxes, {@link Mailbox#QUERY_ALL_UNREAD} will be used. 172897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki */ 17344f5cd67c97da6a5c7e63a73b4dca7057b83cdbbTodd Kennedy void load(long accountId, long mailboxId) { 174897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki reset(); 17544f5cd67c97da6a5c7e63a73b4dca7057b83cdbbTodd Kennedy mAccountId = accountId; 17644f5cd67c97da6a5c7e63a73b4dca7057b83cdbbTodd Kennedy mMailboxId = mailboxId; 177fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy setSelectionAndArgs(); 178897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki startLoading(); 179897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki } 180fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy 181fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy /** Sets the loader's selection and arguments depending upon the account and mailbox */ 182fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy private void setSelectionAndArgs() { 183fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy if (mAccountId == Account.ACCOUNT_ID_COMBINED_VIEW) { 184fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy if (mMailboxId == Mailbox.QUERY_ALL_INBOXES) { 185fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy setSelection(Message.ALL_INBOX_SELECTION); 186fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy } else { // default to all unread 187fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy setSelection(Message.ALL_UNREAD_SELECTION); 188fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy } 189fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy setSelectionArgs(null); 190fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy } else { 191fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy if (mMailboxId > 0L) { 192fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy // Simple mailbox selection 1930b4602b5d926d0cd1a913963497eec674cf1cea3Todd Kennedy setSelection( 1940b4602b5d926d0cd1a913963497eec674cf1cea3Todd Kennedy MessageColumns.ACCOUNT_KEY + "=? AND " + 1950b4602b5d926d0cd1a913963497eec674cf1cea3Todd Kennedy MessageColumns.MAILBOX_KEY + "=?"); 196fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy setSelectionArgs( 197fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy new String[] { Long.toString(mAccountId), Long.toString(mMailboxId) }); 198fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy } else { 199fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy if (mMailboxId == Mailbox.QUERY_ALL_INBOXES) { 200fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy setSelection(Message.PER_ACCOUNT_INBOX_SELECTION); 201fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy } else { // default to all unread for the account's inbox 202fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy setSelection(Message.PER_ACCOUNT_UNREAD_SELECTION); 203fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy } 204fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy setSelectionArgs(new String[] { Long.toString(mAccountId) }); 205fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy } 206fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy } 207fa1b3a8f37eada5efad690b7abd32ae248aa2f2bTodd Kennedy } 208897a0ea81c8cddcb142d6ac7f7c47801858c8537Makoto Onuki} 209