mirror of
https://github.com/atsunatsu/Look4Sat.git
synced 2026-10-05 20:17:29 +00:00
feat(status): 4.5.3 AMSAT satellite status page + radar log pass divider
New feature/status module: fetches https://amsat.org/status/ and renders a live status grid in the official site colors: - Parser (AmSatParser): 47 satellites x 6 days x 12 two-hour slots, official colors (blue=Active, orange=TLM/Beacon, pink=Not Heard, deep-orange=Conflicting, gray=none); 598+ report details extracted from inline JS tooltips (callsign/date/time/grid) - Three-level viz: color grid -> report count -> tap day cell opens report list dialog - Manual refresh with spin animation + last-updated timestamp + legend row; loading/error states - New "AMSAT" entry in the More menu (Screen.AmSat), integrated with page-order / hide-page settings (SettingsScreen screens list, defaultSubMenuOrder, allNavItems, migration for existing users) - AmSatRepository via IRemoteSource.getStatusHtml() (UA header); shared remoteSource promoted to a lazy class property in MainContainer Radar page Log tab: local entries now grouped by pass session with a thick divider + satellite label between groups (matches the log page). What's new updated in EN/ZH/TR/IN/ID. Version bumped to 4.5.3/453. Not released (user gates all releases).
This commit is contained in:
1 parent
dd378990fe
commit
f7402a3531
23 files changed
+790
-19
No files matched your search
@@ -40,6 +40,7 @@ import androidx.compose.material3.ExposedDropdownMenuBox
|
||||
import androidx.compose.material3.ExposedDropdownMenuDefaults
|
||||
import androidx.compose.material3.MenuAnchorType
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.HorizontalDivider
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.OutlinedTextField
|
||||
import androidx.compose.material3.Text
|
||||
@@ -179,7 +180,19 @@ fun LogTab(
|
||||
modifier = Modifier.padding(vertical = 8.dp)
|
||||
)
|
||||
} else {
|
||||
entries.forEach { entry ->
|
||||
// 按场次分组(sessionId = 卫星名-AOS 时间戳), 组间粗线分隔
|
||||
entries.groupBy { it.sessionId.ifBlank { "un" } }.forEach { (sessionId, groupEntries) ->
|
||||
// 组标题 + 分隔线
|
||||
HorizontalDivider(thickness = 2.dp, color = MaterialTheme.colorScheme.primary)
|
||||
Text(
|
||||
text = if (sessionId == "un") stringResource(id = R.string.wavelog_ungrouped)
|
||||
else sessionId.substringBeforeLast('-'),
|
||||
fontSize = 11.sp,
|
||||
fontWeight = FontWeight.Bold,
|
||||
color = MaterialTheme.colorScheme.primary,
|
||||
modifier = Modifier.padding(horizontal = 10.dp, vertical = 4.dp)
|
||||
)
|
||||
groupEntries.forEach { entry ->
|
||||
SwipeDeleteRow(
|
||||
onDelete = {
|
||||
queue.remove(entry.id)
|
||||
@@ -213,6 +226,7 @@ fun LogTab(
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user