Refactor application loading + Paging on main Page

This commit is contained in:
Thomas Andres Gomez 2021-05-11 23:34:22 +02:00
parent 45f5e9023e
commit 1e58752008
26 changed files with 596 additions and 423 deletions

View file

@ -1,5 +1,6 @@
package com.pixelized.biblib.database.dao
import androidx.paging.DataSource
import androidx.room.*
import com.pixelized.biblib.database.data.BookDbo
import com.pixelized.biblib.database.relation.BookRelation
@ -10,6 +11,10 @@ interface BookDao {
@Query("SELECT * FROM ${BookDbo.TABLE}")
fun getAll(): List<BookRelation>
@Transaction
@Query("SELECT * FROM ${BookDbo.TABLE}")
fun getBook(): DataSource.Factory<Int, BookRelation>
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insert(vararg books: BookDbo)

View file

@ -9,7 +9,7 @@ import com.pixelized.biblib.database.data.*
data class BookRelation(
@Embedded
val bookDbo: BookDbo,
val book: BookDbo,
@Relation(
parentColumn = BookDbo.ID,
entityColumn = AuthorDbo.ID,
@ -21,15 +21,15 @@ data class BookRelation(
entityColumn = GenreDbo.ID,
associateBy = Junction(BookGenreCrossRef::class)
)
val genres: List<GenreDbo>,
val genres: List<GenreDbo>?,
@Relation(
parentColumn = BookDbo.LANGUAGE_ID,
entityColumn = LanguageDbo.ID
)
val language: LanguageDbo,
val language: LanguageDbo?,
@Relation(
parentColumn = BookDbo.SERIES_ID,
entityColumn = SeriesDbo.ID
)
val series: SeriesDbo,
val series: SeriesDbo?,
)