Extracted logic into SettingsViewModel.kt

This commit is contained in:
Arty Bishop committed 2022-01-30 20:32:49 +00:00
1 parent 794d132086
commit b8bb6d41f9
22 files changed
+148 -104

No files matched your search

@@ -18,7 +18,7 @@
package com.rtbishop.look4sat.data
import com.rtbishop.look4sat.domain.DataParser
import com.rtbishop.look4sat.domain.DataRepository
import com.rtbishop.look4sat.domain.IDataRepository
import com.rtbishop.look4sat.domain.model.SatEntry
import kotlinx.coroutines.Deferred
import kotlinx.coroutines.async
@@ -28,12 +28,12 @@ import java.io.InputStream
import java.util.zip.ZipInputStream
import kotlin.system.measureTimeMillis
class DefaultRepository(
class DataRepository(
private val dataParser: DataParser,
private val localSource: LocalDataSource,
private val remoteSource: RemoteDataSource,
private val settings: SettingsHandler
) : DataRepository {
private val localSource: ILocalSource,
private val remoteSource: IRemoteSource,
private val settingsHandler: ISettingsHandler
) : IDataRepository {
override fun getSatelliteItems() = localSource.getSatelliteItems()
@@ -48,7 +48,7 @@ class DefaultRepository(
override suspend fun updateDataFromWeb(sources: List<String>) {
coroutineScope {
launch {
settings.saveDataSources(sources)
settingsHandler.saveDataSources(sources)
}
launch {
val updateTimeMillis = measureTimeMillis {
@@ -78,8 +78,8 @@ class DefaultRepository(
println("Update from web took $updateTimeMillis ms")
}
launch {
remoteSource.fetchFileStream(settings.transmittersSource)?.let { inputStream ->
val transmitters = dataParser.parseJSONStream(inputStream)
remoteSource.fetchFileStream(settingsHandler.transmittersSource)?.let { stream ->
val transmitters = dataParser.parseJSONStream(stream)
localSource.updateTransmitters(transmitters)
}
}
@@ -23,7 +23,7 @@ import com.rtbishop.look4sat.domain.model.Transmitter
import com.rtbishop.look4sat.domain.predict.Satellite
import kotlinx.coroutines.flow.Flow
interface LocalDataSource {
interface ILocalSource {
fun getSatelliteItems(): Flow<List<SatItem>>
@@ -19,7 +19,7 @@ package com.rtbishop.look4sat.data
import java.io.InputStream
interface RemoteDataSource {
interface IRemoteSource {
suspend fun fetchFileStream(url: String): InputStream?
}
@@ -17,7 +17,7 @@
*/
package com.rtbishop.look4sat.data
interface SettingsHandler {
interface ISettingsHandler {
val defaultSources: List<String>
get() = listOf(
@@ -23,7 +23,7 @@ import com.rtbishop.look4sat.domain.predict.Satellite
import kotlinx.coroutines.flow.Flow
import java.io.InputStream
interface DataRepository {
interface IDataRepository {
fun getSatelliteItems(): Flow<List<SatItem>>
@@ -4,7 +4,7 @@ import com.rtbishop.look4sat.domain.model.DataState
import com.rtbishop.look4sat.domain.predict.GeoPos
import kotlinx.coroutines.flow.SharedFlow
interface LocationHandler {
interface ILocationHandler {
val stationPosition: SharedFlow<DataState<GeoPos>>