mirror of
https://github.com/atsunatsu/Look4Sat.git
synced 2026-10-02 03:15:37 +00:00
Extracted logic into SettingsViewModel.kt
This commit is contained in:
1 parent
794d132086
commit
b8bb6d41f9
22 files changed
+148
-104
No files matched your search
+9
-9
@@ -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)
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -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>>
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@ package com.rtbishop.look4sat.data
|
||||
|
||||
import java.io.InputStream
|
||||
|
||||
interface RemoteDataSource {
|
||||
interface IRemoteSource {
|
||||
|
||||
suspend fun fetchFileStream(url: String): InputStream?
|
||||
}
|
||||
+1
-1
@@ -17,7 +17,7 @@
|
||||
*/
|
||||
package com.rtbishop.look4sat.data
|
||||
|
||||
interface SettingsHandler {
|
||||
interface ISettingsHandler {
|
||||
|
||||
val defaultSources: List<String>
|
||||
get() = listOf(
|
||||
+1
-1
@@ -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>>
|
||||
|
||||
+1
-1
@@ -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>>
|
||||
|
||||
Reference in new issue
Block a user