Filter out Search mailbox from recents.

Bug: 5015109
Change-Id: I4e4982bbedc388529eb2f3a9c06ecac47a0a85f0
This commit is contained in:
Ben Komalo 2011-07-11 12:27:11 -07:00
parent 1100ee5722
commit cf7cd933db
2 changed files with 27 additions and 4 deletions

View File

@ -16,17 +16,16 @@
package com.android.email.activity;
import com.google.common.annotations.VisibleForTesting;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import com.android.email.Clock;
import com.android.emailcommon.provider.EmailContent;
import com.android.emailcommon.provider.Mailbox;
import com.android.emailcommon.provider.EmailContent.MailboxColumns;
import com.android.emailcommon.provider.Mailbox;
import com.android.emailcommon.utility.EmailAsyncTask;
import com.google.common.annotations.VisibleForTesting;
import java.util.ArrayList;
@ -49,6 +48,7 @@ public class RecentMailboxManager {
"( SELECT " + MailboxColumns.ID
+ " FROM " + Mailbox.TABLE_NAME
+ " WHERE ( " + MailboxColumns.ACCOUNT_KEY + "=? "
+ " AND " + Mailbox.USER_VISIBLE_MAILBOX_SELECTION
+ " AND " + MailboxColumns.LAST_TOUCHED_TIME + ">0 )"
+ " ORDER BY " + MailboxColumns.LAST_TOUCHED_TIME + " DESC"
+ " LIMIT ? )";
@ -58,6 +58,7 @@ public class RecentMailboxManager {
"( SELECT " + MailboxColumns.ID
+ " FROM " + Mailbox.TABLE_NAME
+ " WHERE ( " + MailboxColumns.ACCOUNT_KEY + "=? "
+ " AND " + Mailbox.USER_VISIBLE_MAILBOX_SELECTION
+ " AND " + MailboxColumns.TYPE + "=" + Mailbox.TYPE_MAIL
+ " AND " + MailboxColumns.LAST_TOUCHED_TIME + ">0 )"
+ " ORDER BY " + MailboxColumns.LAST_TOUCHED_TIME + " DESC"

View File

@ -16,6 +16,7 @@
package com.android.email.activity;
import android.content.ContentValues;
import android.content.Context;
import android.test.AndroidTestCase;
@ -23,6 +24,7 @@ import com.android.email.DBTestHelper;
import com.android.email.MockClock;
import com.android.email.provider.ContentCache;
import com.android.email.provider.ProviderTestUtils;
import com.android.emailcommon.provider.EmailContent.MailboxColumns;
import com.android.emailcommon.provider.Mailbox;
import java.util.ArrayList;
@ -62,7 +64,7 @@ public class RecentMailboxManagerTest extends AndroidTestCase {
ProviderTestUtils.setupMailbox("costello", 1L, true, mMockContext, Mailbox.TYPE_MAIL),
ProviderTestUtils.setupMailbox("bud_lou", 1L, true, mMockContext, Mailbox.TYPE_MAIL),
ProviderTestUtils.setupMailbox("laurel", 1L, true, mMockContext, Mailbox.TYPE_MAIL),
ProviderTestUtils.setupMailbox("hardy", 1L, true, mMockContext, Mailbox.TYPE_MAIL),
ProviderTestUtils.setupMailbox("hardy", 1L, true, mMockContext, Mailbox.TYPE_MAIL)
};
// Invalidate all caches, since we reset the database for each test
ContentCache.invalidateAllCaches();
@ -216,4 +218,24 @@ public class RecentMailboxManagerTest extends AndroidTestCase {
assertEquals(mMailboxArray[10].mId, (long) testList.get(3));
assertEquals(mMailboxArray[9].mId, (long) testList.get(4));
}
public void testDoesNotIncludeExtraMailboxes() throws Exception {
ArrayList<Long> testList;
// The search mailbox should not be visible.
Mailbox searchMailbox = ProviderTestUtils.setupMailbox(
"search", 1L, true, mMockContext, Mailbox.TYPE_SEARCH);
ContentValues cv = new ContentValues();
cv.put(MailboxColumns.FLAG_VISIBLE, false);
searchMailbox.mFlagVisible = false;
searchMailbox.update(mMockContext, cv);
mMockClock.advance(1000L); mManager.touch(searchMailbox.mId).get();
// Ensure search mailbox isn't returned
testList = mManager.getMostRecent(1L, false);
assertFalse(testList.contains(searchMailbox.mId));
testList = mManager.getMostRecent(1L, true);
assertFalse(testList.contains(searchMailbox.mId));
}
}