From 107c7a575de2fb17effe7fee3cd328b41843541a Mon Sep 17 00:00:00 2001 From: timklge <2026103+timklge@users.noreply.github.com> Date: Sat, 8 Mar 2025 13:33:01 +0100 Subject: [PATCH] Fix "no gps" / "no weather data" is not displayed in data fields anymore (#67) --- .../de/timklge/karooheadwind/KarooHeadwindExtension.kt | 3 --- .../de/timklge/karooheadwind/datatypes/ForecastDataType.kt | 2 +- .../karooheadwind/datatypes/HeadwindDirectionDataType.kt | 6 +++++- .../kotlin/de/timklge/karooheadwind/screens/MainScreen.kt | 2 -- 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/app/src/main/kotlin/de/timklge/karooheadwind/KarooHeadwindExtension.kt b/app/src/main/kotlin/de/timklge/karooheadwind/KarooHeadwindExtension.kt index 97629a6..47de888 100644 --- a/app/src/main/kotlin/de/timklge/karooheadwind/KarooHeadwindExtension.kt +++ b/app/src/main/kotlin/de/timklge/karooheadwind/KarooHeadwindExtension.kt @@ -89,9 +89,6 @@ class KarooHeadwindExtension : KarooExtension("karoo-headwind", BuildConfig.VERS ) } - data class StreamData(val settings: HeadwindSettings, val gps: GpsCoordinates?, - val profile: UserProfile? = null, val upcomingRoute: UpcomingRoute? = null) - @OptIn(ExperimentalCoroutinesApi::class, FlowPreview::class) override fun onCreate() { super.onCreate() diff --git a/app/src/main/kotlin/de/timklge/karooheadwind/datatypes/ForecastDataType.kt b/app/src/main/kotlin/de/timklge/karooheadwind/datatypes/ForecastDataType.kt index 3f0901e..6ec0600 100644 --- a/app/src/main/kotlin/de/timklge/karooheadwind/datatypes/ForecastDataType.kt +++ b/app/src/main/kotlin/de/timklge/karooheadwind/datatypes/ForecastDataType.kt @@ -202,7 +202,7 @@ abstract class ForecastDataType(private val karooSystem: KarooSystemService, typ dataFlow.collect { (allData, settingsAndProfile, widgetSettings, userProfile, headingResponse, upcomingRoute) -> Log.d(KarooHeadwindExtension.TAG, "Updating weather forecast view") - if (allData == null){ + if (allData.isNullOrEmpty()){ emitter.updateView( getErrorWidget( glance, diff --git a/app/src/main/kotlin/de/timklge/karooheadwind/datatypes/HeadwindDirectionDataType.kt b/app/src/main/kotlin/de/timklge/karooheadwind/datatypes/HeadwindDirectionDataType.kt index ece3670..303eb51 100644 --- a/app/src/main/kotlin/de/timklge/karooheadwind/datatypes/HeadwindDirectionDataType.kt +++ b/app/src/main/kotlin/de/timklge/karooheadwind/datatypes/HeadwindDirectionDataType.kt @@ -28,6 +28,7 @@ import kotlinx.coroutines.awaitCancellation import kotlinx.coroutines.delay import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.combine +import kotlinx.coroutines.flow.emitAll import kotlinx.coroutines.flow.flow import kotlinx.coroutines.launch import kotlin.math.roundToInt @@ -127,7 +128,10 @@ class HeadwindDirectionDataType( previewFlow() } else { val directionFlow = streamValues() - val speedFlow = UserWindSpeedDataType.streamValues(context, karooSystem) + val speedFlow = flow { + emit(0.0) + emitAll(UserWindSpeedDataType.streamValues(context, karooSystem)) + } combine(directionFlow, speedFlow) { direction, speed -> DirectionAndSpeed(direction, speed) diff --git a/app/src/main/kotlin/de/timklge/karooheadwind/screens/MainScreen.kt b/app/src/main/kotlin/de/timklge/karooheadwind/screens/MainScreen.kt index 588973f..f2bdd3a 100644 --- a/app/src/main/kotlin/de/timklge/karooheadwind/screens/MainScreen.kt +++ b/app/src/main/kotlin/de/timklge/karooheadwind/screens/MainScreen.kt @@ -19,7 +19,6 @@ import androidx.compose.material3.Tab import androidx.compose.material3.TabRow import androidx.compose.material3.Text import androidx.compose.material3.pulltorefresh.PullToRefreshBox -import androidx.compose.material3.pulltorefresh.rememberPullToRefreshState import androidx.compose.runtime.Composable import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.LaunchedEffect @@ -55,7 +54,6 @@ fun MainScreen(close: () -> Unit) { var tabIndex by remember { mutableIntStateOf(0) } var isRefreshing by remember { mutableStateOf(false) } - val swipeRefreshState = rememberPullToRefreshState() val tabs = listOf("Weather", "Settings")