mirror of
https://github.com/atsunatsu/Look4Sat.git
synced 2026-10-02 03:15:37 +00:00
feat: mutual chip uses theme primary yellow, plain text distance; top bar text indent; low-zoom meridians via direct Mercator math (bypass osmdroid wrap bug); remove Wavelog sync entry — LoTW is the sole grid source (replace instead of merge)
This commit is contained in:
1 parent
a9fe0b74e9
commit
c09f718aae
6 files changed
+37
-95
No files matched your search
-57
@@ -203,18 +203,6 @@ private fun SettingsScreen(uiState: SettingsState, onAction: (SettingsAction) ->
|
||||
onSave = { onAction(SettingsAction.UpdateRadioControl(it)) }
|
||||
)
|
||||
}
|
||||
if (dialogs.wavelog) {
|
||||
WavelogDialog(
|
||||
initialSettings = uiState.wavelogSettings,
|
||||
workedGridsCount = uiState.workedGridsCount,
|
||||
isSyncing = uiState.wavelogSyncing,
|
||||
message = uiState.wavelogMessage,
|
||||
dismiss = { dialogs.wavelog = false },
|
||||
onSave = { onAction(SettingsAction.UpdateWavelog(it)) },
|
||||
onSync = { onAction(SettingsAction.SyncWorkedGrids(it)) }
|
||||
)
|
||||
}
|
||||
|
||||
if (dialogs.lotw) {
|
||||
LoTWDialog(
|
||||
initialSettings = uiState.lotwSettings,
|
||||
@@ -330,13 +318,6 @@ private fun SettingsScreen(uiState: SettingsState, onAction: (SettingsAction) ->
|
||||
onRadioControlClick = { dialogs.radioControl = true }
|
||||
)
|
||||
}
|
||||
item {
|
||||
WavelogCard(
|
||||
settings = uiState.wavelogSettings,
|
||||
workedGridsCount = uiState.workedGridsCount,
|
||||
showWavelogDialog = { dialogs.wavelog = true }
|
||||
)
|
||||
}
|
||||
item {
|
||||
LoTWCard(
|
||||
settings = uiState.lotwSettings,
|
||||
@@ -581,44 +562,6 @@ private fun SwitchRow(labelResId: Int, checked: Boolean, onCheckedChange: (Boole
|
||||
}
|
||||
}
|
||||
|
||||
@Preview(showBackground = true)
|
||||
@Composable
|
||||
private fun WavelogCardPreview() = MainTheme {
|
||||
WavelogCard(settings = WavelogSettings("http://192.168.1.10", "wl2_demo"), workedGridsCount = 42) {}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun WavelogCard(
|
||||
settings: WavelogSettings,
|
||||
workedGridsCount: Int,
|
||||
showWavelogDialog: () -> Unit
|
||||
) {
|
||||
ElevatedCard(modifier = Modifier.fillMaxWidth()) {
|
||||
Column(modifier = Modifier.padding(horizontal = 8.dp, vertical = 4.dp)) {
|
||||
Text(
|
||||
text = stringResource(id = R.string.prefs_wavelog_title),
|
||||
color = MaterialTheme.colorScheme.primary
|
||||
)
|
||||
Spacer(modifier = Modifier.height(2.dp))
|
||||
Text(
|
||||
text = if (settings.isConfigured) {
|
||||
stringResource(R.string.prefs_wavelog_configured, workedGridsCount)
|
||||
} else {
|
||||
stringResource(R.string.prefs_wavelog_not_configured)
|
||||
},
|
||||
style = MaterialTheme.typography.bodySmall,
|
||||
maxLines = 2
|
||||
)
|
||||
Spacer(modifier = Modifier.height(4.dp))
|
||||
CardButton(
|
||||
onClick = showWavelogDialog,
|
||||
text = stringResource(id = R.string.prefs_wavelog_configure),
|
||||
modifier = Modifier.fillMaxWidth()
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun LoTWCard(
|
||||
settings: com.rtbishop.look4sat.core.domain.model.LoTWSettings,
|
||||
|
||||
+4
-4
@@ -206,10 +206,10 @@ class SettingsViewModel(
|
||||
if (lotwGrids == null) {
|
||||
state.copy(lotwSyncing = false, lotwMessage = "LoTW sync failed — check callsign/password/network")
|
||||
} else {
|
||||
// Merge with Wavelog grids: union of both sources, all confirmed/worked
|
||||
val merged = settingsRepo.getWorkedGrids() + lotwGrids
|
||||
settingsRepo.setWorkedGrids(merged)
|
||||
state.copy(lotwSyncing = false, workedGridsCount = merged.size, lotwMessage = null)
|
||||
// Wavelog entry removed: LoTW is now the only source, so the
|
||||
// synced set fully replaces the stored worked grids.
|
||||
settingsRepo.setWorkedGrids(lotwGrids)
|
||||
state.copy(lotwSyncing = false, workedGridsCount = lotwGrids.size, lotwMessage = null)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user