feat(ft8): 4.5.5 integrate FT8CN 0.93 (full port, original UI)
Full FT8 mode integration (user chose scope C: complete port, keep original visual style): - feature/ft8 module: 213 Java classes from FT8CN 0.93 source (com.bg7yoz.ft8cn namespace preserved so code needs zero changes), DataBinding enabled, BuildConfig fields (APPLICATION_ID/VERSION_NAME/ apkBuildTime) restored for AGP9 - libft8cn.so from the user's FT8CN_0.93 APK (armeabi-v7a, 1.53MB; differs from repo copy, APK version used) - 237 res files + 58 assets + 4 local libs (MPAndroidChart spectrum, commons-net, nanohttpd, osmdroid map) copied verbatim - Proguard keep rules for JNI classes (RegisterNatives) - Entry: More menu "FT8" (default sub menu, after AMSAT) launches MainActivity via Intent (external activity, LAUNCHER filter removed to avoid double launcher) - Manifest merged via module (RECORD_AUDIO/BT/location perms) - Version 4.5.5/455 + What's new 5 languages (REPLACED per rule) Verified: :feature:ft8:compileDebugJavaWithJavac + :app:compileDebugKotlin BUILD SUCCESSFUL; check_strings 9 files OK.
This commit is contained in:
1 parent
c9d87be289
commit
8a2b0a9aa3
526 files changed
+177814
-45
No files matched your search
@@ -149,7 +149,8 @@ fun MainScreen(navigateToRadar: () -> Unit = {}) {
|
||||
val trackingState by container.radioTrackingService.state.collectAsStateWithLifecycle()
|
||||
val otherSettings by container.settingsRepo.otherSettings.collectAsStateWithLifecycle()
|
||||
// UI 设置: 按 screenOrder 排序(空 = 默认顺序), 再按 hiddenScreens 过滤(设置页固定保留)
|
||||
val allNavItems = listOf(Screen.Satellites, Screen.Passes, Screen.Radar, Screen.Mutual, Screen.Roaming, Screen.CwDecode, Screen.WavelogLog, Screen.AmSat, Screen.Map, Screen.Settings)
|
||||
val ft8Context = androidx.compose.ui.platform.LocalContext.current
|
||||
val allNavItems = listOf(Screen.Satellites, Screen.Passes, Screen.Radar, Screen.Mutual, Screen.Roaming, Screen.CwDecode, Screen.WavelogLog, Screen.AmSat, Screen.Ft8, Screen.Map, Screen.Settings)
|
||||
.sortedBy { screen ->
|
||||
// 未知(新页面如 CwDecode 不在旧持久化顺序里): 用默认顺序位置(漫游↔地图), 再兜底最后
|
||||
val idx = otherSettings.screenOrder.indexOf(screen.screenId)
|
||||
@@ -207,6 +208,13 @@ fun MainScreen(navigateToRadar: () -> Unit = {}) {
|
||||
onClick = {
|
||||
if (isSelected) return@item
|
||||
moreExpanded = false
|
||||
if (screen is Screen.Ft8) {
|
||||
ft8Context.startActivity(
|
||||
android.content.Intent()
|
||||
.setClassName(ft8Context.packageName, "com.bg7yoz.ft8cn.MainActivity")
|
||||
)
|
||||
return@item
|
||||
}
|
||||
while (backStack.size > 1) backStack.removeAt(backStack.size - 1)
|
||||
if (screen !is Screen.Passes) backStack.add(screen)
|
||||
}
|
||||
@@ -361,6 +369,13 @@ fun MainScreen(navigateToRadar: () -> Unit = {}) {
|
||||
onDismiss = { moreExpanded = false },
|
||||
onSelect = { screen ->
|
||||
moreExpanded = false
|
||||
if (screen is Screen.Ft8) {
|
||||
ft8Context.startActivity(
|
||||
android.content.Intent()
|
||||
.setClassName(ft8Context.packageName, "com.bg7yoz.ft8cn.MainActivity")
|
||||
)
|
||||
return@MoreMenuPopup
|
||||
}
|
||||
while (backStack.size > 1) backStack.removeAt(backStack.size - 1)
|
||||
if (screen !is Screen.Passes) backStack.add(screen)
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user