mirror of
https://github.com/rt-bishop/Look4Sat.git
synced 2026-10-02 03:15:37 +00:00
Switched to MVI architecture for PassesScreen
This commit is contained in:
1 parent
b9ade5f243
commit
a088a7a0a2
20 files changed
+203
-236
No files matched your search
@@ -59,9 +59,7 @@ class SatelliteRepo(
|
||||
return withContext(dispatcher) { sat.getPosition(pos, time) }
|
||||
}
|
||||
|
||||
override suspend fun getTrack(
|
||||
sat: Satellite, pos: GeoPos, start: Long, end: Long
|
||||
): List<SatPos> {
|
||||
override suspend fun getTrack(sat: Satellite, pos: GeoPos, start: Long, end: Long): List<SatPos> {
|
||||
return withContext(dispatcher) {
|
||||
val positions = mutableListOf<SatPos>()
|
||||
var currentTime = start
|
||||
@@ -73,9 +71,7 @@ class SatelliteRepo(
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun processRadios(
|
||||
sat: Satellite, pos: GeoPos, radios: List<SatRadio>, time: Long
|
||||
): List<SatRadio> {
|
||||
override suspend fun getRadios(sat: Satellite, pos: GeoPos, radios: List<SatRadio>, time: Long): List<SatRadio> {
|
||||
return withContext(dispatcher) {
|
||||
val satPos = sat.getPosition(pos, time)
|
||||
val copiedList = radios.map { it.copy() }
|
||||
|
||||
@@ -82,26 +82,19 @@ class SettingsRepo(private val manager: LocationManager, private val preferences
|
||||
private val _passesSettings = MutableStateFlow(getPassesSettings())
|
||||
override val passesSettings: StateFlow<PassesSettings> = _passesSettings
|
||||
|
||||
override fun getSelectedModes(): List<String> {
|
||||
val selectedModesString = preferences.getString(keySelectedModes, null)
|
||||
return selectedModesString?.split(separatorComma)?.sorted() ?: emptyList()
|
||||
}
|
||||
|
||||
override fun setSelectedModes(modes: List<String>) {
|
||||
val selectedModes = modes.joinToString(separatorComma)
|
||||
preferences.edit { putString(keySelectedModes, selectedModes) }
|
||||
}
|
||||
|
||||
override fun updatePassesSettings(settings: PassesSettings) = preferences.edit {
|
||||
putInt(keyFilterHoursAhead, settings.filterHoursAhead)
|
||||
putLong(keyFilterMinElevation, settings.filterMinElevation.toRawBits())
|
||||
override fun setPassesSettings(settings: PassesSettings) = preferences.edit {
|
||||
putInt(keyFilterHoursAhead, settings.hoursAhead)
|
||||
putLong(keyFilterMinElevation, settings.minElevation.toRawBits())
|
||||
putString(keySelectedModes, settings.selectedModes.joinToString(separatorComma))
|
||||
_passesSettings.value = settings
|
||||
}
|
||||
|
||||
private fun getPassesSettings(): PassesSettings {
|
||||
val hoursAhead = preferences.getInt(keyFilterHoursAhead, 24)
|
||||
val minElevation = Double.fromBits(preferences.getLong(keyFilterMinElevation, 16.0.toRawBits()))
|
||||
return PassesSettings(hoursAhead, minElevation)
|
||||
val selectedModesString = preferences.getString(keySelectedModes, null)
|
||||
val selectedModes = selectedModesString?.split(separatorComma)?.sorted() ?: emptyList()
|
||||
return PassesSettings(hoursAhead, minElevation, selectedModes)
|
||||
}
|
||||
//endregion
|
||||
|
||||
|
||||
Reference in new issue
Block a user