Add search-only visibility level to items
This commit is contained in:
@@ -34,16 +34,19 @@ interface SearchableDao {
|
||||
"SELECT * FROM Searchable " +
|
||||
"WHERE (" +
|
||||
"(:manuallySorted AND pinPosition > 1) OR " +
|
||||
"(:automaticallySorted AND pinPosition = 1) OR" +
|
||||
"(:frequentlyUsed AND pinPosition = 0 AND launchCount > 0 AND hidden = 0) OR " +
|
||||
"(:hidden AND hidden = 1)" +
|
||||
") AND hidden = :hidden ORDER BY pinPosition DESC, weight DESC, launchCount DESC LIMIT :limit"
|
||||
"(:automaticallySorted AND pinPosition = 1) OR " +
|
||||
"(:frequentlyUsed AND pinPosition = 0 AND launchCount > 0) OR " +
|
||||
"(:unused AND pinPosition = 0 AND launchCount = 0)" +
|
||||
") AND (hidden <= :minVisibility AND hidden >= :maxVisibility) " +
|
||||
"ORDER BY pinPosition DESC, weight DESC, launchCount DESC LIMIT :limit"
|
||||
)
|
||||
fun get(
|
||||
manuallySorted: Boolean = false,
|
||||
automaticallySorted: Boolean = false,
|
||||
frequentlyUsed: Boolean = false,
|
||||
hidden: Boolean = false,
|
||||
unused: Boolean = false,
|
||||
minVisibility: Int = 2,
|
||||
maxVisibility: Int = 0,
|
||||
limit: Int,
|
||||
): Flow<List<SavedSearchableEntity>>
|
||||
|
||||
@@ -52,17 +55,20 @@ interface SearchableDao {
|
||||
"WHERE (`type` IN (:includeTypes)) AND " +
|
||||
"(" +
|
||||
"(:manuallySorted AND pinPosition > 1) OR " +
|
||||
"(:automaticallySorted AND pinPosition = 1) OR" +
|
||||
"(:frequentlyUsed AND pinPosition = 0 AND launchCount > 0 AND hidden = 0) OR " +
|
||||
"(:hidden AND hidden = 1)" +
|
||||
") ORDER BY pinPosition DESC, weight DESC, launchCount DESC LIMIT :limit"
|
||||
"(:automaticallySorted AND pinPosition = 1) OR " +
|
||||
"(:frequentlyUsed AND pinPosition = 0 AND launchCount > 0) OR" +
|
||||
"(:unused AND pinPosition = 0 AND launchCount = 0)" +
|
||||
") AND (hidden <= :minVisibility AND hidden >= :maxVisibility) " +
|
||||
"ORDER BY pinPosition DESC, weight DESC, launchCount DESC LIMIT :limit"
|
||||
)
|
||||
fun getIncludeTypes(
|
||||
includeTypes: List<String>?,
|
||||
manuallySorted: Boolean = false,
|
||||
automaticallySorted: Boolean = false,
|
||||
frequentlyUsed: Boolean = false,
|
||||
hidden: Boolean = false,
|
||||
unused: Boolean = false,
|
||||
minVisibility: Int = 2,
|
||||
maxVisibility: Int = 0,
|
||||
limit: Int,
|
||||
): Flow<List<SavedSearchableEntity>>
|
||||
|
||||
@@ -71,17 +77,20 @@ interface SearchableDao {
|
||||
"WHERE (`type` NOT IN (:excludeTypes)) AND " +
|
||||
"(" +
|
||||
"(:manuallySorted AND pinPosition > 1) OR " +
|
||||
"(:automaticallySorted AND pinPosition = 1) OR" +
|
||||
"(:frequentlyUsed AND pinPosition = 0 AND launchCount > 0 AND hidden = 0) OR " +
|
||||
"(:hidden AND hidden = 1)" +
|
||||
") ORDER BY pinPosition DESC, weight DESC, launchCount DESC LIMIT :limit"
|
||||
"(:automaticallySorted AND pinPosition = 1) OR " +
|
||||
"(:frequentlyUsed AND pinPosition = 0 AND launchCount > 0) OR " +
|
||||
"(:unused AND pinPosition = 0 AND launchCount = 0)" +
|
||||
") AND (hidden <= :minVisibility AND hidden >= :maxVisibility) " +
|
||||
"ORDER BY pinPosition DESC, weight DESC, launchCount DESC LIMIT :limit"
|
||||
)
|
||||
fun getExcludeTypes(
|
||||
excludeTypes: List<String>?,
|
||||
manuallySorted: Boolean = false,
|
||||
automaticallySorted: Boolean = false,
|
||||
frequentlyUsed: Boolean = false,
|
||||
hidden: Boolean = false,
|
||||
unused: Boolean = false,
|
||||
minVisibility: Int = 2,
|
||||
maxVisibility: Int = 0,
|
||||
limit: Int,
|
||||
): Flow<List<SavedSearchableEntity>>
|
||||
|
||||
@@ -89,16 +98,19 @@ interface SearchableDao {
|
||||
"SELECT `key` FROM Searchable " +
|
||||
"WHERE (" +
|
||||
"(:manuallySorted AND pinPosition > 1) OR " +
|
||||
"(:automaticallySorted AND pinPosition = 1) OR" +
|
||||
"(:automaticallySorted AND pinPosition = 1) OR " +
|
||||
"(:frequentlyUsed AND pinPosition = 0 AND launchCount > 0) OR " +
|
||||
"(:hidden AND hidden = 1)" +
|
||||
") AND hidden = :hidden ORDER BY pinPosition DESC, weight DESC, launchCount DESC LIMIT :limit"
|
||||
"(:unused AND pinPosition = 0 AND launchCount = 0)" +
|
||||
") AND (hidden <= :minVisibility AND hidden >= :maxVisibility) " +
|
||||
"ORDER BY pinPosition DESC, weight DESC, launchCount DESC LIMIT :limit"
|
||||
)
|
||||
fun getKeys(
|
||||
manuallySorted: Boolean = false,
|
||||
automaticallySorted: Boolean = false,
|
||||
frequentlyUsed: Boolean = false,
|
||||
hidden: Boolean = false,
|
||||
unused: Boolean = false,
|
||||
minVisibility: Int = 2,
|
||||
maxVisibility: Int = 0,
|
||||
limit: Int,
|
||||
): Flow<List<String>>
|
||||
|
||||
@@ -109,15 +121,18 @@ interface SearchableDao {
|
||||
"(:manuallySorted AND pinPosition > 1) OR " +
|
||||
"(:automaticallySorted AND pinPosition = 1) OR" +
|
||||
"(:frequentlyUsed AND pinPosition = 0 AND launchCount > 0) OR " +
|
||||
"(:hidden AND hidden = 1)" +
|
||||
") AND hidden = :hidden ORDER BY pinPosition DESC, weight DESC, launchCount DESC LIMIT :limit"
|
||||
"(:unused AND pinPosition = 0 AND launchCount = 0)" +
|
||||
") AND (hidden <= :minVisibility AND hidden >= :maxVisibility) " +
|
||||
"ORDER BY pinPosition DESC, weight DESC, launchCount DESC LIMIT :limit"
|
||||
)
|
||||
fun getKeysIncludeTypes(
|
||||
includeTypes: List<String>?,
|
||||
manuallySorted: Boolean = false,
|
||||
automaticallySorted: Boolean = false,
|
||||
frequentlyUsed: Boolean = false,
|
||||
hidden: Boolean = false,
|
||||
unused: Boolean = false,
|
||||
minVisibility: Int = 2,
|
||||
maxVisibility: Int = 0,
|
||||
limit: Int,
|
||||
): Flow<List<String>>
|
||||
|
||||
@@ -126,17 +141,20 @@ interface SearchableDao {
|
||||
"WHERE (`type` NOT IN (:excludeTypes)) AND " +
|
||||
"(" +
|
||||
"(:manuallySorted AND pinPosition > 1) OR " +
|
||||
"(:automaticallySorted AND pinPosition = 1) OR" +
|
||||
"(:automaticallySorted AND pinPosition = 1) OR " +
|
||||
"(:frequentlyUsed AND pinPosition = 0 AND launchCount > 0) OR " +
|
||||
"(:hidden AND hidden = 1)" +
|
||||
") AND hidden = :hidden ORDER BY pinPosition DESC, weight DESC, launchCount DESC LIMIT :limit"
|
||||
"(:unused AND pinPosition = 0 AND launchCount = 0)" +
|
||||
") AND (hidden <= :minVisibility AND hidden >= :maxVisibility) " +
|
||||
"ORDER BY pinPosition DESC, weight DESC, launchCount DESC LIMIT :limit"
|
||||
)
|
||||
fun getKeysExcludeTypes(
|
||||
excludeTypes: List<String>?,
|
||||
manuallySorted: Boolean = false,
|
||||
automaticallySorted: Boolean = false,
|
||||
frequentlyUsed: Boolean = false,
|
||||
hidden: Boolean = false,
|
||||
unused: Boolean = false,
|
||||
minVisibility: Int = 2,
|
||||
maxVisibility: Int = 0,
|
||||
limit: Int,
|
||||
): Flow<List<String>>
|
||||
|
||||
@@ -184,7 +202,7 @@ interface SearchableDao {
|
||||
fun sortByWeight(keys: List<String>): Flow<List<String>>
|
||||
|
||||
@Query("SELECT hidden FROM Searchable WHERE `key` = :key UNION SELECT 0 as hidden ORDER BY hidden DESC LIMIT 1")
|
||||
fun isHidden(key: String): Flow<Boolean>
|
||||
fun getVisibility(key: String): Flow<Int>
|
||||
|
||||
@Query("SELECT pinPosition FROM Searchable WHERE `key` = :key UNION SELECT 0 as pinPosition ORDER BY pinPosition DESC LIMIT 1")
|
||||
fun isPinned(key: String): Flow<Boolean>
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ data class SavedSearchableEntity(
|
||||
@ColumnInfo(name = "searchable") val serializedSearchable: String,
|
||||
@ColumnInfo(defaultValue = "0") val launchCount: Int,
|
||||
@ColumnInfo(defaultValue = "0") val pinPosition: Int,
|
||||
@ColumnInfo(defaultValue = "0") val hidden: Boolean,
|
||||
@ColumnInfo(name="hidden", defaultValue = "0") val visibility: Int,
|
||||
@ColumnInfo(defaultValue = "0.0") val weight: Double
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user