kopia lustrzana https://github.com/rt-bishop/Look4Sat
Now observing transmitters as LiveData from the database
rodzic
71c9e2c298
commit
c4abf214f6
|
|
@ -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()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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() {
|
||||
|
|
|
|||
|
|
@ -26,5 +26,5 @@ interface Repository {
|
|||
|
||||
suspend fun updateTransmitters()
|
||||
|
||||
suspend fun getTransmittersForSatId(satId: Int): List<SatTrans>
|
||||
fun getTransmittersForSat(satId: Int): LiveData<List<SatTrans>>
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
@ -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>) {
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
Ładowanie…
Reference in New Issue