mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-04-23 19:32:16 +00:00
Add: Repositories, categories filters & ascending sort arguments to Request & ProductDAO interfaces
This commit is contained in:
parent
ccd72d3944
commit
eca0dd3ea4
@ -81,7 +81,10 @@ interface ProductDao : BaseDao<Product> {
|
||||
updates = request.updates,
|
||||
searchQuery = request.searchQuery,
|
||||
section = request.section,
|
||||
filteredOutRepos = request.filteredOutRepos,
|
||||
filteredOutCategories = request.filteredOutCategories,
|
||||
order = request.order,
|
||||
ascending = request.ascending,
|
||||
numberOfItems = request.numberOfItems,
|
||||
updateCategory = request.updateCategory
|
||||
)
|
||||
@ -90,7 +93,9 @@ interface ProductDao : BaseDao<Product> {
|
||||
@Transaction
|
||||
fun queryObject(
|
||||
installed: Boolean, updates: Boolean, searchQuery: String,
|
||||
section: Section, order: Order, numberOfItems: Int = 0,
|
||||
section: Section, filteredOutRepos: Set<String> = emptySet(),
|
||||
filteredOutCategories: Set<String> = emptySet(), order: Order,
|
||||
ascending: Boolean, numberOfItems: Int = 0,
|
||||
updateCategory: UpdateCategory = UpdateCategory.ALL
|
||||
): List<Product> = queryObject(
|
||||
buildProductQuery(
|
||||
@ -98,7 +103,10 @@ interface ProductDao : BaseDao<Product> {
|
||||
updates = updates,
|
||||
searchQuery = searchQuery,
|
||||
section = section,
|
||||
filteredOutRepos = filteredOutRepos,
|
||||
filteredOutCategories = filteredOutCategories,
|
||||
order = order,
|
||||
ascending = ascending,
|
||||
numberOfItems = numberOfItems,
|
||||
updateCategory = updateCategory
|
||||
)
|
||||
@ -113,7 +121,10 @@ interface ProductDao : BaseDao<Product> {
|
||||
updates = request.updates,
|
||||
searchQuery = request.searchQuery,
|
||||
section = request.section,
|
||||
filteredOutRepos = request.filteredOutRepos,
|
||||
filteredOutCategories = request.filteredOutCategories,
|
||||
order = request.order,
|
||||
ascending = request.ascending,
|
||||
numberOfItems = request.numberOfItems,
|
||||
updateCategory = request.updateCategory
|
||||
)
|
||||
|
@ -19,6 +19,7 @@ import androidx.compose.material.icons.rounded.Share
|
||||
import androidx.compose.material.icons.rounded.Tune
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import com.machiav3lli.fdroid.R
|
||||
import com.machiav3lli.fdroid.content.Preferences
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.decodeFromString
|
||||
import kotlinx.serialization.encodeToString
|
||||
@ -168,14 +169,17 @@ sealed class Request {
|
||||
internal abstract val installed: Boolean
|
||||
internal abstract val updates: Boolean
|
||||
internal abstract val searchQuery: String
|
||||
internal abstract val filteredOutRepos: Set<String>
|
||||
internal abstract val filteredOutCategories: Set<String>
|
||||
internal abstract val section: Section
|
||||
internal abstract val order: Order
|
||||
internal abstract val ascending: Boolean
|
||||
internal abstract val updateCategory: UpdateCategory
|
||||
internal open val numberOfItems: Int = 0
|
||||
|
||||
data class ProductsAll(
|
||||
override val searchQuery: String, override val section: Section,
|
||||
override val order: Order,
|
||||
override val searchQuery: String,
|
||||
override val section: Section,
|
||||
) : Request() {
|
||||
override val id: Int
|
||||
get() = 1
|
||||
@ -185,11 +189,19 @@ sealed class Request {
|
||||
get() = false
|
||||
override val updateCategory: UpdateCategory
|
||||
get() = UpdateCategory.ALL
|
||||
override val order: Order
|
||||
get() = Preferences[Preferences.Key.SortOrderExplore].order
|
||||
override val filteredOutRepos: Set<String>
|
||||
get() = Preferences[Preferences.Key.ReposFilterExplore]
|
||||
override val filteredOutCategories: Set<String>
|
||||
get() = Preferences[Preferences.Key.CategoriesFilterExplore]
|
||||
override val ascending: Boolean
|
||||
get() = Preferences[Preferences.Key.SortOrderAscendingExplore]
|
||||
}
|
||||
|
||||
data class ProductsInstalled(
|
||||
override val searchQuery: String, override val section: Section,
|
||||
override val order: Order,
|
||||
override val searchQuery: String,
|
||||
override val section: Section,
|
||||
) : Request() {
|
||||
override val id: Int
|
||||
get() = 2
|
||||
@ -199,11 +211,19 @@ sealed class Request {
|
||||
get() = false
|
||||
override val updateCategory: UpdateCategory
|
||||
get() = UpdateCategory.ALL
|
||||
override val order: Order
|
||||
get() = Preferences[Preferences.Key.SortOrderInstalled].order
|
||||
override val filteredOutRepos: Set<String>
|
||||
get() = Preferences[Preferences.Key.ReposFilterInstalled]
|
||||
override val filteredOutCategories: Set<String>
|
||||
get() = Preferences[Preferences.Key.CategoriesFilterInstalled]
|
||||
override val ascending: Boolean
|
||||
get() = Preferences[Preferences.Key.SortOrderAscendingInstalled]
|
||||
}
|
||||
|
||||
data class ProductsUpdates(
|
||||
override val searchQuery: String, override val section: Section,
|
||||
override val order: Order,
|
||||
override val searchQuery: String,
|
||||
override val section: Section,
|
||||
) : Request() {
|
||||
override val id: Int
|
||||
get() = 3
|
||||
@ -213,11 +233,18 @@ sealed class Request {
|
||||
get() = true
|
||||
override val updateCategory: UpdateCategory
|
||||
get() = UpdateCategory.ALL
|
||||
override val filteredOutRepos: Set<String>
|
||||
get() = emptySet()
|
||||
override val filteredOutCategories: Set<String>
|
||||
get() = emptySet()
|
||||
override val order: Order
|
||||
get() = Order.NAME
|
||||
override val ascending: Boolean
|
||||
get() = true
|
||||
}
|
||||
|
||||
data class ProductsUpdated(
|
||||
override val searchQuery: String, override val section: Section,
|
||||
override val order: Order, override val numberOfItems: Int,
|
||||
) : Request() {
|
||||
override val id: Int
|
||||
get() = 4
|
||||
@ -227,11 +254,21 @@ sealed class Request {
|
||||
get() = false
|
||||
override val updateCategory: UpdateCategory
|
||||
get() = UpdateCategory.UPDATED
|
||||
override val filteredOutRepos: Set<String>
|
||||
get() = Preferences[Preferences.Key.ReposFilterLatest]
|
||||
override val filteredOutCategories: Set<String>
|
||||
get() = Preferences[Preferences.Key.CategoriesFilterLatest]
|
||||
override val order: Order
|
||||
get() = Preferences[Preferences.Key.SortOrderLatest].order
|
||||
override val ascending: Boolean
|
||||
get() = Preferences[Preferences.Key.SortOrderAscendingLatest]
|
||||
override val numberOfItems: Int
|
||||
get() = Preferences[Preferences.Key.UpdatedApps]
|
||||
}
|
||||
|
||||
data class ProductsNew(
|
||||
override val searchQuery: String, override val section: Section,
|
||||
override val order: Order, override val numberOfItems: Int,
|
||||
override val searchQuery: String,
|
||||
override val section: Section,
|
||||
) : Request() {
|
||||
override val id: Int
|
||||
get() = 5
|
||||
@ -241,6 +278,16 @@ sealed class Request {
|
||||
get() = false
|
||||
override val updateCategory: UpdateCategory
|
||||
get() = UpdateCategory.NEW
|
||||
override val filteredOutRepos: Set<String>
|
||||
get() = emptySet()
|
||||
override val filteredOutCategories: Set<String>
|
||||
get() = emptySet()
|
||||
override val order: Order
|
||||
get() = Order.DATE_ADDED
|
||||
override val ascending: Boolean
|
||||
get() = false
|
||||
override val numberOfItems: Int
|
||||
get() = Preferences[Preferences.Key.NewApps]
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -48,7 +48,8 @@ class PackageChangedReceiver : BroadcastReceiver() {
|
||||
updates = true,
|
||||
searchQuery = "",
|
||||
section = Section.All,
|
||||
order = Order.NAME
|
||||
order = Order.NAME,
|
||||
ascending = true,
|
||||
).map { it.toItem() }
|
||||
)
|
||||
}
|
||||
|
@ -384,7 +384,8 @@ class SyncService : ConnectionService<SyncService.Binder>() {
|
||||
updates = true,
|
||||
searchQuery = "",
|
||||
section = Section.All,
|
||||
order = Order.NAME
|
||||
order = Order.NAME,
|
||||
ascending = true,
|
||||
).map { it.toItem() }
|
||||
}
|
||||
.subscribeOn(Schedulers.io())
|
||||
|
Loading…
x
Reference in New Issue
Block a user