Added ability to get the number of entries and radios

This commit is contained in:
Arty Bishop committed 2022-02-19 13:27:15 +00:00
1 parent afe9f77869
commit 0404f7be90
6 files changed
+26

No files matched your search

@@ -41,6 +41,10 @@ class LocalSource(
private val ioDispatcher: CoroutineDispatcher private val ioDispatcher: CoroutineDispatcher
) : ILocalSource { ) : ILocalSource {
override fun getEntriesNumber() = entriesDao.getEntriesNumber()
override fun getRadiosNumber() = radiosDao.getRadiosNumber()
override suspend fun getEntriesWithModes(): List<SatItem> { override suspend fun getEntriesWithModes(): List<SatItem> {
val selectedCatnums = getEntriesSelection() val selectedCatnums = getEntriesSelection()
val entriesWithModes = entriesDao.getEntriesWithModes().toDomainItems() val entriesWithModes = entriesDao.getEntriesWithModes().toDomainItems()
@@ -20,10 +20,14 @@ package com.rtbishop.look4sat.framework.local
import androidx.room.* import androidx.room.*
import com.rtbishop.look4sat.framework.model.SatEntry import com.rtbishop.look4sat.framework.model.SatEntry
import com.rtbishop.look4sat.framework.model.SatItem import com.rtbishop.look4sat.framework.model.SatItem
import kotlinx.coroutines.flow.Flow
@Dao @Dao
interface SatEntriesDao { interface SatEntriesDao {
@Query("SELECT COUNT(*) FROM entries")
fun getEntriesNumber(): Flow<Int>
@Transaction @Transaction
@Query("SELECT catnum, name FROM entries ORDER BY name ASC") @Query("SELECT catnum, name FROM entries ORDER BY name ASC")
suspend fun getEntriesWithModes(): List<SatItem> suspend fun getEntriesWithModes(): List<SatItem>
@@ -22,10 +22,14 @@ import androidx.room.Insert
import androidx.room.OnConflictStrategy import androidx.room.OnConflictStrategy
import androidx.room.Query import androidx.room.Query
import com.rtbishop.look4sat.framework.model.SatRadio import com.rtbishop.look4sat.framework.model.SatRadio
import kotlinx.coroutines.flow.Flow
@Dao @Dao
interface SatRadiosDao { interface SatRadiosDao {
@Query("SELECT COUNT(*) FROM radios")
fun getRadiosNumber(): Flow<Int>
@Query("SELECT * FROM radios WHERE catnum = :catnum AND isAlive = 1") @Query("SELECT * FROM radios WHERE catnum = :catnum AND isAlive = 1")
suspend fun getRadios(catnum: Int): List<SatRadio> suspend fun getRadios(catnum: Int): List<SatRadio>
@@ -45,6 +45,10 @@ class DataRepository(
_updateState.value = DataState.Handled _updateState.value = DataState.Handled
} }
override fun getEntriesNumber() = localSource.getEntriesNumber()
override fun getRadiosNumber() = localSource.getRadiosNumber()
override suspend fun getEntriesWithModes() = localSource.getEntriesWithModes() override suspend fun getEntriesWithModes() = localSource.getEntriesWithModes()
override suspend fun getSelectedEntries() = localSource.getSelectedEntries() override suspend fun getSelectedEntries() = localSource.getSelectedEntries()
@@ -21,10 +21,15 @@ import com.rtbishop.look4sat.domain.model.SatEntry
import com.rtbishop.look4sat.domain.model.SatItem import com.rtbishop.look4sat.domain.model.SatItem
import com.rtbishop.look4sat.domain.model.SatRadio import com.rtbishop.look4sat.domain.model.SatRadio
import com.rtbishop.look4sat.domain.predict.Satellite import com.rtbishop.look4sat.domain.predict.Satellite
import kotlinx.coroutines.flow.Flow
import java.io.InputStream import java.io.InputStream
interface ILocalSource { interface ILocalSource {
fun getEntriesNumber(): Flow<Int>
fun getRadiosNumber(): Flow<Int>
suspend fun getEntriesWithModes(): List<SatItem> suspend fun getEntriesWithModes(): List<SatItem>
suspend fun getSelectedEntries(): List<Satellite> suspend fun getSelectedEntries(): List<Satellite>
@@ -21,6 +21,7 @@ import com.rtbishop.look4sat.domain.model.DataState
import com.rtbishop.look4sat.domain.model.SatItem import com.rtbishop.look4sat.domain.model.SatItem
import com.rtbishop.look4sat.domain.model.SatRadio import com.rtbishop.look4sat.domain.model.SatRadio
import com.rtbishop.look4sat.domain.predict.Satellite import com.rtbishop.look4sat.domain.predict.Satellite
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.StateFlow
interface IDataRepository { interface IDataRepository {
@@ -29,6 +30,10 @@ interface IDataRepository {
fun setUpdateStateHandled() fun setUpdateStateHandled()
fun getEntriesNumber(): Flow<Int>
fun getRadiosNumber(): Flow<Int>
suspend fun getEntriesWithModes(): List<SatItem> suspend fun getEntriesWithModes(): List<SatItem>
suspend fun getSelectedEntries(): List<Satellite> suspend fun getSelectedEntries(): List<Satellite>