fix(cw): restore FFT dispatch (cond_22), CW UI settings entry, default order
Decode page showed stats but empty waterfall and no decoded text: the ported i3/d.k() FFT dispatch was broken by a jadx structure misplacement - the runtime path (k=1 -> a5=0 -> cond_22 single-thread FFT) was replaced by a hallucinated `throw null` else-branch while the real cond_22 code sat in a dead else. Verified against smali (7030-7263): j3.c.q forward FFT + post-processing loop + tail + small- array branch now live in the a5==0 branch. Also: - UiSettingsCard now lists CwDecode (toggle + drag-reorder) between Roaming and Map - unknown screenIds in persisted screenOrder fall back to defaultScreenOrder position (CwDecode lands between Roaming and Map for existing users instead of trailing after Settings) Verified: :feature:cw + :feature:settings + :app compileDebugKotlin BUILD SUCCESSFUL.
This commit is contained in:
1 parent
544515feba
commit
3c5486cc5c
3 files changed
+57
-58
No files matched your search
@@ -139,8 +139,12 @@ fun MainScreen(navigateToRadar: () -> Unit = {}) {
|
||||
// UI 设置: 按 screenOrder 排序(空 = 默认顺序), 再按 hiddenScreens 过滤(设置页固定保留)
|
||||
val navItems = listOf(Screen.Satellites, Screen.Passes, Screen.Radar, Screen.Mutual, Screen.Roaming, Screen.CwDecode, Screen.Map, Screen.Settings)
|
||||
.sortedBy { screen ->
|
||||
// 未知(新页面如 CwDecode 不在旧持久化顺序里): 用默认顺序位置(漫游↔地图), 再兜底最后
|
||||
val idx = otherSettings.screenOrder.indexOf(screen.screenId)
|
||||
if (idx == -1) Int.MAX_VALUE else idx
|
||||
if (idx != -1) idx
|
||||
else com.rtbishop.look4sat.core.presentation.defaultScreenOrder.indexOf(screen.screenId).let {
|
||||
if (it != -1) it else Int.MAX_VALUE
|
||||
}
|
||||
}
|
||||
.filter { it.screenId !in otherSettings.hiddenScreens || it is Screen.Settings }
|
||||
// Activity-scoped so the mutual query results survive navigation to Radar and back
|
||||
|
||||
Reference in new issue
Block a user