Created minimal LocalDataSource implementation

This commit is contained in:
Arty Bishop committed 2019-10-29 22:23:39 +00:00
1 parent 22616d0d2f
commit ace042d0b2
5 files changed
+59 -17

No files matched your search

@@ -0,0 +1,14 @@
package com.rtbishop.lookingsat.db
import com.rtbishop.lookingsat.repo.Transmitter
class LocalDataSource(private val transmittersDao: TransmittersDao) {
suspend fun insert(transmitters: List<Transmitter>) {
transmittersDao.insert(transmitters)
}
suspend fun getTransmittersForSat(id: Int): List<Transmitter> {
return transmittersDao.getTransmittersForSat(id)
}
}
@@ -1,6 +0,0 @@
package com.rtbishop.lookingsat.db
import androidx.room.Dao
@Dao
interface TransmitterDao
@@ -1,11 +0,0 @@
package com.rtbishop.lookingsat.db
import androidx.room.Database
import androidx.room.RoomDatabase
import com.rtbishop.lookingsat.repo.Transmitter
@Database(entities = [Transmitter::class], version = 1, exportSchema = false)
abstract class TransmitterDatabase : RoomDatabase() {
abstract fun transDao(): TransmitterDao
}
@@ -0,0 +1,17 @@
package com.rtbishop.lookingsat.db
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import com.rtbishop.lookingsat.repo.Transmitter
@Dao
interface TransmittersDao {
@Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun insert(transmitters: List<Transmitter>)
@Query("SELECT * FROM transmitters WHERE noradCatId = :id")
suspend fun getTransmittersForSat(id: Int): List<Transmitter>
}
@@ -0,0 +1,28 @@
package com.rtbishop.lookingsat.db
import android.content.Context
import androidx.room.Database
import androidx.room.Room
import androidx.room.RoomDatabase
import com.rtbishop.lookingsat.repo.Transmitter
@Database(entities = [Transmitter::class], version = 1, exportSchema = false)
abstract class TransmittersDatabase : RoomDatabase() {
abstract fun transmittersDao(): TransmittersDao
companion object {
@Volatile
private var INSTANCE: TransmittersDatabase? = null
fun getInstance(context: Context): TransmittersDatabase =
INSTANCE ?: synchronized(this) {
INSTANCE ?: Room.databaseBuilder(
context.applicationContext,
TransmittersDatabase::class.java,
"transmitters"
).build()
}
}
}