diff --git a/src/main/kotlin/com/looker/droidify/Common.kt b/src/main/kotlin/com/looker/droidify/Common.kt index 74b27211..08d80c14 100644 --- a/src/main/kotlin/com/looker/droidify/Common.kt +++ b/src/main/kotlin/com/looker/droidify/Common.kt @@ -24,6 +24,8 @@ const val TABLE_RELEASE = "release" const val TABLE_RELEASE_NAME = "release" const val TABLE_REPOSITORY = "repository" const val TABLE_REPOSITORY_NAME = "repository" +const val TABLE_EXTRAS = "extras" +const val TABLE_EXTRAS_NAME = "extras" const val ROW_REPOSITORY_ID = "repositoryId" const val ROW_PACKAGE_NAME = "packageName" @@ -48,6 +50,8 @@ const val ROW_ID = "_id" const val ROW_ENABLED = "enabled" 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 RELEASE_STATE_NONE = 0 const val RELEASE_STATE_SUGGESTED = 1 diff --git a/src/main/kotlin/com/looker/droidify/database/DAOs.kt b/src/main/kotlin/com/looker/droidify/database/DAOs.kt index 9d5ced28..4f928a3d 100644 --- a/src/main/kotlin/com/looker/droidify/database/DAOs.kt +++ b/src/main/kotlin/com/looker/droidify/database/DAOs.kt @@ -21,6 +21,8 @@ import com.looker.droidify.ROW_DONATES import com.looker.droidify.ROW_ENABLED import com.looker.droidify.ROW_ICON import com.looker.droidify.ROW_ID +import com.looker.droidify.ROW_IGNORED_VERSION +import com.looker.droidify.ROW_IGNORE_UPDATES import com.looker.droidify.ROW_LABEL import com.looker.droidify.ROW_LICENSES import com.looker.droidify.ROW_MATCH_RANK @@ -38,6 +40,8 @@ import com.looker.droidify.TABLE_CATEGORY import com.looker.droidify.TABLE_CATEGORY_NAME import com.looker.droidify.TABLE_IGNORED import com.looker.droidify.TABLE_IGNORED_NAME +import com.looker.droidify.TABLE_EXTRAS +import com.looker.droidify.TABLE_EXTRAS_NAME import com.looker.droidify.TABLE_INSTALLED import com.looker.droidify.TABLE_INSTALLED_NAME import com.looker.droidify.TABLE_PRODUCT @@ -47,6 +51,7 @@ import com.looker.droidify.TABLE_REPOSITORY_NAME import com.looker.droidify.database.entity.Category import com.looker.droidify.database.entity.CategoryTemp import com.looker.droidify.database.entity.Ignored +import com.looker.droidify.database.entity.Extras import com.looker.droidify.database.entity.Installed import com.looker.droidify.database.entity.Product import com.looker.droidify.database.entity.ProductTemp @@ -379,4 +384,28 @@ interface CategoryTempDao : BaseDao { @Query("DELETE FROM temporary_category") fun emptyTable() +} + +@Dao +interface ExtrasDao : BaseDao { + @Query("DELETE FROM extras WHERE packageName = :packageName") + fun delete(packageName: String) + + @Query("SELECT * FROM extras WHERE packageName = :packageName") + operator fun get(packageName: String): Extras? + + @Query("SELECT * FROM extras WHERE packageName = :packageName") + fun getLive(packageName: String): LiveData + + @get:Query("SELECT * FROM extras") + val all: List + + @get:Query("SELECT * FROM extras") + val allLive: LiveData> + + @get:Query("SELECT packageName FROM extras WHERE favorite != 0") + val favorites: Array + + @get:Query("SELECT packageName FROM extras WHERE favorite != 0") + val favoritesLive: LiveData> } \ No newline at end of file diff --git a/src/main/kotlin/com/looker/droidify/database/entity/Extras.kt b/src/main/kotlin/com/looker/droidify/database/entity/Extras.kt new file mode 100644 index 00000000..5a035d97 --- /dev/null +++ b/src/main/kotlin/com/looker/droidify/database/entity/Extras.kt @@ -0,0 +1,14 @@ +package com.looker.droidify.database.entity + +import androidx.room.Entity +import androidx.room.PrimaryKey +import com.looker.droidify.TABLE_EXTRAS_NAME + +@Entity(tableName = TABLE_EXTRAS_NAME) +data class Extras( + @PrimaryKey + var packageName: String = "", + var favorite: Boolean = false, + var ignoreUpdates: Boolean = false, + var ignoredVersion: Long = 0L, +) \ No newline at end of file