Loading src/com/fsck/k9/Account.java +24 −0 Original line number Diff line number Diff line Loading @@ -1856,6 +1856,30 @@ public class Account implements BaseAccount { search.or(new SearchCondition(Searchfield.FOLDER, Attribute.EQUALS, getInboxFolderName())); } /** * Modify the supplied {@link LocalSearch} instance to exclude "unwanted" folders. * * <p> * Currently the following folders are excluded: * <ul> * <li>Trash</li> * <li>Spam</li> * <li>Outbox</li> * </ul> * The Inbox will always be included even if one of the special folders is configured to point * to the Inbox. * </p> * * @param search * The {@code LocalSearch} instance to modify. */ public void excludeUnwantedFolders(LocalSearch search) { excludeSpecialFolder(search, getTrashFolderName()); excludeSpecialFolder(search, getSpamFolderName()); excludeSpecialFolder(search, getOutboxFolderName()); search.or(new SearchCondition(Searchfield.FOLDER, Attribute.EQUALS, getInboxFolderName())); } private void excludeSpecialFolder(LocalSearch search, String folderName) { if (!K9.FOLDER_NONE.equals(folderName)) { search.and(Searchfield.FOLDER, folderName, Attribute.NOT_EQUALS); Loading src/com/fsck/k9/search/SqlQueryBuilder.java +8 −2 Original line number Diff line number Diff line Loading @@ -42,8 +42,14 @@ public class SqlQueryBuilder { case SEARCHABLE: { switch (account.getSearchableFolders()) { case ALL: { // Dummy condition, always select query.append("1"); // Create temporary LocalSearch object so we can use... LocalSearch tempSearch = new LocalSearch(); // ...the helper methods in Account to create the necessary conditions // to exclude "unwanted" folders. account.excludeUnwantedFolders(tempSearch); buildWhereClauseInternal(account, tempSearch.getConditions(), query, selectionArgs); break; } case DISPLAYABLE: { Loading Loading
src/com/fsck/k9/Account.java +24 −0 Original line number Diff line number Diff line Loading @@ -1856,6 +1856,30 @@ public class Account implements BaseAccount { search.or(new SearchCondition(Searchfield.FOLDER, Attribute.EQUALS, getInboxFolderName())); } /** * Modify the supplied {@link LocalSearch} instance to exclude "unwanted" folders. * * <p> * Currently the following folders are excluded: * <ul> * <li>Trash</li> * <li>Spam</li> * <li>Outbox</li> * </ul> * The Inbox will always be included even if one of the special folders is configured to point * to the Inbox. * </p> * * @param search * The {@code LocalSearch} instance to modify. */ public void excludeUnwantedFolders(LocalSearch search) { excludeSpecialFolder(search, getTrashFolderName()); excludeSpecialFolder(search, getSpamFolderName()); excludeSpecialFolder(search, getOutboxFolderName()); search.or(new SearchCondition(Searchfield.FOLDER, Attribute.EQUALS, getInboxFolderName())); } private void excludeSpecialFolder(LocalSearch search, String folderName) { if (!K9.FOLDER_NONE.equals(folderName)) { search.and(Searchfield.FOLDER, folderName, Attribute.NOT_EQUALS); Loading
src/com/fsck/k9/search/SqlQueryBuilder.java +8 −2 Original line number Diff line number Diff line Loading @@ -42,8 +42,14 @@ public class SqlQueryBuilder { case SEARCHABLE: { switch (account.getSearchableFolders()) { case ALL: { // Dummy condition, always select query.append("1"); // Create temporary LocalSearch object so we can use... LocalSearch tempSearch = new LocalSearch(); // ...the helper methods in Account to create the necessary conditions // to exclude "unwanted" folders. account.excludeUnwantedFolders(tempSearch); buildWhereClauseInternal(account, tempSearch.getConditions(), query, selectionArgs); break; } case DISPLAYABLE: { Loading