Added minor tweaks to import components and strings

This commit is contained in:
Arty Bishop committed 2026-02-07 13:41:12 +00:00
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",
-2
View File
@@ -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>
+4 -6
View File
@@ -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>
-2
View File
@@ -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>
-2
View File
@@ -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>
-2
View File
@@ -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>
+2 -3
View File
@@ -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>