Add new DAOs

* Replacement of RxJava by coroutines
* Prepare for their use in the news repositories
This commit is contained in:
Shinokuni 2023-03-03 19:49:49 +01:00
parent 6468d9d733
commit 9710ae9487
5 changed files with 63 additions and 1 deletions

View File

@ -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"

View File

@ -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
} }

View 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>?)
}

View 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
}

View 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> {
}