feat(passes/radar): port pass history + compass calibration, cumulative what's new

- Pass history (Iu-yang1 fork): PassesSettings.hoursBefore look-back window;
  second 'Time before' slider in the pass filter; completed passes stay
  listed (progress clamped to [0,1]) in the history window.
- Compass calibration (Iu-yang1 fork): OtherSettings.compassOffsetDegrees,
  CompassAccuracy from the magnetic sensor, calibration dialog with
  figure-eight accuracy meter, corrected heading and manual offset field;
  RadarViewModel applies the offset.
- What's New dialog now shows the cumulative 4.4.6->4.4.7 changelog and
  follows the system language (values/ + values-zh/).
- pass_filter_history_hours localized in es/ru/si/tr/uk.
This commit is contained in:
atsunatsu committed 2026-09-21 10:42:45 +08:00
1 parent 3591960d55
commit bf492e3f8b
20 files changed
+363 -29

No files matched your search

@@ -82,7 +82,7 @@ class RadarViewModel(
private val _uiState = MutableStateFlow(
RadarState(
isUtc = settingsRepo.otherSettings.value.stateOfUtc,
orientationValues = sensorsRepo.sensorData.value,
orientationValues = correctedOrientation(sensorsRepo.sensorData.value),
shouldShowSweep = settingsRepo.otherSettings.value.stateOfSweep,
shouldUseCompass = settingsRepo.otherSettings.value.stateOfSensors,
sstv = SstvSubState(selectedMode = settingsRepo.otherSettings.value.sstvMode)
@@ -102,12 +102,19 @@ class RadarViewModel(
viewModelScope.launch {
sensorsRepo.enableSensor()
sensorsRepo.sensorData.collect { data ->
val orientationValues = (data.first + magDeclination) to data.second
val orientationValues = correctedOrientation(data)
_uiState.update { it.copy(orientationValues = orientationValues) }
}
}
}
/** 指南针方位 = 传感器方位 + 磁偏角 + 手动偏置(compassOffsetDegrees, 校准用). */
private fun correctedOrientation(data: Pair<Float, Float>): Pair<Float, Float> {
val offset = settingsRepo.otherSettings.value.compassOffsetDegrees
val azimuth = ((data.first + magDeclination + offset) % 360f + 360f) % 360f
return azimuth to data.second
}
private fun collectSettingsChanges() {
viewModelScope.launch {
settingsRepo.otherSettings.collectLatest { settings ->