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 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()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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() {
|
||||||
|
|
|
||||||
|
|
@ -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>>
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
@ -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>) {
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
|
|
|
||||||
Ładowanie…
Reference in New Issue