mirror of
https://github.com/rt-bishop/Look4Sat.git
synced 2026-10-02 03:15:37 +00:00
Added minor tweaks to import components and strings
This commit is contained in:
1 parent
f6564c3c71
commit
13a79af27e
10 files changed
+67
-146
No files matched your search
@@ -212,8 +212,8 @@ fun CardButton(onClick: () -> Unit, text: String, modifier: Modifier = Modifier)
|
|||||||
containerColor = MaterialTheme.colorScheme.surfaceVariant,
|
containerColor = MaterialTheme.colorScheme.surfaceVariant,
|
||||||
contentColor = MaterialTheme.colorScheme.onSurfaceVariant
|
contentColor = MaterialTheme.colorScheme.onSurfaceVariant
|
||||||
), shape = MaterialTheme.shapes.small, modifier = modifier,
|
), shape = MaterialTheme.shapes.small, modifier = modifier,
|
||||||
contentPadding = PaddingValues(horizontal = 12.dp)
|
contentPadding = PaddingValues(horizontal = 8.dp, vertical = 8.dp)
|
||||||
) { Text(text = text, fontSize = 16.sp) }
|
) { Text(text = text, fontSize = 16.sp, textAlign = TextAlign.Center) }
|
||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
@@ -280,7 +280,7 @@ fun SharedDialog(
|
|||||||
) {
|
) {
|
||||||
Text(
|
Text(
|
||||||
text = title,
|
text = title,
|
||||||
fontSize = 18.sp,
|
fontSize = 16.sp,
|
||||||
fontWeight = FontWeight.Medium,
|
fontWeight = FontWeight.Medium,
|
||||||
color = MaterialTheme.colorScheme.primary,
|
color = MaterialTheme.colorScheme.primary,
|
||||||
modifier = Modifier.padding(start = padding, top = padding, end = padding)
|
modifier = Modifier.padding(start = padding, top = padding, end = padding)
|
||||||
@@ -330,40 +330,6 @@ fun InfoDialog(title: String, text: String, onDismiss: () -> Unit) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
|
||||||
fun InfoDialog(
|
|
||||||
title: String,
|
|
||||||
onDismiss: () -> Unit,
|
|
||||||
content: @Composable () -> Unit
|
|
||||||
) {
|
|
||||||
val padding = LocalSpacing.current.large
|
|
||||||
|
|
||||||
Dialog(onDismissRequest = onDismiss) {
|
|
||||||
ElevatedCard {
|
|
||||||
Column(
|
|
||||||
horizontalAlignment = Alignment.CenterHorizontally,
|
|
||||||
verticalArrangement = Arrangement.spacedBy(padding)
|
|
||||||
) {
|
|
||||||
Text(
|
|
||||||
text = title,
|
|
||||||
fontSize = 18.sp,
|
|
||||||
fontWeight = FontWeight.Medium,
|
|
||||||
color = MaterialTheme.colorScheme.primary,
|
|
||||||
modifier = Modifier.padding(start = padding, top = padding, end = padding)
|
|
||||||
)
|
|
||||||
content()
|
|
||||||
Row(modifier = Modifier.padding(start = padding, bottom = padding, end = padding)) {
|
|
||||||
Spacer(modifier = Modifier.weight(1f))
|
|
||||||
CardButton(
|
|
||||||
onClick = onDismiss,
|
|
||||||
text = stringResource(id = R.string.btn_cancel)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun hasEnoughHeight(): Boolean {
|
fun hasEnoughHeight(): Boolean {
|
||||||
return currentWindowAdaptiveInfo().windowSizeClass.isHeightAtLeastBreakpoint(480)
|
return currentWindowAdaptiveInfo().windowSizeClass.isHeightAtLeastBreakpoint(480)
|
||||||
|
|||||||
@@ -27,12 +27,13 @@ import androidx.compose.ui.tooling.preview.Preview
|
|||||||
import com.rtbishop.look4sat.R
|
import com.rtbishop.look4sat.R
|
||||||
import com.rtbishop.look4sat.presentation.MainTheme
|
import com.rtbishop.look4sat.presentation.MainTheme
|
||||||
import com.rtbishop.look4sat.presentation.common.SharedDialog
|
import com.rtbishop.look4sat.presentation.common.SharedDialog
|
||||||
import com.rtbishop.look4sat.presentation.common.InfoDialog
|
|
||||||
import com.rtbishop.look4sat.presentation.common.CardButton
|
import com.rtbishop.look4sat.presentation.common.CardButton
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
|
import androidx.compose.foundation.layout.Spacer
|
||||||
|
import androidx.compose.foundation.layout.height
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.material3.Switch
|
import androidx.compose.material3.Switch
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
@@ -53,10 +54,16 @@ fun PositionDialog(lat: Double, lon: Double, dismiss: () -> Unit, save: (Double,
|
|||||||
val titleText = stringResource(id = R.string.prefs_station_title)
|
val titleText = stringResource(id = R.string.prefs_station_title)
|
||||||
val onAccept = { saveValues(latValue.value, lonValue.value, save).also { dismiss() } }
|
val onAccept = { saveValues(latValue.value, lonValue.value, save).also { dismiss() } }
|
||||||
SharedDialog(title = titleText, onCancel = dismiss, onAccept = onAccept) {
|
SharedDialog(title = titleText, onCancel = dismiss, onAccept = onAccept) {
|
||||||
Text(text = stringResource(id = R.string.prefs_station_lat_text))
|
OutlinedTextField(
|
||||||
OutlinedTextField(value = latValue.value, onValueChange = { latValue.value = it })
|
value = latValue.value,
|
||||||
Text(text = stringResource(id = R.string.prefs_station_lon_text))
|
onValueChange = { latValue.value = it },
|
||||||
OutlinedTextField(value = lonValue.value, onValueChange = { lonValue.value = it })
|
label = { Text(text = stringResource(id = R.string.prefs_station_lat_text)) }
|
||||||
|
)
|
||||||
|
OutlinedTextField(
|
||||||
|
value = lonValue.value,
|
||||||
|
onValueChange = { lonValue.value = it },
|
||||||
|
label = { Text(text = stringResource(id = R.string.prefs_station_lon_text)) }
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,55 +86,11 @@ fun LocatorDialog(qthLocator: String, dismiss: () -> Unit, save: (String) -> Uni
|
|||||||
val locator = rememberSaveable { mutableStateOf(qthLocator) }
|
val locator = rememberSaveable { mutableStateOf(qthLocator) }
|
||||||
val onAccept = { save(locator.value).also { dismiss() } }
|
val onAccept = { save(locator.value).also { dismiss() } }
|
||||||
SharedDialog(title = stringResource(R.string.prefs_locator_title), onCancel = dismiss, onAccept = onAccept) {
|
SharedDialog(title = stringResource(R.string.prefs_locator_title), onCancel = dismiss, onAccept = onAccept) {
|
||||||
Text(text = stringResource(id = R.string.prefs_locator_text))
|
OutlinedTextField(
|
||||||
OutlinedTextField(value = locator.value, onValueChange = { locator.value = it })
|
value = locator.value,
|
||||||
}
|
onValueChange = { locator.value = it },
|
||||||
}
|
label = { Text(text = stringResource(id = R.string.prefs_locator_text)) }
|
||||||
|
)
|
||||||
@Preview(showBackground = true)
|
|
||||||
@Composable
|
|
||||||
private fun ImportDialogPreview() = MainTheme {
|
|
||||||
ImportDialog(
|
|
||||||
onImportTle = {},
|
|
||||||
onImportTransceivers = {},
|
|
||||||
onDismiss = {}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Composable
|
|
||||||
fun ImportDialog(
|
|
||||||
onImportTle: () -> Unit,
|
|
||||||
onImportTransceivers: () -> Unit,
|
|
||||||
onDismiss: () -> Unit
|
|
||||||
) {
|
|
||||||
val padding = LocalSpacing.current.large
|
|
||||||
InfoDialog(
|
|
||||||
title = stringResource(R.string.prefs_data_import),
|
|
||||||
onDismiss = onDismiss
|
|
||||||
) {
|
|
||||||
Row(
|
|
||||||
horizontalArrangement = Arrangement.spacedBy(12.dp),
|
|
||||||
modifier = Modifier
|
|
||||||
.padding(horizontal = padding)
|
|
||||||
.fillMaxWidth()
|
|
||||||
) {
|
|
||||||
CardButton(
|
|
||||||
onClick = {
|
|
||||||
onImportTle()
|
|
||||||
onDismiss()
|
|
||||||
},
|
|
||||||
text = "TLE",
|
|
||||||
modifier = Modifier.weight(0.7f)
|
|
||||||
)
|
|
||||||
CardButton(
|
|
||||||
onClick = {
|
|
||||||
onImportTransceivers()
|
|
||||||
onDismiss()
|
|
||||||
},
|
|
||||||
text = "Transceivers",
|
|
||||||
modifier = Modifier.weight(1.3f)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -140,7 +103,9 @@ private fun TransceiversDialogPreview() {
|
|||||||
useCustomTransceivers = true,
|
useCustomTransceivers = true,
|
||||||
tleUrl = "https://example.com/tle.txt",
|
tleUrl = "https://example.com/tle.txt",
|
||||||
transceiversUrl = "https://example.com/tx.json",
|
transceiversUrl = "https://example.com/tx.json",
|
||||||
dismiss = {},
|
onImportTle = {},
|
||||||
|
onImportTransceivers = {},
|
||||||
|
onDismiss = {},
|
||||||
onSave = { _, _, _, _ -> }
|
onSave = { _, _, _, _ -> }
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -152,7 +117,9 @@ fun DataSourcesDialog(
|
|||||||
useCustomTransceivers: Boolean,
|
useCustomTransceivers: Boolean,
|
||||||
tleUrl: String,
|
tleUrl: String,
|
||||||
transceiversUrl: String,
|
transceiversUrl: String,
|
||||||
dismiss: () -> Unit,
|
onImportTle: () -> Unit,
|
||||||
|
onImportTransceivers: () -> Unit,
|
||||||
|
onDismiss: () -> Unit,
|
||||||
onSave: (Boolean, Boolean, String, String) -> Unit
|
onSave: (Boolean, Boolean, String, String) -> Unit
|
||||||
) {
|
) {
|
||||||
val padding = LocalSpacing.current.large
|
val padding = LocalSpacing.current.large
|
||||||
@@ -162,15 +129,34 @@ fun DataSourcesDialog(
|
|||||||
val urlTransceivers = rememberSaveable { mutableStateOf(transceiversUrl) }
|
val urlTransceivers = rememberSaveable { mutableStateOf(transceiversUrl) }
|
||||||
val onAccept = {
|
val onAccept = {
|
||||||
onSave(isEnabledCustomTle.value, isEnabledCustomTransceivers.value, urlTle.value, urlTransceivers.value)
|
onSave(isEnabledCustomTle.value, isEnabledCustomTransceivers.value, urlTle.value, urlTransceivers.value)
|
||||||
dismiss()
|
onDismiss()
|
||||||
}
|
}
|
||||||
val onCancel = { dismiss() }
|
val onCancel = { onDismiss() }
|
||||||
SharedDialog(
|
SharedDialog(
|
||||||
title = stringResource(id = R.string.prefs_data_sources_title),
|
title = stringResource(id = R.string.prefs_data_sources_title),
|
||||||
onCancel = onCancel,
|
onCancel = onCancel,
|
||||||
onAccept = onAccept,
|
onAccept = onAccept,
|
||||||
) {
|
) {
|
||||||
Column(modifier = Modifier.padding(horizontal = padding)) {
|
Column(modifier = Modifier.padding(horizontal = padding)) {
|
||||||
|
Row(horizontalArrangement = Arrangement.spacedBy(6.dp)) {
|
||||||
|
CardButton(
|
||||||
|
onClick = {
|
||||||
|
onImportTle()
|
||||||
|
onDismiss()
|
||||||
|
},
|
||||||
|
text = "TLE (3LE)\nR4UAB (.txt)",
|
||||||
|
modifier = Modifier.weight(1f)
|
||||||
|
)
|
||||||
|
CardButton(
|
||||||
|
onClick = {
|
||||||
|
onImportTransceivers()
|
||||||
|
onDismiss()
|
||||||
|
},
|
||||||
|
text = "Transceivers\nSatNOGS (.json)",
|
||||||
|
modifier = Modifier.weight(1f)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
Spacer(modifier = Modifier.height(6.dp))
|
||||||
Row(
|
Row(
|
||||||
horizontalArrangement = Arrangement.SpaceBetween,
|
horizontalArrangement = Arrangement.SpaceBetween,
|
||||||
verticalAlignment = Alignment.CenterVertically,
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
@@ -190,6 +176,7 @@ fun DataSourcesDialog(
|
|||||||
modifier = Modifier.fillMaxWidth(),
|
modifier = Modifier.fillMaxWidth(),
|
||||||
enabled = isEnabledCustomTle.value,
|
enabled = isEnabledCustomTle.value,
|
||||||
)
|
)
|
||||||
|
Spacer(modifier = Modifier.height(6.dp))
|
||||||
Row(
|
Row(
|
||||||
horizontalArrangement = Arrangement.SpaceBetween,
|
horizontalArrangement = Arrangement.SpaceBetween,
|
||||||
verticalAlignment = Alignment.CenterVertically,
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
|
|||||||
@@ -150,7 +150,9 @@ private fun SettingsScreen(uiState: SettingsState) {
|
|||||||
useCustomTransceivers = uiState.dataSourcesSettings.useCustomTransceivers,
|
useCustomTransceivers = uiState.dataSourcesSettings.useCustomTransceivers,
|
||||||
tleUrl = uiState.dataSourcesSettings.tleUrl,
|
tleUrl = uiState.dataSourcesSettings.tleUrl,
|
||||||
transceiversUrl = uiState.dataSourcesSettings.transceiversUrl,
|
transceiversUrl = uiState.dataSourcesSettings.transceiversUrl,
|
||||||
dismiss = dismissDataSourcesDialog,
|
onImportTle = { contentRequestForTle.launch("*/*") },
|
||||||
|
onImportTransceivers = { contentRequestForTransceivers.launch("*/*") },
|
||||||
|
onDismiss = dismissDataSourcesDialog,
|
||||||
onSave = {
|
onSave = {
|
||||||
useCustomTle, useCustomTransceivers, tleUrl, transceiversUrl ->
|
useCustomTle, useCustomTransceivers, tleUrl, transceiversUrl ->
|
||||||
if (!useCustomTle || tleUrl.isNotBlank()) {
|
if (!useCustomTle || tleUrl.isNotBlank()) {
|
||||||
@@ -165,18 +167,6 @@ private fun SettingsScreen(uiState: SettingsState) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Import dialog
|
|
||||||
val importDialogState = rememberSaveable { mutableStateOf(false) }
|
|
||||||
val showImportDialog = { importDialogState.value = true }
|
|
||||||
val dismissImportDialog = { importDialogState.value = false }
|
|
||||||
if (importDialogState.value) {
|
|
||||||
ImportDialog(
|
|
||||||
onImportTle = { contentRequestForTle.launch("*/*") },
|
|
||||||
onImportTransceivers = { contentRequestForTransceivers.launch("*/*") },
|
|
||||||
onDismiss = dismissImportDialog
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Data settings
|
// Data settings
|
||||||
val dataSettings = uiState.dataSettings
|
val dataSettings = uiState.dataSettings
|
||||||
val updateFromWeb: () -> Unit = { uiState.sendAction(SettingsAction.UpdateFromWeb) }
|
val updateFromWeb: () -> Unit = { uiState.sendAction(SettingsAction.UpdateFromWeb) }
|
||||||
@@ -248,7 +238,7 @@ private fun SettingsScreen(uiState: SettingsState) {
|
|||||||
item {
|
item {
|
||||||
LocationCard(posSettings, setGpsPos, showPosDialog, showLocDialog, dismissPos, uiState.sendSystemAction)
|
LocationCard(posSettings, setGpsPos, showPosDialog, showLocDialog, dismissPos, uiState.sendSystemAction)
|
||||||
}
|
}
|
||||||
item { DataCard(dataSettings, updateFromWeb, clearAllData, showImportDialog, showDataSourcesDialog) }
|
item { DataCard(dataSettings, updateFromWeb, clearAllData, showDataSourcesDialog) }
|
||||||
item { NetworkOutputCard(rcSettings, setRotatorState, setRotatorAddress, setRotatorPort) }
|
item { NetworkOutputCard(rcSettings, setRotatorState, setRotatorAddress, setRotatorPort) }
|
||||||
item { BluetoothOutputCard(rcSettings, setBluetoothState, setBluetoothAddress, setBluetoothFormat) }
|
item { BluetoothOutputCard(rcSettings, setBluetoothState, setBluetoothAddress, setBluetoothFormat) }
|
||||||
item { OtherCard(otherSettings, toggleUtc, toggleUpdate, toggleSweep, toggleSensor) }
|
item { OtherCard(otherSettings, toggleUtc, toggleUpdate, toggleSweep, toggleSensor) }
|
||||||
@@ -329,7 +319,7 @@ private fun LocationCard(
|
|||||||
@Composable
|
@Composable
|
||||||
private fun DataCardPreview() = MainTheme {
|
private fun DataCardPreview() = MainTheme {
|
||||||
val settings = DataSettings(true, 5000, 2500, 0L)
|
val settings = DataSettings(true, 5000, 2500, 0L)
|
||||||
DataCard(settings = settings, {}, {},{}) {}
|
DataCard(settings = settings, {}, {}, {})
|
||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
@@ -337,7 +327,6 @@ private fun DataCard(
|
|||||||
settings: DataSettings,
|
settings: DataSettings,
|
||||||
updateFromWeb: () -> Unit,
|
updateFromWeb: () -> Unit,
|
||||||
clearAllData: () -> Unit,
|
clearAllData: () -> Unit,
|
||||||
showImportDialog: () -> Unit,
|
|
||||||
showDataSourcesDialog: () -> Unit
|
showDataSourcesDialog: () -> Unit
|
||||||
) {
|
) {
|
||||||
ElevatedCard(modifier = Modifier.fillMaxWidth()) {
|
ElevatedCard(modifier = Modifier.fillMaxWidth()) {
|
||||||
@@ -360,17 +349,14 @@ private fun DataCard(
|
|||||||
Text(text = stringResource(R.string.prefs_data_radios, settings.radiosTotal))
|
Text(text = stringResource(R.string.prefs_data_radios, settings.radiosTotal))
|
||||||
}
|
}
|
||||||
Spacer(modifier = Modifier.height(1.dp))
|
Spacer(modifier = Modifier.height(1.dp))
|
||||||
Row(
|
Row(horizontalArrangement = Arrangement.spacedBy(6.dp)) {
|
||||||
horizontalArrangement = Arrangement.spacedBy(6.dp),
|
|
||||||
modifier = Modifier.fillMaxWidth()
|
|
||||||
) {
|
|
||||||
CardButton(
|
CardButton(
|
||||||
onClick = updateFromWeb,
|
onClick = updateFromWeb,
|
||||||
text = stringResource(id = R.string.prefs_data_update),
|
text = stringResource(id = R.string.prefs_data_update),
|
||||||
modifier = Modifier.weight(1f)
|
modifier = Modifier.weight(1f)
|
||||||
)
|
)
|
||||||
CardButton(
|
CardButton(
|
||||||
onClick = showImportDialog,
|
onClick = showDataSourcesDialog,
|
||||||
text = stringResource(id = R.string.prefs_data_import),
|
text = stringResource(id = R.string.prefs_data_import),
|
||||||
modifier = Modifier.weight(1f)
|
modifier = Modifier.weight(1f)
|
||||||
)
|
)
|
||||||
@@ -380,17 +366,6 @@ private fun DataCard(
|
|||||||
modifier = Modifier.weight(1f)
|
modifier = Modifier.weight(1f)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
Spacer(modifier = Modifier.height(6.dp))
|
|
||||||
Row(
|
|
||||||
horizontalArrangement = Arrangement.spacedBy(6.dp),
|
|
||||||
modifier = Modifier.fillMaxWidth()
|
|
||||||
) {
|
|
||||||
CardButton(
|
|
||||||
onClick = showDataSourcesDialog,
|
|
||||||
text = stringResource(id = R.string.prefs_data_sources),
|
|
||||||
modifier = Modifier.weight(1f)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -685,4 +660,3 @@ private fun BotCard(onClick: () -> Unit, resId: Int, text: String, modifier: Mod
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -52,7 +52,12 @@ class SettingsViewModel(
|
|||||||
|
|
||||||
private val defaultPosSettings = PositionSettings(false, settingsRepo.stationPosition.value, 0)
|
private val defaultPosSettings = PositionSettings(false, settingsRepo.stationPosition.value, 0)
|
||||||
private val defaultDataSettings = DataSettings(false, 0, 0, 0L)
|
private val defaultDataSettings = DataSettings(false, 0, 0, 0L)
|
||||||
private val defaultDataSourcesSettings = DataSourcesSettings(false, false, settingsRepo.dataSourcesSettings.value.tleUrl, settingsRepo.dataSourcesSettings.value.transceiversUrl)
|
private val defaultDataSourcesSettings = DataSourcesSettings(
|
||||||
|
useCustomTLE = false,
|
||||||
|
useCustomTransceivers = false,
|
||||||
|
tleUrl = settingsRepo.dataSourcesSettings.value.tleUrl,
|
||||||
|
transceiversUrl = settingsRepo.dataSourcesSettings.value.transceiversUrl
|
||||||
|
)
|
||||||
private val _uiState = MutableStateFlow(
|
private val _uiState = MutableStateFlow(
|
||||||
SettingsState(
|
SettingsState(
|
||||||
nextTime = "00:00:00",
|
nextTime = "00:00:00",
|
||||||
|
|||||||
@@ -105,14 +105,12 @@
|
|||||||
<string name="prefs_data_update">Actualizar</string>
|
<string name="prefs_data_update">Actualizar</string>
|
||||||
<string name="prefs_data_import">Importar</string>
|
<string name="prefs_data_import">Importar</string>
|
||||||
<string name="prefs_data_clear">Vaciar</string>
|
<string name="prefs_data_clear">Vaciar</string>
|
||||||
<string name="prefs_data_sources">Custom data sources</string>
|
|
||||||
<string name="prefs_data_clear_success">Datos eliminados con éxito</string>
|
<string name="prefs_data_clear_success">Datos eliminados con éxito</string>
|
||||||
<string name="prefs_data_update_success">Actualización completada con éxito</string>
|
<string name="prefs_data_update_success">Actualización completada con éxito</string>
|
||||||
|
|
||||||
<string name="prefs_data_sources_title">Custom data sources</string>
|
<string name="prefs_data_sources_title">Custom data sources</string>
|
||||||
<string name="prefs_data_sources_tle_switch">Custom TLE URL</string>
|
<string name="prefs_data_sources_tle_switch">Custom TLE URL</string>
|
||||||
<string name="prefs_data_sources_transceivers_switch">Custom transceivers URL</string>
|
<string name="prefs_data_sources_transceivers_switch">Custom transceivers URL</string>
|
||||||
<string name="prefs_data_sources_url_title">URL (https)</string>
|
|
||||||
|
|
||||||
<string name="prefs_net_title">Salida de datos de red</string>
|
<string name="prefs_net_title">Salida de datos de red</string>
|
||||||
<string name="prefs_net_switch">Habilitar salida</string>
|
<string name="prefs_net_switch">Habilitar salida</string>
|
||||||
|
|||||||
@@ -93,10 +93,10 @@
|
|||||||
<string name="prefs_loc_qth_error">Неправильный локатор QTH</string>
|
<string name="prefs_loc_qth_error">Неправильный локатор QTH</string>
|
||||||
<string name="prefs_loc_success">Позиция успешно обновлена</string>
|
<string name="prefs_loc_success">Позиция успешно обновлена</string>
|
||||||
<string name="prefs_station_title">Настройки местоположения</string>
|
<string name="prefs_station_title">Настройки местоположения</string>
|
||||||
<string name="prefs_station_lat_text">Установите широту наземной станции</string>
|
<string name="prefs_station_lat_text">Введите широту наземной станции</string>
|
||||||
<string name="prefs_station_lon_text">Установите долготу наземной станции</string>
|
<string name="prefs_station_lon_text">Введите долготу наземной станции</string>
|
||||||
<string name="prefs_locator_title">Настройки локатора QTH</string>
|
<string name="prefs_locator_title">Настройки локатора QTH</string>
|
||||||
<string name="prefs_locator_text">Установить позицию используя локатор</string>
|
<string name="prefs_locator_text">Введите позицию через локатор</string>
|
||||||
|
|
||||||
<string name="prefs_data_title">Данные спутников</string>
|
<string name="prefs_data_title">Данные спутников</string>
|
||||||
<string name="prefs_data_entries">Спутников: %s</string>
|
<string name="prefs_data_entries">Спутников: %s</string>
|
||||||
@@ -104,14 +104,12 @@
|
|||||||
<string name="prefs_data_update">Обновить</string>
|
<string name="prefs_data_update">Обновить</string>
|
||||||
<string name="prefs_data_import">Импорт</string>
|
<string name="prefs_data_import">Импорт</string>
|
||||||
<string name="prefs_data_clear">Очистить</string>
|
<string name="prefs_data_clear">Очистить</string>
|
||||||
<string name="prefs_data_sources">Свои источники данных</string>
|
|
||||||
<string name="prefs_data_clear_success">Очистка прошла успешно</string>
|
<string name="prefs_data_clear_success">Очистка прошла успешно</string>
|
||||||
<string name="prefs_data_update_success">Обновление прошло успешно</string>
|
<string name="prefs_data_update_success">Обновление прошло успешно</string>
|
||||||
|
|
||||||
<string name="prefs_data_sources_title">Свои источники данных</string>
|
<string name="prefs_data_sources_title">Свои источники данных</string>
|
||||||
<string name="prefs_data_sources_tle_switch">Custom TLE URL</string>
|
<string name="prefs_data_sources_tle_switch">Custom TLE URL</string>
|
||||||
<string name="prefs_data_sources_transceivers_switch">Custom transceivers URL</string>
|
<string name="prefs_data_sources_transceivers_switch">Custom Transceivers URL</string>
|
||||||
<string name="prefs_data_sources_url_title">URL (https)</string>
|
|
||||||
|
|
||||||
<string name="prefs_net_title">Вывод сетевых данных</string>
|
<string name="prefs_net_title">Вывод сетевых данных</string>
|
||||||
<string name="prefs_net_switch">Включить вывод</string>
|
<string name="prefs_net_switch">Включить вывод</string>
|
||||||
|
|||||||
@@ -105,14 +105,12 @@
|
|||||||
<string name="prefs_data_update">නැවුම් කරන්න</string>
|
<string name="prefs_data_update">නැවුම් කරන්න</string>
|
||||||
<string name="prefs_data_import">ආදානය</string>
|
<string name="prefs_data_import">ආදානය</string>
|
||||||
<string name="prefs_data_clear">පිරිසිදු ක°</string>
|
<string name="prefs_data_clear">පිරිසිදු ක°</string>
|
||||||
<string name="prefs_data_sources">Custom data sources</string>
|
|
||||||
<string name="prefs_data_clear_success">දත්ත ඉවත් කිරීම සාර්ථකයි</string>
|
<string name="prefs_data_clear_success">දත්ත ඉවත් කිරීම සාර්ථකයි</string>
|
||||||
<string name="prefs_data_update_success">යාවත්කාලීනය සම්පූර්ණ කිරීම සාර්ථකයි</string>
|
<string name="prefs_data_update_success">යාවත්කාලීනය සම්පූර්ණ කිරීම සාර්ථකයි</string>
|
||||||
|
|
||||||
<string name="prefs_data_sources_title">Custom data sources</string>
|
<string name="prefs_data_sources_title">Custom data sources</string>
|
||||||
<string name="prefs_data_sources_tle_switch">Custom TLE URL</string>
|
<string name="prefs_data_sources_tle_switch">Custom TLE URL</string>
|
||||||
<string name="prefs_data_sources_transceivers_switch">Custom transceivers URL</string>
|
<string name="prefs_data_sources_transceivers_switch">Custom transceivers URL</string>
|
||||||
<string name="prefs_data_sources_url_title">URL (https)</string>
|
|
||||||
|
|
||||||
<string name="prefs_net_title">ජාල ප්රතිදානය</string>
|
<string name="prefs_net_title">ජාල ප්රතිදානය</string>
|
||||||
<string name="prefs_net_switch">ප්රතිදානය සක්රීය කරන්න</string>
|
<string name="prefs_net_switch">ප්රතිදානය සක්රීය කරන්න</string>
|
||||||
|
|||||||
@@ -105,14 +105,12 @@
|
|||||||
<string name="prefs_data_update">Оновити</string>
|
<string name="prefs_data_update">Оновити</string>
|
||||||
<string name="prefs_data_import">Імпорт</string>
|
<string name="prefs_data_import">Імпорт</string>
|
||||||
<string name="prefs_data_clear">Очистити</string>
|
<string name="prefs_data_clear">Очистити</string>
|
||||||
<string name="prefs_data_sources">Custom data sources</string>
|
|
||||||
<string name="prefs_data_clear_success">Дані успішно очищено</string>
|
<string name="prefs_data_clear_success">Дані успішно очищено</string>
|
||||||
<string name="prefs_data_update_success">Оновлення успішне</string>
|
<string name="prefs_data_update_success">Оновлення успішне</string>
|
||||||
|
|
||||||
<string name="prefs_data_sources_title">Custom data sources</string>
|
<string name="prefs_data_sources_title">Custom data sources</string>
|
||||||
<string name="prefs_data_sources_tle_switch">Custom TLE URL</string>
|
<string name="prefs_data_sources_tle_switch">Custom TLE URL</string>
|
||||||
<string name="prefs_data_sources_transceivers_switch">Custom transceivers URL</string>
|
<string name="prefs_data_sources_transceivers_switch">Custom transceivers URL</string>
|
||||||
<string name="prefs_data_sources_url_title">URL (https)</string>
|
|
||||||
|
|
||||||
<string name="prefs_net_title">Вивід мережевих даних</string>
|
<string name="prefs_net_title">Вивід мережевих даних</string>
|
||||||
<string name="prefs_net_switch">Увімкнути вихід</string>
|
<string name="prefs_net_switch">Увімкнути вихід</string>
|
||||||
|
|||||||
@@ -97,14 +97,12 @@
|
|||||||
<string name="prefs_data_update">在线更新</string>
|
<string name="prefs_data_update">在线更新</string>
|
||||||
<string name="prefs_data_import">导入文件</string>
|
<string name="prefs_data_import">导入文件</string>
|
||||||
<string name="prefs_data_clear">清空</string>
|
<string name="prefs_data_clear">清空</string>
|
||||||
<string name="prefs_data_sources">Custom data sources</string>
|
|
||||||
<string name="prefs_data_clear_success">数据清空成功</string>
|
<string name="prefs_data_clear_success">数据清空成功</string>
|
||||||
<string name="prefs_data_update_success">更新成功</string>
|
<string name="prefs_data_update_success">更新成功</string>
|
||||||
|
|
||||||
<string name="prefs_data_sources_title">Custom data sources</string>
|
<string name="prefs_data_sources_title">Custom data sources</string>
|
||||||
<string name="prefs_data_sources_tle_switch">Custom TLE URL</string>
|
<string name="prefs_data_sources_tle_switch">Custom TLE URL</string>
|
||||||
<string name="prefs_data_sources_transceivers_switch">Custom transceivers URL</string>
|
<string name="prefs_data_sources_transceivers_switch">Custom transceivers URL</string>
|
||||||
<string name="prefs_data_sources_url_title">URL (https)</string>
|
|
||||||
|
|
||||||
<string name="prefs_net_title">网络数据输出</string>
|
<string name="prefs_net_title">网络数据输出</string>
|
||||||
<string name="prefs_net_switch">启用输出</string>
|
<string name="prefs_net_switch">启用输出</string>
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
<string name="sat_search_clear">Clear</string>
|
<string name="sat_search_clear">Clear</string>
|
||||||
<string name="sat_clear_all">Clear all</string>
|
<string name="sat_clear_all">Clear all</string>
|
||||||
<string name="sat_select_all">Select all</string>
|
<string name="sat_select_all">Select all</string>
|
||||||
<string name="sat_empty_list_message">" Make sure your search query is correct and the DB is updated"</string>
|
<string name="sat_empty_list_message">"Make sure your search query is correct and the DB is updated"</string>
|
||||||
<string name="sat_warning_title">Warning\!</string>
|
<string name="sat_warning_title">Warning\!</string>
|
||||||
<string name="sat_warning_message">
|
<string name="sat_warning_message">
|
||||||
There are over 9000 satellites listed in this app.
|
There are over 9000 satellites listed in this app.
|
||||||
@@ -128,14 +128,13 @@
|
|||||||
<string name="prefs_data_update">Update</string>
|
<string name="prefs_data_update">Update</string>
|
||||||
<string name="prefs_data_import">Import</string>
|
<string name="prefs_data_import">Import</string>
|
||||||
<string name="prefs_data_clear">Clear</string>
|
<string name="prefs_data_clear">Clear</string>
|
||||||
<string name="prefs_data_sources">Custom data sources</string>
|
|
||||||
<string name="prefs_data_clear_success">Data was cleared successfully</string>
|
<string name="prefs_data_clear_success">Data was cleared successfully</string>
|
||||||
<string name="prefs_data_update_success">Update completed successfully</string>
|
<string name="prefs_data_update_success">Update completed successfully</string>
|
||||||
|
|
||||||
<string name="prefs_data_sources_title">Custom data sources</string>
|
<string name="prefs_data_sources_title">Custom data sources</string>
|
||||||
<string name="prefs_data_sources_tle_switch">Custom TLE URL</string>
|
<string name="prefs_data_sources_tle_switch">Custom TLE URL</string>
|
||||||
<string name="prefs_data_sources_transceivers_switch">Custom transceivers URL</string>
|
<string name="prefs_data_sources_transceivers_switch">Custom transceivers URL</string>
|
||||||
<string name="prefs_data_sources_url_title">URL (https)</string>
|
<string name="prefs_data_sources_url_title" translatable="false">URL (HTTPS)</string>
|
||||||
|
|
||||||
<string name="prefs_net_title">Network data output</string>
|
<string name="prefs_net_title">Network data output</string>
|
||||||
<string name="prefs_net_switch">Enable output</string>
|
<string name="prefs_net_switch">Enable output</string>
|
||||||
|
|||||||
Reference in new issue
Block a user