Add new DAOs
* Replacement of RxJava by coroutines * Prepare for their use in the news repositories
This commit is contained in:
parent
6468d9d733
commit
9710ae9487
@ -76,7 +76,7 @@ dependencies {
|
||||
androidTestImplementation 'androidx.test:rules:1.4.0'
|
||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
|
||||
|
||||
def room_version = "2.3.0"
|
||||
def room_version = "2.4.3"
|
||||
api "androidx.room:room-runtime:$room_version"
|
||||
api "androidx.room:room-ktx:$room_version"
|
||||
kapt "androidx.room:room-compiler:$room_version"
|
||||
|
@ -4,6 +4,8 @@ import androidx.room.Database
|
||||
import androidx.room.RoomDatabase
|
||||
import androidx.room.TypeConverters
|
||||
import com.readrops.db.dao.*
|
||||
import com.readrops.db.dao.newdao.NewFeedDao
|
||||
import com.readrops.db.dao.newdao.NewItemDao
|
||||
import com.readrops.db.entities.*
|
||||
import com.readrops.db.entities.account.Account
|
||||
import dev.matrix.roomigrant.GenerateRoomMigrations
|
||||
@ -24,4 +26,10 @@ abstract class Database : RoomDatabase() {
|
||||
abstract fun itemStateDao(): ItemStateDao
|
||||
|
||||
abstract fun itemStateChangesDao(): ItemStateChangeDao
|
||||
|
||||
// new dao
|
||||
|
||||
abstract fun newFeedDao(): NewFeedDao
|
||||
|
||||
abstract fun newItemDao(): NewItemDao
|
||||
}
|
26
db/src/main/java/com/readrops/db/dao/newdao/NewBaseDao.kt
Normal file
26
db/src/main/java/com/readrops/db/dao/newdao/NewBaseDao.kt
Normal file
@ -0,0 +1,26 @@
|
||||
package com.readrops.db.dao.newdao
|
||||
|
||||
import androidx.room.Delete
|
||||
import androidx.room.Insert
|
||||
import androidx.room.Update
|
||||
|
||||
interface NewBaseDao<T> {
|
||||
|
||||
@Insert
|
||||
suspend fun insert(entity: T): Long
|
||||
|
||||
@Insert
|
||||
suspend fun insert(entities: List<T>?): List<Long>
|
||||
|
||||
@Update
|
||||
suspend fun update(entity: T)
|
||||
|
||||
@Update
|
||||
suspend fun update(entities: List<T>?)
|
||||
|
||||
@Delete
|
||||
suspend fun delete(entity: T)
|
||||
|
||||
@Delete
|
||||
suspend fun delete(entities: List<T>?)
|
||||
}
|
18
db/src/main/java/com/readrops/db/dao/newdao/NewFeedDao.kt
Normal file
18
db/src/main/java/com/readrops/db/dao/newdao/NewFeedDao.kt
Normal file
@ -0,0 +1,18 @@
|
||||
package com.readrops.db.dao.newdao
|
||||
|
||||
import androidx.room.Dao
|
||||
import androidx.room.Query
|
||||
import com.readrops.db.entities.Feed
|
||||
|
||||
@Dao
|
||||
abstract class NewFeedDao : NewBaseDao<Feed> {
|
||||
|
||||
@Query("Select * from Feed Where account_id = :accountId order by name ASC")
|
||||
abstract suspend fun selectFeeds(accountId: Int): List<Feed>
|
||||
|
||||
@Query("Update Feed set etag = :etag, last_modified = :lastModified Where id = :feedId")
|
||||
abstract suspend fun updateHeaders(etag: String, lastModified: String, feedId: Int)
|
||||
|
||||
@Query("Select case When :feedUrl In (Select url from Feed Where account_id = :accountId) Then 1 else 0 end")
|
||||
abstract suspend fun feedExists(feedUrl: String, accountId: Int): Boolean
|
||||
}
|
10
db/src/main/java/com/readrops/db/dao/newdao/NewItemDao.kt
Normal file
10
db/src/main/java/com/readrops/db/dao/newdao/NewItemDao.kt
Normal file
@ -0,0 +1,10 @@
|
||||
package com.readrops.db.dao.newdao
|
||||
|
||||
import androidx.room.Dao
|
||||
import com.readrops.db.entities.Item
|
||||
|
||||
@Dao
|
||||
abstract class NewItemDao : NewBaseDao<Item> {
|
||||
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user