Switched to MVI architecture for PassesScreen

This commit is contained in:
Arty Bishop committed 2025-12-27 15:01:45 +00:00
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