mirror of
https://github.com/atsunatsu/Look4Sat.git
synced 2026-10-02 03:15:37 +00:00
Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
58b8801c0c | ||
|
|
2581ba92c0 |
+27
-7
@@ -18,6 +18,7 @@
|
||||
package com.rtbishop.look4sat.feature.radar
|
||||
|
||||
import android.app.Activity
|
||||
import android.content.Context
|
||||
import android.view.LayoutInflater
|
||||
import androidx.compose.animation.AnimatedVisibility
|
||||
import androidx.compose.animation.expandVertically
|
||||
@@ -66,6 +67,7 @@ import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableIntStateOf
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.saveable.rememberSaveable
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
@@ -190,7 +192,7 @@ fun CalculatorPage(
|
||||
}
|
||||
}
|
||||
|
||||
item {
|
||||
item(key = "calculator_${selectedTransceiver.uuid}") {
|
||||
DopplerFrequencyCalculator(
|
||||
transponder = selectedTransceiver,
|
||||
orbitalPos = orbitalPos,
|
||||
@@ -555,11 +557,21 @@ private fun DopplerFrequencyCalculator(
|
||||
) {
|
||||
if (orbitalPos == null || !DopplerFrequencyCalculator.isLinearTransponder(transponder)) return
|
||||
|
||||
var lastEditedField by remember { mutableStateOf(EditedField.TX) }
|
||||
var txFrequencyHz by remember { mutableStateOf(0L) }
|
||||
var rxFrequencyHz by remember { mutableStateOf(0L) }
|
||||
var passbandPosition by remember { mutableStateOf(0.5f) }
|
||||
var offsetKHz by remember { mutableStateOf("") }
|
||||
var lastEditedField by rememberSaveable(transponder.uuid) { mutableStateOf(EditedField.TX) }
|
||||
var txFrequencyHz by rememberSaveable(transponder.uuid) { mutableStateOf(0L) }
|
||||
var rxFrequencyHz by rememberSaveable(transponder.uuid) { mutableStateOf(0L) }
|
||||
var passbandPosition by rememberSaveable(transponder.uuid) { mutableStateOf(0.5f) }
|
||||
// 每个卫星独立记忆 offset:以 NORAD 编号为 key,存到应用 SharedPreferences
|
||||
val context = LocalContext.current
|
||||
val catnum = transponder.catnum
|
||||
var offsetKHz by remember(catnum) {
|
||||
mutableStateOf(
|
||||
catnum?.let { cn ->
|
||||
context.getSharedPreferences(context.packageName + "_preferences", Context.MODE_PRIVATE)
|
||||
.getString("offset_khz_$cn", "") ?: ""
|
||||
} ?: ""
|
||||
)
|
||||
}
|
||||
var stepSizeKHz by remember { mutableIntStateOf(1) }
|
||||
|
||||
val offsetHz = offsetKHz.toDoubleOrNull()?.let { it * 1000 }?.toLong() ?: 0L
|
||||
@@ -742,7 +754,15 @@ private fun DopplerFrequencyCalculator(
|
||||
) {
|
||||
BasicTextField(
|
||||
value = offsetKHz,
|
||||
onValueChange = { offsetKHz = it },
|
||||
onValueChange = { newValue ->
|
||||
offsetKHz = newValue
|
||||
catnum?.let { cn ->
|
||||
context.getSharedPreferences(
|
||||
context.packageName + "_preferences",
|
||||
Context.MODE_PRIVATE
|
||||
).edit().putString("offset_khz_$cn", newValue).apply()
|
||||
}
|
||||
},
|
||||
singleLine = true,
|
||||
textStyle = TextStyle(
|
||||
fontSize = 16.sp,
|
||||
|
||||
Reference in new issue
Block a user