mirror of
https://github.com/rt-bishop/Look4Sat.git
synced 2026-10-02 03:15:37 +00:00
Moved satellite selections storage to SharedPreferences
This commit is contained in:
1 parent
a7c840d532
commit
92eec290b1
10 files changed
+88
-96
No files matched your search
@@ -22,8 +22,8 @@ import com.rtbishop.look4sat.domain.IDataRepository
|
||||
import com.rtbishop.look4sat.domain.model.DataState
|
||||
import com.rtbishop.look4sat.domain.model.SatEntry
|
||||
import com.rtbishop.look4sat.domain.model.SatItem
|
||||
import com.rtbishop.look4sat.domain.predict.Satellite
|
||||
import kotlinx.coroutines.*
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
import java.io.InputStream
|
||||
@@ -43,13 +43,23 @@ class DataRepository(
|
||||
_updateState.value = DataState.Error(exception.message)
|
||||
}
|
||||
private val _updateState = MutableStateFlow<DataState<Long>>(DataState.Handled)
|
||||
override val dataUpdateState: StateFlow<DataState<Long>> = _updateState
|
||||
override val updateState: StateFlow<DataState<Long>> = _updateState
|
||||
|
||||
override fun setDataUpdateHandled() {
|
||||
_updateState.value = DataState.Handled
|
||||
override suspend fun getAllSatellites(): List<SatItem> {
|
||||
val selection = settings.loadSatelliteSelection()
|
||||
val satellites = localSource.getAllSatellites()
|
||||
satellites.forEach { satItem -> satItem.isSelected = satItem.catnum in selection }
|
||||
return satellites
|
||||
}
|
||||
|
||||
override fun updateDataFromFile(uri: String) {
|
||||
override suspend fun getSelectedSatellites(): List<Satellite> {
|
||||
val selection = settings.loadSatelliteSelection()
|
||||
return localSource.getSelectedSatellites(selection)
|
||||
}
|
||||
|
||||
override suspend fun getTransmitters(catnum: Int) = localSource.getTransmitters(catnum)
|
||||
|
||||
override fun updateFromFile(uri: String) {
|
||||
repositoryScope.launch(exceptionHandler) {
|
||||
_updateState.value = DataState.Loading
|
||||
val updateTimeMillis = measureTimeMillis {
|
||||
@@ -61,7 +71,7 @@ class DataRepository(
|
||||
}
|
||||
}
|
||||
|
||||
override fun updateDataFromWeb(sources: List<String>) {
|
||||
override fun updateFromWeb(sources: List<String>) {
|
||||
_updateState.value = DataState.Loading
|
||||
repositoryScope.launch(exceptionHandler) {
|
||||
settings.saveDataSources(sources)
|
||||
@@ -102,23 +112,21 @@ class DataRepository(
|
||||
}
|
||||
}
|
||||
|
||||
override fun clearData() {
|
||||
override fun updatesSelection(catnums: List<Int>) {
|
||||
repositoryScope.launch {
|
||||
_updateState.value = DataState.Loading
|
||||
localSource.clearData()
|
||||
_updateState.value = DataState.Success(0L)
|
||||
settings.saveSatelliteSelection(catnums)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getSatelliteItems(): Flow<List<SatItem>> = localSource.getSatelliteItems()
|
||||
override fun setUpdateStateHandled() {
|
||||
_updateState.value = DataState.Handled
|
||||
}
|
||||
|
||||
override suspend fun getSelectedSatellites() = localSource.getSelectedSatellites()
|
||||
|
||||
override suspend fun getTransmitters(catnum: Int) = localSource.getTransmitters(catnum)
|
||||
|
||||
override fun updateSelection(catnums: List<Int>) {
|
||||
override fun clearAllData() {
|
||||
repositoryScope.launch {
|
||||
localSource.updateEntriesSelection(catnums)
|
||||
_updateState.value = DataState.Loading
|
||||
localSource.clearAllData()
|
||||
_updateState.value = DataState.Success(0L)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,24 +21,21 @@ import com.rtbishop.look4sat.domain.model.SatEntry
|
||||
import com.rtbishop.look4sat.domain.model.SatItem
|
||||
import com.rtbishop.look4sat.domain.model.Transmitter
|
||||
import com.rtbishop.look4sat.domain.predict.Satellite
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import java.io.InputStream
|
||||
|
||||
interface ILocalSource {
|
||||
|
||||
fun getSatelliteItems(): Flow<List<SatItem>>
|
||||
suspend fun getAllSatellites(): List<SatItem>
|
||||
|
||||
suspend fun getFileStream(uri: String): InputStream?
|
||||
|
||||
suspend fun getSelectedSatellites(): List<Satellite>
|
||||
suspend fun getSelectedSatellites(catnums: List<Int>): List<Satellite>
|
||||
|
||||
suspend fun getTransmitters(catnum: Int): List<Transmitter>
|
||||
|
||||
suspend fun updateEntries(entries: List<SatEntry>)
|
||||
suspend fun getFileStream(uri: String): InputStream?
|
||||
|
||||
suspend fun updateEntriesSelection(catnums: List<Int>)
|
||||
suspend fun updateEntries(entries: List<SatEntry>)
|
||||
|
||||
suspend fun updateTransmitters(transmitters: List<Transmitter>)
|
||||
|
||||
suspend fun clearData()
|
||||
suspend fun clearAllData()
|
||||
}
|
||||
@@ -59,6 +59,10 @@ interface ISettingsHandler {
|
||||
|
||||
fun loadModesSelection(): List<String>
|
||||
|
||||
fun saveSatelliteSelection(catnums: List<Int>)
|
||||
|
||||
fun loadSatelliteSelection(): List<Int>
|
||||
|
||||
fun getRotatorEnabled(): Boolean
|
||||
|
||||
fun setRotatorEnabled(value: Boolean)
|
||||
|
||||
@@ -21,26 +21,25 @@ import com.rtbishop.look4sat.domain.model.DataState
|
||||
import com.rtbishop.look4sat.domain.model.SatItem
|
||||
import com.rtbishop.look4sat.domain.model.Transmitter
|
||||
import com.rtbishop.look4sat.domain.predict.Satellite
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
|
||||
interface IDataRepository {
|
||||
|
||||
val dataUpdateState: StateFlow<DataState<Long>>
|
||||
val updateState: StateFlow<DataState<Long>>
|
||||
|
||||
fun setDataUpdateHandled()
|
||||
|
||||
fun updateDataFromFile(uri: String)
|
||||
|
||||
fun updateDataFromWeb(sources: List<String>)
|
||||
|
||||
fun clearData()
|
||||
|
||||
fun getSatelliteItems(): Flow<List<SatItem>>
|
||||
suspend fun getAllSatellites(): List<SatItem>
|
||||
|
||||
suspend fun getSelectedSatellites(): List<Satellite>
|
||||
|
||||
suspend fun getTransmitters(catnum: Int): List<Transmitter>
|
||||
|
||||
fun updateSelection(catnums: List<Int>)
|
||||
fun updateFromFile(uri: String)
|
||||
|
||||
fun updateFromWeb(sources: List<String>)
|
||||
|
||||
fun updatesSelection(catnums: List<Int>)
|
||||
|
||||
fun setUpdateStateHandled()
|
||||
|
||||
fun clearAllData()
|
||||
}
|
||||
Reference in new issue
Block a user