refactor(cw)!: replace legacy CW engine with DeepCW in both entry points
DeepCW 成为唯一 CW 解码内核, 不保留旧引擎作兜底 (用户决定: 完全移植)。 删除旧内核 (1298 行): - CwDecoder.kt / CwBayesianDecoder.kt / CwChannelTracker.kt / CwSpectrogram.kt - CwDsp / CwFFT / CwSTFFT / CwGoertzel / CwFilter / CwResampler.kt - CwDecoderTest.kt 旧内核的自动定频与 squelch 门控由 DeepCW 的 400-1200Hz 固定频窗替代 —— 模型自带定频, 不再需要频谱峰值跟踪和噪声门。 两个 CW 入口都改接 DeepCW: 1. feature:cw 独立整页 CwDecodeScreen.kt 重写为纯 Compose (瀑布图 -> 实时行 -> 历史区), 移除 AndroidView/LayoutInflater 和被删的 activity_main 布局; 删除 CwSettingsDialog.kt (旧引擎的手动音调/带宽面板, DeepCW 全自动无需) 2. feature:radar 内嵌可折叠面板改走 ViewModel 的 CW state/action, 移除 Morse Expert 控制器与 cw_panel_main 布局 (该面板此前注释写明 "no longer feeds it", ViewModel 里的 CW 通路是死代码) 新增 CwWaterfall.kt: 复用 CwDeepSpectrogram 绘制瀑布图, 显示的正是模型 分析的 400-1200Hz 频段与同一批幅值。 接口接线: - IMainContainer.provideCwDecoder() 提供 ICwDecoder (实现需 Context 读 assets) - RadarViewModel 构造新增 cwDecoderFactory, onCleared() 中 close() 释放 OrtSession 避免原生内存泄漏 - 删除已无调用方的 RadarAction.CwSetToneFreq (DeepCW 定频固定, 无参数可调); CwSubState.cwToneFreq 语义改为只读显示检测到的音调 依赖清理: - feature:radar 不再依赖 feature:cw 与 constraintlayout - feature:cw 不再依赖 constraintlayout 字符串: feature:cw 清理 Morse Expert 遗留串 (premium/rate/help/ tap_back_again_to_close/purple_500), 按 en/zh/tr/in/id 五语补全新串; core:presentation 补 radar_cw_tone / radar_cw_waiting 五语。 验证: ./gradlew :core:domain:test => 4 个测试类全绿 ./gradlew :feature:cw:compileDebugKotlin => BUILD SUCCESSFUL ./gradlew :feature:radar:compileDebugKotlin => BUILD SUCCESSFUL ./gradlew :core:data:compileDebugKotlin => BUILD SUCCESSFUL
This commit is contained in:
1 parent
57762613a8
commit
9b0d543f12
30 files changed
+430
-1805
No files matched your search
@@ -132,6 +132,8 @@
|
||||
<string name="radar_cw_start">Mulai</string>
|
||||
<string name="radar_cw_stop">Berhenti</string>
|
||||
<string name="radar_cw_reset">Bersihkan</string>
|
||||
<string name="radar_cw_tone">Nada %1$d Hz</string>
|
||||
<string name="radar_cw_waiting">Menunggu sinyal…</string>
|
||||
<string name="map_prev">Sebelumnya</string>
|
||||
<string name="map_next">Berikutnya</string>
|
||||
<string name="map_copyright" translatable="false">© Kontributor OpenStreetMap</string>
|
||||
|
||||
@@ -131,6 +131,8 @@
|
||||
<string name="radar_cw_start">Mulai</string>
|
||||
<string name="radar_cw_stop">Berhenti</string>
|
||||
<string name="radar_cw_reset">Bersihkan</string>
|
||||
<string name="radar_cw_tone">Nada %1$d Hz</string>
|
||||
<string name="radar_cw_waiting">Menunggu sinyal…</string>
|
||||
<string name="map_prev">Sebelumnya</string>
|
||||
<string name="map_next">Berikutnya</string>
|
||||
<string name="map_copyright" translatable="false">© Kontributor OpenStreetMap</string>
|
||||
|
||||
@@ -296,5 +296,7 @@
|
||||
\n• BA7OPF (pass matching feature)
|
||||
\n• BG7NTA</string>
|
||||
<string name="prefs_outro_license">Bu uygulama herhangi bir garanti sunmaz</string>
|
||||
<string name="radar_cw_tone">Ton %1$d Hz</string>
|
||||
<string name="radar_cw_waiting">Sinyal bekleniyor…</string>
|
||||
|
||||
</resources>
|
||||
@@ -123,6 +123,8 @@
|
||||
<string name="radar_cw_start">开始</string>
|
||||
<string name="radar_cw_stop">停止</string>
|
||||
<string name="radar_cw_reset">清空</string>
|
||||
<string name="radar_cw_tone">音调 %1$d Hz</string>
|
||||
<string name="radar_cw_waiting">等待信号…</string>
|
||||
|
||||
<!-- Map screen -->
|
||||
<string name="map_prev">上一个</string>
|
||||
|
||||
@@ -141,6 +141,8 @@
|
||||
<string name="radar_cw_start">Start</string>
|
||||
<string name="radar_cw_stop">Stop</string>
|
||||
<string name="radar_cw_reset">Clear</string>
|
||||
<string name="radar_cw_tone">Tone %1$d Hz</string>
|
||||
<string name="radar_cw_waiting">Waiting for signal…</string>
|
||||
|
||||
<!-- Map screen -->
|
||||
<string name="map_prev">Prev</string>
|
||||
|
||||
Reference in new issue
Block a user