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:rules:1.4.0'
|
||||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.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-runtime:$room_version"
|
||||||
api "androidx.room:room-ktx:$room_version"
|
api "androidx.room:room-ktx:$room_version"
|
||||||
kapt "androidx.room:room-compiler:$room_version"
|
kapt "androidx.room:room-compiler:$room_version"
|
||||||
|
@ -4,6 +4,8 @@ import androidx.room.Database
|
|||||||
import androidx.room.RoomDatabase
|
import androidx.room.RoomDatabase
|
||||||
import androidx.room.TypeConverters
|
import androidx.room.TypeConverters
|
||||||
import com.readrops.db.dao.*
|
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.*
|
||||||
import com.readrops.db.entities.account.Account
|
import com.readrops.db.entities.account.Account
|
||||||
import dev.matrix.roomigrant.GenerateRoomMigrations
|
import dev.matrix.roomigrant.GenerateRoomMigrations
|
||||||
@ -24,4 +26,10 @@ abstract class Database : RoomDatabase() {
|
|||||||
abstract fun itemStateDao(): ItemStateDao
|
abstract fun itemStateDao(): ItemStateDao
|
||||||
|
|
||||||
abstract fun itemStateChangesDao(): ItemStateChangeDao
|
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