Added ability to get the number of entries and radios

pull/87/head
Arty Bishop 2022-02-19 13:27:15 +00:00
rodzic afe9f77869
commit 0404f7be90
6 zmienionych plików z 26 dodań i 0 usunięć

Wyświetl plik

@ -41,6 +41,10 @@ class LocalSource(
private val ioDispatcher: CoroutineDispatcher
) : ILocalSource {
override fun getEntriesNumber() = entriesDao.getEntriesNumber()
override fun getRadiosNumber() = radiosDao.getRadiosNumber()
override suspend fun getEntriesWithModes(): List<SatItem> {
val selectedCatnums = getEntriesSelection()
val entriesWithModes = entriesDao.getEntriesWithModes().toDomainItems()

Wyświetl plik

@ -20,10 +20,14 @@ package com.rtbishop.look4sat.framework.local
import androidx.room.*
import com.rtbishop.look4sat.framework.model.SatEntry
import com.rtbishop.look4sat.framework.model.SatItem
import kotlinx.coroutines.flow.Flow
@Dao
interface SatEntriesDao {
@Query("SELECT COUNT(*) FROM entries")
fun getEntriesNumber(): Flow<Int>
@Transaction
@Query("SELECT catnum, name FROM entries ORDER BY name ASC")
suspend fun getEntriesWithModes(): List<SatItem>

Wyświetl plik

@ -22,10 +22,14 @@ import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import com.rtbishop.look4sat.framework.model.SatRadio
import kotlinx.coroutines.flow.Flow
@Dao
interface SatRadiosDao {
@Query("SELECT COUNT(*) FROM radios")
fun getRadiosNumber(): Flow<Int>
@Query("SELECT * FROM radios WHERE catnum = :catnum AND isAlive = 1")
suspend fun getRadios(catnum: Int): List<SatRadio>

Wyświetl plik

@ -45,6 +45,10 @@ class DataRepository(
_updateState.value = DataState.Handled
}
override fun getEntriesNumber() = localSource.getEntriesNumber()
override fun getRadiosNumber() = localSource.getRadiosNumber()
override suspend fun getEntriesWithModes() = localSource.getEntriesWithModes()
override suspend fun getSelectedEntries() = localSource.getSelectedEntries()

Wyświetl plik

@ -21,10 +21,15 @@ import com.rtbishop.look4sat.domain.model.SatEntry
import com.rtbishop.look4sat.domain.model.SatItem
import com.rtbishop.look4sat.domain.model.SatRadio
import com.rtbishop.look4sat.domain.predict.Satellite
import kotlinx.coroutines.flow.Flow
import java.io.InputStream
interface ILocalSource {
fun getEntriesNumber(): Flow<Int>
fun getRadiosNumber(): Flow<Int>
suspend fun getEntriesWithModes(): List<SatItem>
suspend fun getSelectedEntries(): List<Satellite>

Wyświetl plik

@ -21,6 +21,7 @@ import com.rtbishop.look4sat.domain.model.DataState
import com.rtbishop.look4sat.domain.model.SatItem
import com.rtbishop.look4sat.domain.model.SatRadio
import com.rtbishop.look4sat.domain.predict.Satellite
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.StateFlow
interface IDataRepository {
@ -29,6 +30,10 @@ interface IDataRepository {
fun setUpdateStateHandled()
fun getEntriesNumber(): Flow<Int>
fun getRadiosNumber(): Flow<Int>
suspend fun getEntriesWithModes(): List<SatItem>
suspend fun getSelectedEntries(): List<Satellite>