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 androidx.room.Room
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.TransmittersDao
import dagger.Module
@ -34,26 +34,25 @@ class PersistenceModule {
@Singleton
@Provides
fun provideEntriesDao(db: SatDb): EntriesDao {
fun provideEntriesDao(db: SatelliteDb): EntriesDao {
return db.entriesDao()
}
@Singleton
@Provides
fun provideTransDao(db: SatDb): TransmittersDao {
fun provideTransDao(db: SatelliteDb): TransmittersDao {
return db.transmittersDao()
}
@Singleton
@Provides
fun providesSourcesDao(db: SatDb): SourcesDao {
fun providesSourcesDao(db: SatelliteDb): SourcesDao {
return db.sourcesDao()
}
@Singleton
@Provides
fun provideSatDb(context: Context): SatDb {
return Room.databaseBuilder(context, SatDb::class.java, "satDb")
.build()
fun provideSatDb(context: Context): SatelliteDb {
return Room.databaseBuilder(context, SatelliteDb::class.java, "satDb").build()
}
}

Wyświetl plik

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

Wyświetl plik

@ -26,5 +26,5 @@ interface Repository {
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
)
@TypeConverters(Converters::class)
abstract class SatDb : RoomDatabase() {
abstract class SatelliteDb : RoomDatabase() {
abstract fun sourcesDao(): SourcesDao

Wyświetl plik

@ -1,5 +1,6 @@
package com.rtbishop.look4sat.repo.local
import androidx.lifecycle.LiveData
import androidx.room.*
import com.rtbishop.look4sat.data.SatTrans
@ -7,7 +8,7 @@ import com.rtbishop.look4sat.data.SatTrans
interface TransmittersDao {
@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
suspend fun updateTransmitters(transmitters: List<SatTrans>) {

Wyświetl plik

@ -20,7 +20,10 @@
package com.rtbishop.look4sat.ui
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.rtbishop.look4sat.data.Result
import com.rtbishop.look4sat.data.SatEntry
@ -57,7 +60,7 @@ class SharedViewModel @Inject constructor(
fun getSources() = repository.getSources()
fun getEntries() = repository.getEntries()
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) {
viewModelScope.launch {