Add: Favorites category

This commit is contained in:
machiav3lli 2022-08-03 01:37:34 +02:00
parent 4a665df1f5
commit 5ed61120dd
5 changed files with 13 additions and 0 deletions

View File

@ -50,6 +50,7 @@ const val ROW_CAN_UPDATE = "can_update"
const val ROW_MATCH_RANK = "match_rank"
const val ROW_IGNORED_VERSION = "ignoredVersion"
const val ROW_IGNORE_UPDATES = "ignoreUpdates"
const val ROW_FAVORITE = "favorite"
const val RELEASE_STATE_NONE = 0
const val RELEASE_STATE_SUGGESTED = 1

View File

@ -16,6 +16,7 @@ import com.machiav3lli.fdroid.ROW_COMPATIBLE
import com.machiav3lli.fdroid.ROW_DESCRIPTION
import com.machiav3lli.fdroid.ROW_DONATES
import com.machiav3lli.fdroid.ROW_ENABLED
import com.machiav3lli.fdroid.ROW_FAVORITE
import com.machiav3lli.fdroid.ROW_ICON
import com.machiav3lli.fdroid.ROW_ID
import com.machiav3lli.fdroid.ROW_IGNORED_VERSION
@ -191,6 +192,8 @@ interface ProductDao : BaseDao<Product> {
} else if (section is Section.Repository) {
builder += "AND $TABLE_PRODUCT.$ROW_REPOSITORY_ID = ?"
builder %= section.id.toString()
} else if (section is Section.FAVORITE) {
builder += "AND COALESCE($TABLE_EXTRAS.$ROW_FAVORITE, 0) != 0"
}
// Filter only apps that have some matching score to the search query

View File

@ -10,6 +10,12 @@ sealed class Section : KParcelable {
val CREATOR = KParcelable.creator { All }
}
object FAVORITE : Section() {
@Suppress("unused")
@JvmField
val CREATOR = KParcelable.creator { FAVORITE }
}
data class Category(val name: String) : Section() {
override fun writeToParcel(dest: Parcel, flags: Int) {
dest.writeString(name)

View File

@ -120,12 +120,14 @@ class ExploreFragment : MainNavFragmentX() {
CategoryChipList(
list = listOf(
stringResource(id = R.string.all_applications),
stringResource(id = R.string.favorite_applications),
*categories.sorted().toTypedArray()
)
) {
viewModel.sections.postValue(
when (it) {
getString(R.string.all_applications) -> Section.All
getString(R.string.favorite_applications) -> Section.FAVORITE
else -> Section.Category(it)
}
)

View File

@ -208,4 +208,5 @@
<string name="releases">Releases</string>
<string name="no_updates_available">No versions available</string>
<string name="dynamic">System dynamic</string>
<string name="favorite_applications">Favorites</string>
</resources>