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
@@ -1,21 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="purple_500">#ff6200ee</color>
|
||||
<integer name="default_font_size">18</integer>
|
||||
<string name="idle">Idle</string>
|
||||
<string name="waterfall_display">Waterfall display</string>
|
||||
<string name="frequency_scale">Frequency scale</string>
|
||||
<string name="decoded_text">Decoded text</string>
|
||||
<string name="clear">Clear</string>
|
||||
<string name="pause">Pause Decoding</string>
|
||||
<string name="save_text">Save Text</string>
|
||||
<string name="record_signals">Record Signals</string>
|
||||
<string name="settings">Settings</string>
|
||||
<string name="help">Online Help</string>
|
||||
<string name="rate">Rate this App</string>
|
||||
<string name="premium">Get Premium Version</string>
|
||||
<string name="tap_back_again_to_close">Tap Back again to close the app</string>
|
||||
<string name="message_type">Message Type</string>
|
||||
<string name="cw_back">Back</string>
|
||||
<string name="cw_pause">Pause decoding</string>
|
||||
<string name="cw_resume">Resume decoding</string>
|
||||
<string name="cw_clear">Clear decoded text</string>
|
||||
<string name="cw_status_listening">Listening…</string>
|
||||
<string name="cw_status_tone">%1$d Hz · %2$d ms</string>
|
||||
<string name="cw_mic_permission">Microphone permission is required for CW decoding</string>
|
||||
<string name="cw_grant_permission">Grant permission</string>
|
||||
<string name="cw_open_settings">Open app settings</string>
|
||||
|
||||
Reference in new issue
Block a user