mirror of
https://github.com/atsunatsu/Look4Sat.git
synced 2026-10-02 03:15:37 +00:00
Added several tweaks to Radar and RadioControl screens
This commit is contained in:
1 parent
aadc285d7f
commit
4a3a01729b
5 files changed
+116
-125
No files matched your search
+20
-13
@@ -26,14 +26,12 @@ import androidx.compose.foundation.layout.ExperimentalLayoutApi
|
||||
import androidx.compose.foundation.layout.FlowRow
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.height
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.foundation.lazy.LazyColumn
|
||||
import androidx.compose.foundation.lazy.items
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.material3.ElevatedCard
|
||||
import androidx.compose.material3.FilterChip
|
||||
@@ -59,11 +57,15 @@ import androidx.navigation.navArgument
|
||||
import com.rtbishop.look4sat.core.domain.model.SatRadio
|
||||
import com.rtbishop.look4sat.core.presentation.CardButton
|
||||
import com.rtbishop.look4sat.core.presentation.IconCard
|
||||
import com.rtbishop.look4sat.core.presentation.NextPassRow
|
||||
import com.rtbishop.look4sat.core.presentation.R
|
||||
import com.rtbishop.look4sat.core.presentation.Screen
|
||||
import com.rtbishop.look4sat.core.presentation.TimerRow
|
||||
import com.rtbishop.look4sat.core.presentation.TopBar
|
||||
import com.rtbishop.look4sat.core.presentation.getDefaultPass
|
||||
import com.rtbishop.look4sat.core.presentation.isVerticalLayout
|
||||
import com.rtbishop.look4sat.core.presentation.layoutPadding
|
||||
import java.util.Locale
|
||||
|
||||
fun NavGraphBuilder.radioControlDestination(navigateUp: () -> Unit) {
|
||||
val route = "${Screen.RadioControl.route}?catNum={catNum}&aosTime={aosTime}"
|
||||
@@ -86,16 +88,21 @@ private fun RadioControlScreen(uiState: RadioControlState, navigateUp: () -> Uni
|
||||
.keepScreenOn(),
|
||||
verticalArrangement = Arrangement.spacedBy(6.dp)
|
||||
) {
|
||||
TopBar {
|
||||
IconCard(action = navigateUp, resId = R.drawable.ic_back)
|
||||
TimerRow(timeString = uiState.currentTime, isTimeAos = uiState.isCurrentTimeAos)
|
||||
uiState.currentPass?.let { pass ->
|
||||
Text(
|
||||
text = pass.name,
|
||||
fontSize = 16.sp,
|
||||
fontWeight = FontWeight.Medium,
|
||||
modifier = Modifier.padding(horizontal = 8.dp)
|
||||
)
|
||||
val currentPass = uiState.currentPass ?: getDefaultPass()
|
||||
val isVertical = isVerticalLayout()
|
||||
if (isVertical) {
|
||||
TopBar {
|
||||
IconCard(action = navigateUp, resId = R.drawable.ic_back)
|
||||
TimerRow(timeString = uiState.currentTime, isTimeAos = uiState.isCurrentTimeAos)
|
||||
IconCard(action = navigateUp, resId = R.drawable.ic_back)
|
||||
}
|
||||
TopBar { NextPassRow(pass = currentPass) }
|
||||
} else {
|
||||
TopBar {
|
||||
IconCard(action = navigateUp, resId = R.drawable.ic_back)
|
||||
TimerRow(timeString = uiState.currentTime, isTimeAos = uiState.isCurrentTimeAos)
|
||||
NextPassRow(pass = currentPass, modifier = Modifier.weight(1f))
|
||||
IconCard(action = navigateUp, resId = R.drawable.ic_back)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -265,7 +272,7 @@ private fun CtcssSelector(uiState: RadioControlState) {
|
||||
FilterChip(
|
||||
selected = uiState.ctcssTone == tone,
|
||||
onClick = { uiState.sendAction(RadioControlAction.SetCtcssTone(tone)) },
|
||||
label = { Text(String.format("%.1f", tone)) }
|
||||
label = { Text(String.format(Locale.ENGLISH, "%.1f", tone)) }
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+2
-4
@@ -30,11 +30,9 @@ import com.rtbishop.look4sat.core.domain.repository.IContainerProvider
|
||||
import com.rtbishop.look4sat.core.domain.repository.IRadioTrackingService
|
||||
import com.rtbishop.look4sat.core.domain.repository.ISatelliteRepo
|
||||
import com.rtbishop.look4sat.core.domain.repository.ISettingsRepo
|
||||
import com.rtbishop.look4sat.core.domain.repository.RadioTrackingState
|
||||
import com.rtbishop.look4sat.core.domain.utility.toTimerString
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
import kotlinx.coroutines.flow.combine
|
||||
import kotlinx.coroutines.flow.update
|
||||
import kotlinx.coroutines.launch
|
||||
import java.util.Locale
|
||||
@@ -108,8 +106,8 @@ class RadioControlViewModel(
|
||||
}
|
||||
val isAos = pass != null && !pass.isDeepSpace && pass.aosTime > timeNow
|
||||
|
||||
_uiState.update {
|
||||
it.copy(
|
||||
_uiState.update { state ->
|
||||
state.copy(
|
||||
currentTime = timeStr,
|
||||
isCurrentTimeAos = isAos,
|
||||
azimuth = String.format(Locale.ENGLISH, "%.1f", svc.azimuth),
|
||||
|
||||
Reference in new issue
Block a user