feat: add mutual pass query with dual-station elevation curve

Port satlover.de dual-station pass matching feature:
- New feature/mutual module with mutual pass data model
- MutualViewModel: compute overlapping passes for two stations
- ElevationCurveChart: Canvas-based dual elevation curve with drag
- MutualScreen: input form + results with expandable cards
- Navigation: add Mutual tab to bottom navigation bar
- i18n: add Chinese/English strings for new feature
This commit is contained in:
atsunatsu committed 2026-08-02 21:22:42 +08:00
1 parent 8aedd38b51
commit 1064dc739e
12 files changed
+899 -1

No files matched your search

@@ -35,6 +35,9 @@ sealed class Screen(val iconResId: Int, val titleResId: Int) : NavKey {
@Serializable
data object Map : Screen(R.drawable.ic_map, R.string.nav_map)
@Serializable
data object Mutual : Screen(R.drawable.ic_radar, R.string.nav_mutual)
@Serializable
data object Settings : Screen(R.drawable.ic_settings, R.string.nav_prefs)
}
@@ -9,6 +9,7 @@
<string name="nav_sat">卫星</string>
<string name="nav_pass">过境</string>
<string name="nav_radar">雷达</string>
<string name="nav_mutual">对台</string>
<string name="nav_map">地图</string>
<string name="nav_prefs">设置</string>
@@ -10,6 +10,7 @@
<string name="nav_sat">Satellites</string>
<string name="nav_pass">Passes</string>
<string name="nav_radar">Radar</string>
<string name="nav_mutual">Mutual</string>
<string name="nav_map">Map</string>
<string name="nav_prefs">Settings</string>