|
@@ -2,6 +2,7 @@ package io.legado.app.data.dao
|
|
|
|
|
|
|
|
import androidx.room.*
|
|
import androidx.room.*
|
|
|
import io.legado.app.constant.BookType
|
|
import io.legado.app.constant.BookType
|
|
|
|
|
+import io.legado.app.data.appDb
|
|
|
import io.legado.app.data.entities.Book
|
|
import io.legado.app.data.entities.Book
|
|
|
import io.legado.app.data.entities.BookGroup
|
|
import io.legado.app.data.entities.BookGroup
|
|
|
import kotlinx.coroutines.flow.Flow
|
|
import kotlinx.coroutines.flow.Flow
|
|
@@ -9,6 +10,19 @@ import kotlinx.coroutines.flow.Flow
|
|
|
@Dao
|
|
@Dao
|
|
|
interface BookDao {
|
|
interface BookDao {
|
|
|
|
|
|
|
|
|
|
+ fun flowByGroup(groupId: Long): Flow<List<Book>> {
|
|
|
|
|
+ return when (groupId) {
|
|
|
|
|
+ BookGroup.IdRoot -> appDb.bookDao.flowRoot()
|
|
|
|
|
+ BookGroup.IdAll -> appDb.bookDao.flowAll()
|
|
|
|
|
+ BookGroup.IdLocal -> appDb.bookDao.flowLocal()
|
|
|
|
|
+ BookGroup.IdAudio -> appDb.bookDao.flowAudio()
|
|
|
|
|
+ BookGroup.IdNetNone -> appDb.bookDao.flowNetNoGroup()
|
|
|
|
|
+ BookGroup.IdLocalNone -> appDb.bookDao.flowLocalNoGroup()
|
|
|
|
|
+ BookGroup.IdError -> appDb.bookDao.flowUpdateError()
|
|
|
|
|
+ else -> appDb.bookDao.flowByUserGroup(groupId)
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Query(
|
|
@Query(
|
|
|
"""
|
|
"""
|
|
|
select * from books where type & ${BookType.text} > 0
|
|
select * from books where type & ${BookType.text} > 0
|
|
@@ -45,7 +59,7 @@ interface BookDao {
|
|
|
fun flowLocalNoGroup(): Flow<List<Book>>
|
|
fun flowLocalNoGroup(): Flow<List<Book>>
|
|
|
|
|
|
|
|
@Query("SELECT * FROM books WHERE (`group` & :group) > 0")
|
|
@Query("SELECT * FROM books WHERE (`group` & :group) > 0")
|
|
|
- fun flowByGroup(group: Long): Flow<List<Book>>
|
|
|
|
|
|
|
+ fun flowByUserGroup(group: Long): Flow<List<Book>>
|
|
|
|
|
|
|
|
@Query("SELECT * FROM books WHERE name like '%'||:key||'%' or author like '%'||:key||'%'")
|
|
@Query("SELECT * FROM books WHERE name like '%'||:key||'%' or author like '%'||:key||'%'")
|
|
|
fun flowSearch(key: String): Flow<List<Book>>
|
|
fun flowSearch(key: String): Flow<List<Book>>
|