Revert "feat(nav): 4.5.6 AMSAT to bottom bar, Radar to More menu, tablet rail"

This reverts commit d8e1ee3266.
This commit is contained in:
mckero committed 2026-08-05 10:07:45 +00:00
1 parent d8e1ee3266
commit 4c62b2dfb2
9 files changed
+34 -41

No files matched your search

@@ -149,14 +149,10 @@ fun MainScreen(navigateToRadar: () -> Unit = {}) {
val trackingState by container.radioTrackingService.state.collectAsStateWithLifecycle()
val otherSettings by container.settingsRepo.otherSettings.collectAsStateWithLifecycle()
// UI settings: sort by screenOrder (empty = default order), then filter by hiddenScreens (Settings always kept)
val screenOrder = if (otherSettings.screenOrder.isEmpty()) emptyList()
else otherSettings.screenOrder.filter { it != "Radar" }
.let { list -> if ("AMSAT" in list) list else list + "AMSAT" }
val allNavItems = listOf(Screen.Satellites, Screen.Passes, Screen.Radar, Screen.Mutual, Screen.Roaming, Screen.CwDecode, Screen.WavelogLog, Screen.AmSat, Screen.Map, Screen.Settings)
.sortedBy { screen ->
// Unknown pages (e.g. CwDecode not in old persisted order): use default-order position (Roaming<->Map), then fall back to last
val idx = screenOrder.indexOf(screen.screenId)
val idx = otherSettings.screenOrder.indexOf(screen.screenId)
if (idx != -1) idx
else com.rtbishop.look4sat.core.presentation.defaultScreenOrder.indexOf(screen.screenId).let {
if (it != -1) it else Int.MAX_VALUE
@@ -164,12 +160,10 @@ fun MainScreen(navigateToRadar: () -> Unit = {}) {
}
.filter { it.screenId !in otherSettings.hiddenScreens || it is Screen.Settings }
// 4.5.1 foldable menu: main menu (5 bottom-bar slots) + More menu (overflow page)
// 4.5.6 migration: Radar moved to the More menu, AMSAT promoted to the main menu
// Legacy migration: persisted subMenuOrder lacks new pages (WavelogLog) -> append to the sub-menu tail
val subOrder = (otherSettings.subMenuOrder.ifEmpty { com.rtbishop.look4sat.core.presentation.defaultSubMenuOrder })
.filter { it != "AMSAT" }
.let { list -> if ("WavelogLog" in list) list else list + "WavelogLog" }
.let { list -> if ("Radar" in list) list else list + "Radar" }
.let { list -> if ("AMSAT" in list) list else list + "AMSAT" }
val mainNavItems = remember(allNavItems, subOrder) {
allNavItems.filter { it.screenId !in subOrder }.take(5)
}
@@ -237,8 +231,8 @@ fun MainScreen(navigateToRadar: () -> Unit = {}) {
navigationRailContainerColor = MaterialTheme.colorScheme.surfaceContainer
),
layoutType = when {
hasEnoughWidth() -> NavigationSuiteType.NavigationRail
!hasEnoughHeight() -> NavigationSuiteType.ShortNavigationBarCompact
!hasEnoughHeight() && hasEnoughWidth() -> NavigationSuiteType.NavigationRail
!hasEnoughWidth() -> NavigationSuiteType.ShortNavigationBarCompact
else -> NavigationSuiteType.ShortNavigationBarMedium
}
) {
@@ -48,17 +48,17 @@ sealed class Screen(val iconResId: Int, val titleResId: Int, val screenId: Strin
data object WavelogLog : Screen(R.drawable.ic_log, R.string.nav_log, "WavelogLog")
@Serializable
data object AmSat : Screen(R.drawable.ic_satellite_alt, R.string.nav_amsat, "AMSAT")
data object AmSat : Screen(R.drawable.ic_satellites, R.string.nav_amsat, "AMSAT")
@Serializable
data object Settings : Screen(R.drawable.ic_settings, R.string.nav_prefs, "Settings")
}
// UI settings: default main-menu page order (5 bottom-bar slots)
val defaultScreenOrder = listOf("Satellites", "Passes", "AMSAT", "Map", "Settings")
val defaultScreenOrder = listOf("Satellites", "Passes", "Radar", "Map", "Settings")
// UI settings: default More-menu order (pages behind "More")
val defaultSubMenuOrder = listOf("Mutual", "Radar", "Roaming", "CwDecode", "WavelogLog")
val defaultSubMenuOrder = listOf("Mutual", "Roaming", "CwDecode", "WavelogLog", "AMSAT")
@Serializable
data object RadarDestination : NavKey
@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- MDI satellite-variant (Material Design Icons, Apache 2.0, https://pictogrammers.com) -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M11.62,1L17.28,6.67L15.16,8.79L13.04,6.67L11.62,8.09L13.95,10.41L12.79,11.58L13.24,12.04C14.17,11.61 15.31,11.77 16.07,12.54L12.54,16.07C11.77,15.31 11.61,14.17 12.04,13.24L11.58,12.79L10.41,13.95L8.09,11.62L6.67,13.04L8.79,15.16L6.67,17.28L1,11.62L3.14,9.5L5.26,11.62L6.67,10.21L3.84,7.38C3.06,6.6 3.06,5.33 3.84,4.55L4.55,3.84C5.33,3.06 6.6,3.06 7.38,3.84L10.21,6.67L11.62,5.26L9.5,3.14L11.62,1M18,14A4,4 0 0,0 14,18A4,4 0 0,0 18,22A4,4 0 0,0 22,18A4,4 0 0,0 18,14M18,20A2,2 0 0,1 16,18A2,2 0 0,1 18,16A2,2 0 0,1 20,18A2,2 0 0,1 18,20M4.27,10.5L6.09,12.32C6.45,11.91 6.85,11.53 7.28,11.17L5.45,9.34L4.27,10.5M8.5,14.73L10.32,16.55C10.73,16.2 11.1,15.8 11.46,15.37L9.64,13.55L8.5,14.73M2.39,2.39L1,3.77L3.08,5.85C2.2,6.7 1.66,7.87 1.66,9.17L4.37,9.21C4.37,8.67 4.57,8.17 4.91,7.77L5.82,8.68L7.39,7.11L4.17,3.89C4.03,3.75 3.86,3.69 3.69,3.69C3.5,3.69 3.3,3.75 3.14,3.89L2.39,2.39M14,2.78C14,2.78 12.95,2.78 12.95,2.78V4.9H14V2.78M14,6.31H12.95V8.55H14V6.31M14,9.85H12.95V11.2H14V9.85Z" />
</vector>
@@ -93,9 +93,11 @@
\n\nPerbarui database setidaknya seminggu sekali untuk prediksi yang akurat.</string>
<string name="pass_whatsnew_title" translatable="false">Apa yang baru di Look4Sat</string>
<string name="pass_whatsnew_message" translatable="false">
* Navigasi: AMSAT dipindahkan ke bilah bawah, Radar dipindahkan ke menu Lainnya (maks 5 tujuan utama)
* Layar lebar / tablet: rel navigasi samping, bukan bilah bawah (strip kosong bawah dihilangkan)
* Ikon tab AMSAT baru (MDI satellite-variant, Apache 2.0)
* BARU: Status satelit AMSAT kini menggunakan API resmi AMSAT (v1 JSON, lebih cepat dan andal)
* Halaman status AMSAT kini mendukung layar penuh (tombol refresh dan waktu selalu dapat diakses)
* WaveLog: pencarian grid lawan QRZ (dialog ⚙ tempel Cookie + uji query)
* WaveLog: tombol perbarui daftar satelit LoTW (112 satelit bawaan)
* WaveLog: laporan sinyal RST 59/59 untuk QSO (v1 dan v2)
</string>
<string name="radar_back">Kembali</string>
<string name="radar_notify">Beri tahu</string>
@@ -92,9 +92,11 @@
\n\nPerbarui database setidaknya seminggu sekali untuk prediksi yang akurat.</string>
<string name="pass_whatsnew_title" translatable="false">Apa yang baru di Look4Sat</string>
<string name="pass_whatsnew_message" translatable="false">
* Navigasi: AMSAT dipindahkan ke bilah bawah, Radar dipindahkan ke menu Lainnya (maks 5 tujuan utama)
* Layar lebar / tablet: rel navigasi samping, bukan bilah bawah (strip kosong bawah dihilangkan)
* Ikon tab AMSAT baru (MDI satellite-variant, Apache 2.0)
* BARU: Status satelit AMSAT kini menggunakan API resmi AMSAT (v1 JSON, lebih cepat dan andal)
* Halaman status AMSAT kini mendukung layar penuh (tombol refresh dan waktu selalu dapat diakses)
* WaveLog: pencarian grid lawan QRZ (dialog ⚙ tempel Cookie + uji query)
* WaveLog: tombol perbarui daftar satelit LoTW (112 satelit bawaan)
* WaveLog: laporan sinyal RST 59/59 untuk QSO (v1 dan v2)
</string>
<string name="radar_back">Kembali</string>
<string name="radar_notify">Beri tahu</string>
@@ -97,9 +97,11 @@
\n\nDoğru tahminler alabilmek için veritabanını en az haftada bir güncelleyin.</string>
<string name="pass_whatsnew_title" translatable="false">What\'s new in Look4Sat</string>
<string name="pass_whatsnew_message" translatable="false">
* Gezinme: AMSAT alt çubuğa taşındı, Radar Daha Fazla menüsüne taşındı (en fazla 5 ana hedef)
* Geniş ekran / tablet: alt çubuk yerine yan gezinme rayı (alttaki boş şerit kaldırıldı)
* Yeni AMSAT sekme simgesi (MDI satellite-variant, Apache 2.0)
* YENİ: AMSAT uydu durumu resmi AMSAT API kullanıyor (v1 JSON, daha hızlı ve güvenilir)
* AMSAT durum sayfası tam ekran cihazlara uyumlu (yenileme düğmesi ve saat her zaman erişilebilir)
* WaveLog: QRZ karşı grid sorgulama (⚙ diyalogda Cookie yapıştır + test sorgusu)
* WaveLog: LoTW uydu listesi güncelleme düğmesi (112 uydu yerleşik)
* WaveLog: RST 59/59 sinyal raporu (v1 ve v2)
</string>
<!-- Radar screen -->
@@ -87,9 +87,11 @@
<string name="pass_welcome_message">请务必在设置中通过GPS、经纬度或QTH定位您的位置\n建议至少每周更新一次数据库,以确保预测结果的准确性</string>
<string name="pass_whatsnew_title">Look4Sat Pro 更新内容</string>
<string name="pass_whatsnew_message" translatable="false">
* 导航: AMSAT 移到底部栏,雷达移到更多菜单(主目的地最多 5 个)
* 宽屏/平板: 改为侧边导航栏(不再有底部空白条)
* AMSAT 标签新图标(MDI satellite-variant,Apache 2.0)
* 新: AMSAT 卫星状态改用官方 AMSAT API(v1 JSON,更快更稳)
* AMSAT 状态页适配全面屏(刷新按钮和更新时间始终可点)
* WaveLog: QRZ 对方网格查询(⚙ 弹窗粘贴 Cookie + 测试查询)
* WaveLog: LoTW 卫星列表更新按钮(内置 112 颗卫星)
* WaveLog: 信号报告 59/59(v1 和 v2)
</string>
<!-- Radar screen -->
@@ -99,9 +99,11 @@
\n\nPlease update the database at least weekly to get accurate predictions.</string>
<string name="pass_whatsnew_title" translatable="false">What\'s new in Look4Sat</string>
<string name="pass_whatsnew_message" translatable="false">
* Navigation: AMSAT moved to the bottom bar, Radar moved to the More menu (5 primary destinations max)
* Wide screens / tablets: side navigation rail instead of the bottom bar (no more wasted bottom strip)
* New AMSAT tab icon (MDI satellite-variant, Apache 2.0)
* NEW: AMSAT satellite status now uses the official AMSAT API (v1 JSON, faster and more reliable)
* AMSAT status page fits edge-to-edge screens (refresh button and update time always reachable)
* WaveLog: QRZ counterpart grid lookup (gear dialog > paste QRZ cookies > test query)
* WaveLog: LoTW satellite list refresh button (112 satellites built in)
* WaveLog: RST 59/59 signal reports for QSOs (v1 and v2)
</string>
<!-- Radar screen -->
+2 -2
View File
@@ -1,8 +1,8 @@
[versions]
#noinspection UnusedVersionCatalogEntry
appVersionCode = "457"
appVersionCode = "456"
#noinspection UnusedVersionCatalogEntry
appVersionName = "4.5.6"
appVersionName = "4.5.5"
#noinspection UnusedVersionCatalogEntry
compileSdk = "37"
#noinspection UnusedVersionCatalogEntry