mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-18 06:47:02 +05:30
Add saved lists feature
Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
This commit is contained in:
parent
3bd3f2dff8
commit
d6d82248a8
8 changed files with 185 additions and 39 deletions
|
@ -6,6 +6,7 @@ import androidx.room.Insert
|
|||
import androidx.room.OnConflictStrategy
|
||||
import androidx.room.Query
|
||||
import androidx.room.Transaction
|
||||
import androidx.room.Update
|
||||
import dev.msfjarvis.lobsters.data.model.LobstersEntity
|
||||
import dev.msfjarvis.lobsters.model.LobstersPost
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
@ -15,6 +16,15 @@ abstract class PostsDao {
|
|||
@Query("SELECT * FROM lobsters_posts")
|
||||
abstract fun loadPosts(): Flow<List<LobstersPost>>
|
||||
|
||||
@Update
|
||||
suspend fun updatePost(vararg posts: LobstersPost) {
|
||||
updatePosts(posts.map { LobstersEntity(it) })
|
||||
}
|
||||
|
||||
@Update(onConflict = OnConflictStrategy.IGNORE)
|
||||
protected abstract suspend fun updatePosts(posts: List<LobstersEntity>)
|
||||
|
||||
|
||||
@Transaction
|
||||
open suspend fun insertPosts(vararg posts: LobstersPost) {
|
||||
insertPosts(posts.map { LobstersEntity(it) })
|
||||
|
|
|
@ -4,12 +4,14 @@ import androidx.room.Database
|
|||
import androidx.room.RoomDatabase
|
||||
import androidx.room.TypeConverters
|
||||
import dev.msfjarvis.lobsters.data.model.LobstersEntity
|
||||
import dev.msfjarvis.lobsters.data.model.SavedLobstersEntity
|
||||
|
||||
@Database(
|
||||
entities = [
|
||||
LobstersEntity::class,
|
||||
SavedLobstersEntity::class
|
||||
],
|
||||
version = 1,
|
||||
version = 2,
|
||||
exportSchema = false,
|
||||
)
|
||||
@TypeConverters(
|
||||
|
@ -17,4 +19,5 @@ import dev.msfjarvis.lobsters.data.model.LobstersEntity
|
|||
)
|
||||
abstract class PostsDatabase : RoomDatabase() {
|
||||
abstract fun postsDao(): PostsDao
|
||||
abstract fun savedPostsDao(): SavedPostsDao
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue