Now observing transmitters as LiveData from the database

pull/49/head
Arty Bishop 2020-10-04 14:34:53 +01:00
rodzic 71c9e2c298
commit c4abf214f6
6 zmienionych plików z 17 dodań i 14 usunięć

Wyświetl plik

@ -22,7 +22,7 @@ package com.rtbishop.look4sat.dagger.modules
import android.content.Context import android.content.Context
import androidx.room.Room import androidx.room.Room
import com.rtbishop.look4sat.repo.local.EntriesDao import com.rtbishop.look4sat.repo.local.EntriesDao
import com.rtbishop.look4sat.repo.local.SatDb import com.rtbishop.look4sat.repo.local.SatelliteDb
import com.rtbishop.look4sat.repo.local.SourcesDao import com.rtbishop.look4sat.repo.local.SourcesDao
import com.rtbishop.look4sat.repo.local.TransmittersDao import com.rtbishop.look4sat.repo.local.TransmittersDao
import dagger.Module import dagger.Module
@ -34,26 +34,25 @@ class PersistenceModule {
@Singleton @Singleton
@Provides @Provides
fun provideEntriesDao(db: SatDb): EntriesDao { fun provideEntriesDao(db: SatelliteDb): EntriesDao {
return db.entriesDao() return db.entriesDao()
} }
@Singleton @Singleton
@Provides @Provides
fun provideTransDao(db: SatDb): TransmittersDao { fun provideTransDao(db: SatelliteDb): TransmittersDao {
return db.transmittersDao() return db.transmittersDao()
} }
@Singleton @Singleton
@Provides @Provides
fun providesSourcesDao(db: SatDb): SourcesDao { fun providesSourcesDao(db: SatelliteDb): SourcesDao {
return db.sourcesDao() return db.sourcesDao()
} }
@Singleton @Singleton
@Provides @Provides
fun provideSatDb(context: Context): SatDb { fun provideSatDb(context: Context): SatelliteDb {
return Room.databaseBuilder(context, SatDb::class.java, "satDb") return Room.databaseBuilder(context, SatelliteDb::class.java, "satDb").build()
.build()
} }
} }

Wyświetl plik

@ -92,8 +92,8 @@ class DefaultRepository @Inject constructor(
entriesDao.updateEntriesSelection(satIds) entriesDao.updateEntriesSelection(satIds)
} }
override suspend fun getTransmittersForSatId(satId: Int): List<SatTrans> { override fun getTransmittersForSat(satId: Int): LiveData<List<SatTrans>> {
return transmittersDao.getTransmittersForSatId(satId) return transmittersDao.getTransmittersForSat(satId)
} }
override suspend fun updateTransmitters() { override suspend fun updateTransmitters() {

Wyświetl plik

@ -26,5 +26,5 @@ interface Repository {
suspend fun updateTransmitters() suspend fun updateTransmitters()
suspend fun getTransmittersForSatId(satId: Int): List<SatTrans> fun getTransmittersForSat(satId: Int): LiveData<List<SatTrans>>
} }

Wyświetl plik

@ -33,7 +33,7 @@ import com.rtbishop.look4sat.utility.Converters
exportSchema = false exportSchema = false
) )
@TypeConverters(Converters::class) @TypeConverters(Converters::class)
abstract class SatDb : RoomDatabase() { abstract class SatelliteDb : RoomDatabase() {
abstract fun sourcesDao(): SourcesDao abstract fun sourcesDao(): SourcesDao

Wyświetl plik

@ -1,5 +1,6 @@
package com.rtbishop.look4sat.repo.local package com.rtbishop.look4sat.repo.local
import androidx.lifecycle.LiveData
import androidx.room.* import androidx.room.*
import com.rtbishop.look4sat.data.SatTrans import com.rtbishop.look4sat.data.SatTrans
@ -7,7 +8,7 @@ import com.rtbishop.look4sat.data.SatTrans
interface TransmittersDao { interface TransmittersDao {
@Query("SELECT * FROM transmitters WHERE isAlive = 1 and catNum = :satId") @Query("SELECT * FROM transmitters WHERE isAlive = 1 and catNum = :satId")
suspend fun getTransmittersForSatId(satId: Int): List<SatTrans> fun getTransmittersForSat(satId: Int): LiveData<List<SatTrans>>
@Transaction @Transaction
suspend fun updateTransmitters(transmitters: List<SatTrans>) { suspend fun updateTransmitters(transmitters: List<SatTrans>) {

Wyświetl plik

@ -20,7 +20,10 @@
package com.rtbishop.look4sat.ui package com.rtbishop.look4sat.ui
import android.net.Uri import android.net.Uri
import androidx.lifecycle.* import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.github.amsacode.predict4java.GroundStationPosition import com.github.amsacode.predict4java.GroundStationPosition
import com.rtbishop.look4sat.data.Result import com.rtbishop.look4sat.data.Result
import com.rtbishop.look4sat.data.SatEntry import com.rtbishop.look4sat.data.SatEntry
@ -57,7 +60,7 @@ class SharedViewModel @Inject constructor(
fun getSources() = repository.getSources() fun getSources() = repository.getSources()
fun getEntries() = repository.getEntries() fun getEntries() = repository.getEntries()
fun getPasses(): LiveData<Result<MutableList<SatPass>>> = _passes fun getPasses(): LiveData<Result<MutableList<SatPass>>> = _passes
fun getTransmittersForSat(id: Int) = liveData { emit(repository.getTransmittersForSatId(id)) } fun getTransmittersForSat(satId: Int) = repository.getTransmittersForSat(satId)
fun updateEntriesFromFile(uri: Uri) { fun updateEntriesFromFile(uri: Uri) {
viewModelScope.launch { viewModelScope.launch {