From ace042d0b27bd7f6b3a74e1aa34d676e93ac6339 Mon Sep 17 00:00:00 2001 From: Arty Bishop Date: Tue, 29 Oct 2019 22:23:39 +0000 Subject: [PATCH] Created minimal LocalDataSource implementation --- .../rtbishop/lookingsat/db/LocalDataSource.kt | 14 ++++++++++ .../rtbishop/lookingsat/db/TransmitterDao.kt | 6 ---- .../lookingsat/db/TransmitterDatabase.kt | 11 -------- .../rtbishop/lookingsat/db/TransmittersDao.kt | 17 +++++++++++ .../lookingsat/db/TransmittersDatabase.kt | 28 +++++++++++++++++++ 5 files changed, 59 insertions(+), 17 deletions(-) create mode 100644 app/src/main/java/com/rtbishop/lookingsat/db/LocalDataSource.kt delete mode 100644 app/src/main/java/com/rtbishop/lookingsat/db/TransmitterDao.kt delete mode 100644 app/src/main/java/com/rtbishop/lookingsat/db/TransmitterDatabase.kt create mode 100644 app/src/main/java/com/rtbishop/lookingsat/db/TransmittersDao.kt create mode 100644 app/src/main/java/com/rtbishop/lookingsat/db/TransmittersDatabase.kt diff --git a/app/src/main/java/com/rtbishop/lookingsat/db/LocalDataSource.kt b/app/src/main/java/com/rtbishop/lookingsat/db/LocalDataSource.kt new file mode 100644 index 00000000..ad4f2ee3 --- /dev/null +++ b/app/src/main/java/com/rtbishop/lookingsat/db/LocalDataSource.kt @@ -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) { + transmittersDao.insert(transmitters) + } + + suspend fun getTransmittersForSat(id: Int): List { + return transmittersDao.getTransmittersForSat(id) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/rtbishop/lookingsat/db/TransmitterDao.kt b/app/src/main/java/com/rtbishop/lookingsat/db/TransmitterDao.kt deleted file mode 100644 index c29c7c82..00000000 --- a/app/src/main/java/com/rtbishop/lookingsat/db/TransmitterDao.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.rtbishop.lookingsat.db - -import androidx.room.Dao - -@Dao -interface TransmitterDao \ No newline at end of file diff --git a/app/src/main/java/com/rtbishop/lookingsat/db/TransmitterDatabase.kt b/app/src/main/java/com/rtbishop/lookingsat/db/TransmitterDatabase.kt deleted file mode 100644 index 6d37362b..00000000 --- a/app/src/main/java/com/rtbishop/lookingsat/db/TransmitterDatabase.kt +++ /dev/null @@ -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 -} \ No newline at end of file diff --git a/app/src/main/java/com/rtbishop/lookingsat/db/TransmittersDao.kt b/app/src/main/java/com/rtbishop/lookingsat/db/TransmittersDao.kt new file mode 100644 index 00000000..381e59bc --- /dev/null +++ b/app/src/main/java/com/rtbishop/lookingsat/db/TransmittersDao.kt @@ -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) + + @Query("SELECT * FROM transmitters WHERE noradCatId = :id") + suspend fun getTransmittersForSat(id: Int): List +} \ No newline at end of file diff --git a/app/src/main/java/com/rtbishop/lookingsat/db/TransmittersDatabase.kt b/app/src/main/java/com/rtbishop/lookingsat/db/TransmittersDatabase.kt new file mode 100644 index 00000000..f9d587ac --- /dev/null +++ b/app/src/main/java/com/rtbishop/lookingsat/db/TransmittersDatabase.kt @@ -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() + } + } +} \ No newline at end of file