diff options
author | Nils Griebner <nils@nils-griebner.de> | 2018-06-16 01:22:19 +0300 |
---|---|---|
committer | Nils Griebner <nils@nils-griebner.de> | 2018-06-16 01:22:19 +0300 |
commit | 421cb81799986daf8c2f8f08438cc09098c7bcc9 (patch) | |
tree | 29d142614fedde8d218e7557566d42e38e46f57d /News-Android-App | |
parent | f04586d27efefd8e36fa5b0e8f4e3de234d8e568 (diff) |
Add filter queries to search in view
Diffstat (limited to 'News-Android-App')
-rw-r--r-- | News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/DatabaseConnectionOrm.java | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/DatabaseConnectionOrm.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/DatabaseConnectionOrm.java index bc926196..37e702ad 100644 --- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/DatabaseConnectionOrm.java +++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/database/DatabaseConnectionOrm.java @@ -18,6 +18,7 @@ import java.util.List; import de.greenrobot.dao.query.LazyList; import de.greenrobot.dao.query.WhereCondition; import de.luhmer.owncloudnewsreader.Constants; +import de.luhmer.owncloudnewsreader.database.model.CurrentRssItemView; import de.luhmer.owncloudnewsreader.database.model.CurrentRssItemViewDao; import de.luhmer.owncloudnewsreader.database.model.DaoSession; import de.luhmer.owncloudnewsreader.database.model.Feed; @@ -486,6 +487,19 @@ public class DatabaseConnectionOrm { return buildSQL; } + public String getAllItemsIdsForFeedSQLFilteredByTitle(final long feedId, boolean onlyUnread, boolean onlyStarredItems, SORT_DIRECTION sortDirection, final String searchString) { + String buildSQL = getAllItemsIdsForFeedSQL(feedId, onlyUnread, onlyStarredItems, sortDirection); + return new StringBuilder( + buildSQL).insert(buildSQL.indexOf("ORDER"), " AND " + RssItemDao.Properties.Title.columnName + " LIKE \"%" + searchString + "%\" ").toString(); + } + + public String getAllItemsIdsForFeedSQLFilteredByBodySQL(final long feedId, boolean onlyUnread, boolean onlyStarredItems, SORT_DIRECTION sortDirection, final String searchString) { + String buildSQL = getAllItemsIdsForFeedSQL(feedId, onlyUnread, onlyStarredItems, sortDirection); + return new StringBuilder(buildSQL).insert( + buildSQL.indexOf("ORDER"), " AND " + RssItemDao.Properties.Body.columnName + " LIKE \"%" + searchString + "%\" ").toString(); + + } + public Long getLowestItemIdByFolder(Long id_folder) { WhereCondition whereCondition = new WhereCondition.StringCondition(RssItemDao.Properties.FeedId.columnName + " IN " + @@ -529,6 +543,18 @@ public class DatabaseConnectionOrm { return buildSQL; } + public String getAllItemsIdsForFolderSQLFilteredByTitle(final long ID_FOLDER, final boolean onlyUnread, final SORT_DIRECTION sortDirection, final String searchString) { + String buildSQL = getAllItemsIdsForFolderSQL(ID_FOLDER, onlyUnread, sortDirection); + return new StringBuilder( + buildSQL).insert(buildSQL.indexOf("ORDER"), " AND " + RssItemDao.Properties.Title.columnName + " LIKE \"%" + searchString + "%\" ").toString(); + } + + public String getAllItemsIdsForFolderSQLFilteredByBody(final long ID_FOLDER, final boolean onlyUnread, final SORT_DIRECTION sortDirection, final String searchString) { + String buildSQL = getAllItemsIdsForFolderSQL(ID_FOLDER, onlyUnread, sortDirection); + return new StringBuilder( + buildSQL).insert(buildSQL.indexOf("ORDER"), " AND " + RssItemDao.Properties.Title.columnName + " LIKE \"%" + searchString + "%\" ").toString(); + } + public void insertIntoRssCurrentViewTable(String SQL_SELECT) { StopWatch sw = new StopWatch(); sw.start(); @@ -776,7 +802,6 @@ public class DatabaseConnectionOrm { } - public static String join(Collection<?> col, String delim) { StringBuilder sb = new StringBuilder(); Iterator<?> iter = col.iterator(); |