From 213aa4cb91e2d2b98587e416f380a5ba87a08367 Mon Sep 17 00:00:00 2001 From: machiav3lli Date: Tue, 11 Oct 2022 03:18:46 +0200 Subject: [PATCH] Add: Option to filter author products --- .../fdroid/database/dao/ProductDao.kt | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/com/machiav3lli/fdroid/database/dao/ProductDao.kt b/src/main/kotlin/com/machiav3lli/fdroid/database/dao/ProductDao.kt index 4816c8b6..d6765d5f 100644 --- a/src/main/kotlin/com/machiav3lli/fdroid/database/dao/ProductDao.kt +++ b/src/main/kotlin/com/machiav3lli/fdroid/database/dao/ProductDao.kt @@ -106,7 +106,8 @@ interface ProductDao : BaseDao { section: Section, filteredOutRepos: Set = emptySet(), filteredOutCategories: Set = emptySet(), order: Order, ascending: Boolean, numberOfItems: Int = 0, - updateCategory: UpdateCategory = UpdateCategory.ALL + updateCategory: UpdateCategory = UpdateCategory.ALL, + author: String = "", ): List = queryObject( buildProductQuery( installed = installed, @@ -118,7 +119,8 @@ interface ProductDao : BaseDao { order = order, ascending = ascending, numberOfItems = numberOfItems, - updateCategory = updateCategory + updateCategory = updateCategory, + author = author, ) ) @@ -136,7 +138,7 @@ interface ProductDao : BaseDao { order = request.order, ascending = request.ascending, numberOfItems = request.numberOfItems, - updateCategory = request.updateCategory + updateCategory = request.updateCategory, ) ) @@ -150,7 +152,8 @@ interface ProductDao : BaseDao { order: Order, ascending: Boolean = false, numberOfItems: Int = 0, - updateCategory: UpdateCategory = UpdateCategory.ALL + updateCategory: UpdateCategory = UpdateCategory.ALL, + author: String = "", ): SupportSQLiteQuery { val builder = QueryBuilder() @@ -213,6 +216,12 @@ interface ProductDao : BaseDao { // Filter only active repositories builder += """WHERE $TABLE_REPOSITORY.$ROW_ENABLED != 0""" + // Filter based on the developer + if (author.isNotEmpty()) { + builder += "AND $TABLE_PRODUCT.$ROW_AUTHOR = ?" + builder %= author + } + // Filter out repositories if (filteredOutRepos.isNotEmpty()) { builder += "AND $TABLE_PRODUCT.$ROW_REPOSITORY_ID NOT IN(${filteredOutRepos.joinToString { "'$it'" }})"