From be701e4057227cd3c30b83350946fe45894088cf Mon Sep 17 00:00:00 2001 From: Tim Kluge Date: Thu, 19 Dec 2024 20:26:57 +0100 Subject: [PATCH] fix #13, fix #3: Add hourly forecast widget --- README.md | 4 +- app/build.gradle.kts | 4 +- app/manifest.json | 6 +- .../de/timklge/karooheadwind/Extensions.kt | 36 +++- .../karooheadwind/KarooHeadwindExtension.kt | 6 +- .../de/timklge/karooheadwind/OpenMeteoData.kt | 15 +- .../datatypes/TemperatureDataType.kt | 10 + .../datatypes/WeatherDataType.kt | 28 ++- .../datatypes/WeatherForecastDataType.kt | 182 ++++++++++++++++++ .../karooheadwind/datatypes/WeatherView.kt | 70 ++++++- .../karooheadwind/screens/MainScreen.kt | 47 ++++- app/src/main/res/drawable/thermometer.png | Bin 0 -> 17784 bytes app/src/main/res/drawable/water_regular.png | Bin 0 -> 17555 bytes app/src/main/res/values/strings.xml | 4 + app/src/main/res/xml/extension_info.xml | 14 ++ preview0.png | Bin 47836 -> 42225 bytes 16 files changed, 394 insertions(+), 32 deletions(-) create mode 100644 app/src/main/kotlin/de/timklge/karooheadwind/datatypes/TemperatureDataType.kt create mode 100644 app/src/main/kotlin/de/timklge/karooheadwind/datatypes/WeatherForecastDataType.kt create mode 100644 app/src/main/res/drawable/thermometer.png create mode 100644 app/src/main/res/drawable/water_regular.png diff --git a/README.md b/README.md index 2aa8835..3d5c781 100644 --- a/README.md +++ b/README.md @@ -33,8 +33,8 @@ If you are using a Karoo 2, you can use manual sideloading: After installing this app on your Karoo and opening it once from the main menu, you can add the following new data fields to your data pages: -- Headwind (graphical): Shows the headwind direction and speed as a circle with a triangular direction indicator. The speed is shown at the center in your set unit of measurement (default is kilometers per hour if you have set up metric units in your Karoo, otherwise miles per hour). Both direction and speed are relative to the current riding direction. -- Weather (graphical): Shows an icon indicating the current weather conditions (sunny, cloudy, ...). Additionally, current absolute wind direction, speed and wind gust speed are shown below the icon. +- Headwind (graphical, 1x1 field): Shows the headwind direction and speed as a circle with a triangular direction indicator. The speed is shown at the center in your set unit of measurement (default is kilometers per hour if you have set up metric units in your Karoo, otherwise miles per hour). Both direction and speed are relative to the current riding direction. +- Weather forecast (graphical, 2x1 field): Shows three columns indicating the current weather conditions (sunny, cloudy, ...), wind direction, precipitation and temperature forecasted for the next three hours. Tap on this widget to cycle through the 12 hour forecast. - Additionally, data fields that only show the current data value for headwind speed, humidity, cloud cover, absolute wind speed, absolute wind gust speed, absolute wind direction, rainfall and surface pressure can be added if desired. The app will automatically attempt to download weather data for your current approximate location from the [open-meteo.com](https://open-meteo.com) API once your device has acquired a GPS fix. The API service is free for non-commercial use. Your location is rounded to approximately two kilometers to maintain privacy. The data is updated when you ride more than two kilometers from the location where the weather data was downloaded or after one hour at the latest. If the app cannot connect to the weather service, it will retry the download every minute. Downloading weather data should work on Karoo 2 if you have a SIM card inserted or on Karoo 3 via your phone's internet connection if you have the Karoo companion app installed. diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 1405bc1..f035a1a 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -15,8 +15,8 @@ android { applicationId = "de.timklge.karooheadwind" minSdk = 26 targetSdk = 35 - versionCode = 3 - versionName = "1.0.1" + versionCode = 4 + versionName = "1.1" } signingConfigs { diff --git a/app/manifest.json b/app/manifest.json index 3acd243..048792f 100644 --- a/app/manifest.json +++ b/app/manifest.json @@ -3,9 +3,9 @@ "packageName": "de.timklge.karooheadwind", "iconUrl": "https://github.com/timklge/karoo-headwind/releases/latest/download/karoo-headwind.png", "latestApkUrl": "https://github.com/timklge/karoo-headwind/releases/latest/download/app-release.apk", - "latestVersion": "1.0.1", - "latestVersionCode": 3, + "latestVersion": "1.1", + "latestVersionCode": 4, "developer": "timklge", "description": "Provides headwind direction, wind speed and other weather data fields", - "releaseNotes": "Add wind indicator text setting and increase indicator font size. First build with new CI/CD pipeline." + "releaseNotes": "Add temperature datafield" } \ No newline at end of file diff --git a/app/src/main/kotlin/de/timklge/karooheadwind/Extensions.kt b/app/src/main/kotlin/de/timklge/karooheadwind/Extensions.kt index 62e1201..51f0981 100644 --- a/app/src/main/kotlin/de/timklge/karooheadwind/Extensions.kt +++ b/app/src/main/kotlin/de/timklge/karooheadwind/Extensions.kt @@ -7,7 +7,9 @@ import androidx.datastore.preferences.core.stringPreferencesKey import de.timklge.karooheadwind.datatypes.GpsCoordinates import de.timklge.karooheadwind.screens.HeadwindSettings import de.timklge.karooheadwind.screens.HeadwindStats +import de.timklge.karooheadwind.screens.HeadwindWidgetSettings import de.timklge.karooheadwind.screens.PrecipitationUnit +import de.timklge.karooheadwind.screens.TemperatureUnit import de.timklge.karooheadwind.screens.WindUnit import io.hammerhead.karooext.KarooSystemService import io.hammerhead.karooext.models.DataType @@ -28,6 +30,7 @@ import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.filter import kotlinx.coroutines.flow.filterNotNull import kotlinx.coroutines.flow.first +import kotlinx.coroutines.flow.flowOf import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.mapNotNull import kotlinx.coroutines.flow.scan @@ -44,6 +47,7 @@ import kotlin.time.Duration.Companion.seconds val jsonWithUnknownKeys = Json { ignoreUnknownKeys = true } val settingsKey = stringPreferencesKey("settings") +val widgetSettingsKey = stringPreferencesKey("widgetSettings") val currentDataKey = stringPreferencesKey("current") val statsKey = stringPreferencesKey("stats") @@ -53,6 +57,12 @@ suspend fun saveSettings(context: Context, settings: HeadwindSettings) { } } +suspend fun saveWidgetSettings(context: Context, settings: HeadwindWidgetSettings) { + context.dataStore.edit { t -> + t[widgetSettingsKey] = Json.encodeToString(settings) + } +} + suspend fun saveStats(context: Context, stats: HeadwindStats) { context.dataStore.edit { t -> t[statsKey] = Json.encodeToString(stats) @@ -88,6 +98,21 @@ fun Context.streamCurrentWeatherData(): Flow { }.filterNotNull().distinctUntilChanged().filter { it.current.time * 1000 >= System.currentTimeMillis() - (1000 * 60 * 60 * 12) } } +fun Context.streamWidgetSettings(): Flow { + return dataStore.data.map { settingsJson -> + try { + if (settingsJson.contains(widgetSettingsKey)){ + jsonWithUnknownKeys.decodeFromString(settingsJson[widgetSettingsKey]!!) + } else { + jsonWithUnknownKeys.decodeFromString(HeadwindWidgetSettings.defaultWidgetSettings) + } + } catch(e: Throwable){ + Log.e(KarooHeadwindExtension.TAG, "Failed to read preferences", e) + jsonWithUnknownKeys.decodeFromString(HeadwindWidgetSettings.defaultWidgetSettings) + } + }.distinctUntilChanged() +} + fun Context.streamSettings(karooSystemService: KarooSystemService): Flow { return dataStore.data.map { settingsJson -> try { @@ -100,8 +125,9 @@ fun Context.streamSettings(karooSystemService: KarooSystemService): Flow { @OptIn(FlowPreview::class) suspend fun KarooSystemService.makeOpenMeteoHttpRequest(gpsCoordinates: GpsCoordinates, settings: HeadwindSettings): HttpResponseState.Complete { return callbackFlow { - // https://open-meteo.com/en/docs#current=temperature_2m,relative_humidity_2m,apparent_temperature,precipitation,weather_code,cloud_cover,wind_speed_10m,wind_direction_10m,wind_gusts_10m&hourly=&daily=&location_mode=csv_coordinates&timeformat=unixtime&forecast_days=3 - val url = "https://api.open-meteo.com/v1/forecast?latitude=${gpsCoordinates.lat}&longitude=${gpsCoordinates.lon}¤t=weather_code,temperature_2m,relative_humidity_2m,apparent_temperature,precipitation,cloud_cover,wind_speed_10m,wind_direction_10m,wind_gusts_10m,surface_pressure&timeformat=unixtime&wind_speed_unit=${settings.windUnit.id}&precipitation_unit=${settings.precipitationUnit.id}" + // https://api.open-meteo.com/v1/forecast?latitude=52.52&longitude=13.41¤t=surface_pressure,temperature_2m,relative_humidity_2m,precipitation,weather_code,cloud_cover,wind_speed_10m,wind_direction_10m,wind_gusts_10m&hourly=temperature_2m,precipitation_probability,precipitation,weather_code,wind_speed_10m,wind_direction_10m,wind_gusts_10m&timeformat=unixtime&past_hours=1&forecast_days=1&forecast_hours=12 + val url = "https://api.open-meteo.com/v1/forecast?latitude=${gpsCoordinates.lat}&longitude=${gpsCoordinates.lon}¤t=surface_pressure,temperature_2m,relative_humidity_2m,precipitation,weather_code,cloud_cover,wind_speed_10m,wind_direction_10m,wind_gusts_10m&hourly=temperature_2m,precipitation_probability,precipitation,weather_code,wind_speed_10m,wind_direction_10m,wind_gusts_10m&timeformat=unixtime&past_hours=0&forecast_days=1&forecast_hours=12&wind_speed_unit=${settings.windUnit.id}&precipitation_unit=${settings.precipitationUnit.id}&temperature_unit=${settings.temperatureUnit.id}" Log.d(KarooHeadwindExtension.TAG, "Http request to ${url}...") @@ -202,7 +228,7 @@ fun KarooSystemService.getRelativeHeadingFlow(context: Context): Flow { } fun KarooSystemService.getHeadingFlow(): Flow { - //return flowOf(20.0) + // return flowOf(20.0) return streamDataFlow(DataType.Type.LOCATION) .mapNotNull { (it as? StreamState.Streaming)?.dataPoint?.values } diff --git a/app/src/main/kotlin/de/timklge/karooheadwind/KarooHeadwindExtension.kt b/app/src/main/kotlin/de/timklge/karooheadwind/KarooHeadwindExtension.kt index 9e3a495..72d7b51 100644 --- a/app/src/main/kotlin/de/timklge/karooheadwind/KarooHeadwindExtension.kt +++ b/app/src/main/kotlin/de/timklge/karooheadwind/KarooHeadwindExtension.kt @@ -10,7 +10,9 @@ import de.timklge.karooheadwind.datatypes.WindDirectionDataType import de.timklge.karooheadwind.datatypes.WindGustsDataType import de.timklge.karooheadwind.datatypes.HeadwindSpeedDataType import de.timklge.karooheadwind.datatypes.HeadwindDirectionDataType +import de.timklge.karooheadwind.datatypes.TemperatureDataType import de.timklge.karooheadwind.datatypes.WeatherDataType +import de.timklge.karooheadwind.datatypes.WeatherForecastDataType import de.timklge.karooheadwind.datatypes.WindSpeedDataType import de.timklge.karooheadwind.screens.HeadwindStats import io.hammerhead.karooext.KarooSystemService @@ -30,7 +32,7 @@ import kotlinx.coroutines.launch import kotlin.time.Duration.Companion.hours import kotlin.time.Duration.Companion.minutes -class KarooHeadwindExtension : KarooExtension("karoo-headwind", "1.0.1") { +class KarooHeadwindExtension : KarooExtension("karoo-headwind", "1.1") { companion object { const val TAG = "karoo-headwind" } @@ -44,11 +46,13 @@ class KarooHeadwindExtension : KarooExtension("karoo-headwind", "1.0.1") { HeadwindDirectionDataType(karooSystem, applicationContext), HeadwindSpeedDataType(karooSystem, applicationContext), WeatherDataType(karooSystem, applicationContext), + WeatherForecastDataType(karooSystem, applicationContext), HeadwindSpeedDataType(karooSystem, applicationContext), RelativeHumidityDataType(applicationContext), CloudCoverDataType(applicationContext), WindGustsDataType(applicationContext), WindSpeedDataType(applicationContext), + TemperatureDataType(applicationContext), WindDirectionDataType(karooSystem, applicationContext), PrecipitationDataType(applicationContext), SurfacePressureDataType(applicationContext) diff --git a/app/src/main/kotlin/de/timklge/karooheadwind/OpenMeteoData.kt b/app/src/main/kotlin/de/timklge/karooheadwind/OpenMeteoData.kt index cbdf876..26c956f 100644 --- a/app/src/main/kotlin/de/timklge/karooheadwind/OpenMeteoData.kt +++ b/app/src/main/kotlin/de/timklge/karooheadwind/OpenMeteoData.kt @@ -17,6 +17,18 @@ data class OpenMeteoData( @SerialName("weather_code") val weatherCode: Int, ) +@Serializable +data class OpenMeteoForecastData( + @SerialName("time") val time: List, + @SerialName("temperature_2m") val temperature: List, + @SerialName("precipitation_probability") val precipitationProbability: List, + @SerialName("precipitation") val precipitation: List, + @SerialName("weather_code") val weatherCode: List, + @SerialName("wind_speed_10m") val windSpeed: List, + @SerialName("wind_direction_10m") val windDirection: List, + @SerialName("wind_gusts_10m") val windGusts: List, +) + enum class WeatherInterpretation { CLEAR, CLOUDY, RAINY, SNOWY, DRIZZLE, THUNDERSTORM, UNKNOWN; @@ -43,5 +55,6 @@ data class OpenMeteoCurrentWeatherResponse( val longitude: Double, val timezone: String, val elevation: Double, - @SerialName("utc_offset_seconds") val utfOffsetSeconds: Int + @SerialName("utc_offset_seconds") val utfOffsetSeconds: Int, + @SerialName("hourly") val forecastData: OpenMeteoForecastData ) \ No newline at end of file diff --git a/app/src/main/kotlin/de/timklge/karooheadwind/datatypes/TemperatureDataType.kt b/app/src/main/kotlin/de/timklge/karooheadwind/datatypes/TemperatureDataType.kt new file mode 100644 index 0000000..ea69ab9 --- /dev/null +++ b/app/src/main/kotlin/de/timklge/karooheadwind/datatypes/TemperatureDataType.kt @@ -0,0 +1,10 @@ +package de.timklge.karooheadwind.datatypes + +import android.content.Context +import de.timklge.karooheadwind.OpenMeteoCurrentWeatherResponse + +class TemperatureDataType(context: Context) : BaseDataType(context, "temperature"){ + override fun getValue(data: OpenMeteoCurrentWeatherResponse): Double { + return data.current.temperature + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/de/timklge/karooheadwind/datatypes/WeatherDataType.kt b/app/src/main/kotlin/de/timklge/karooheadwind/datatypes/WeatherDataType.kt index 673c0b0..1e47844 100644 --- a/app/src/main/kotlin/de/timklge/karooheadwind/datatypes/WeatherDataType.kt +++ b/app/src/main/kotlin/de/timklge/karooheadwind/datatypes/WeatherDataType.kt @@ -4,8 +4,12 @@ import android.content.Context import android.graphics.BitmapFactory import android.util.Log import androidx.compose.ui.unit.DpSize +import androidx.glance.GlanceModifier import androidx.glance.appwidget.ExperimentalGlanceRemoteViewsApi import androidx.glance.appwidget.GlanceRemoteViews +import androidx.glance.layout.Alignment +import androidx.glance.layout.Box +import androidx.glance.layout.fillMaxSize import de.timklge.karooheadwind.KarooHeadwindExtension import de.timklge.karooheadwind.OpenMeteoCurrentWeatherResponse import de.timklge.karooheadwind.WeatherInterpretation @@ -27,6 +31,9 @@ import kotlinx.coroutines.awaitCancellation import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.onCompletion import kotlinx.coroutines.launch +import java.time.Instant +import java.time.ZoneId +import java.time.format.DateTimeFormatter import kotlin.math.roundToInt @OptIn(ExperimentalGlanceRemoteViewsApi::class) @@ -36,6 +43,10 @@ class WeatherDataType( ) : DataTypeImpl("karoo-headwind", "weather") { private val glance = GlanceRemoteViews() + companion object { + val timeFormatter = DateTimeFormatter.ofPattern("HH:mm").withZone(ZoneId.systemDefault()) + } + // FIXME: Remove. Currently, the data field will permanently show "no sensor" if no data stream is provided override fun startStream(emitter: Emitter) { val job = CoroutineScope(Dispatchers.IO).launch { @@ -77,9 +88,24 @@ class WeatherDataType( .collect { (data, settings) -> Log.d(KarooHeadwindExtension.TAG, "Updating weather view") val interpretation = WeatherInterpretation.fromWeatherCode(data.current.weatherCode) + val formattedTime = timeFormatter.format(Instant.ofEpochSecond(data.current.time)) val result = glance.compose(context, DpSize.Unspecified) { - Weather(baseBitmap, interpretation, data.current.windDirection.roundToInt(), data.current.windSpeed.roundToInt(), data.current.windGusts.roundToInt()) + Box(modifier = GlanceModifier.fillMaxSize(), contentAlignment = Alignment.CenterEnd) { + Weather(baseBitmap, + current = interpretation, + windBearing = data.current.windDirection.roundToInt(), + windSpeed = data.current.windSpeed.roundToInt(), + windGusts = data.current.windGusts.roundToInt(), + windSpeedUnit = settings.windUnit, + precipitation = data.current.precipitation, + precipitationProbability = null, + precipitationUnit = settings.precipitationUnit, + temperature = data.current.temperature.roundToInt(), + temperatureUnit = settings.temperatureUnit, + timeLabel = formattedTime + ) + } } emitter.updateView(result.remoteViews) diff --git a/app/src/main/kotlin/de/timklge/karooheadwind/datatypes/WeatherForecastDataType.kt b/app/src/main/kotlin/de/timklge/karooheadwind/datatypes/WeatherForecastDataType.kt new file mode 100644 index 0000000..6b49633 --- /dev/null +++ b/app/src/main/kotlin/de/timklge/karooheadwind/datatypes/WeatherForecastDataType.kt @@ -0,0 +1,182 @@ +package de.timklge.karooheadwind.datatypes + +import android.content.Context +import android.graphics.BitmapFactory +import android.util.Log +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableIntStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.DpSize +import androidx.compose.ui.unit.dp +import androidx.glance.GlanceId +import androidx.glance.GlanceModifier +import androidx.glance.action.ActionParameters +import androidx.glance.action.clickable +import androidx.glance.appwidget.ExperimentalGlanceRemoteViewsApi +import androidx.glance.appwidget.GlanceRemoteViews +import androidx.glance.appwidget.action.ActionCallback +import androidx.glance.appwidget.action.actionRunCallback +import androidx.glance.background +import androidx.glance.color.ColorProvider +import androidx.glance.layout.Alignment +import androidx.glance.layout.Row +import androidx.glance.layout.Spacer +import androidx.glance.layout.fillMaxHeight +import androidx.glance.layout.fillMaxSize +import androidx.glance.layout.padding +import androidx.glance.layout.width +import de.timklge.karooheadwind.KarooHeadwindExtension +import de.timklge.karooheadwind.OpenMeteoCurrentWeatherResponse +import de.timklge.karooheadwind.WeatherInterpretation +import de.timklge.karooheadwind.saveSettings +import de.timklge.karooheadwind.saveWidgetSettings +import de.timklge.karooheadwind.screens.HeadwindSettings +import de.timklge.karooheadwind.screens.HeadwindWidgetSettings +import de.timklge.karooheadwind.streamCurrentWeatherData +import de.timklge.karooheadwind.streamSettings +import de.timklge.karooheadwind.streamWidgetSettings +import io.hammerhead.karooext.KarooSystemService +import io.hammerhead.karooext.extension.DataTypeImpl +import io.hammerhead.karooext.internal.Emitter +import io.hammerhead.karooext.internal.ViewEmitter +import io.hammerhead.karooext.models.DataPoint +import io.hammerhead.karooext.models.DataType +import io.hammerhead.karooext.models.StreamState +import io.hammerhead.karooext.models.UpdateGraphicConfig +import io.hammerhead.karooext.models.ViewConfig +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.awaitCancellation +import kotlinx.coroutines.flow.combine +import kotlinx.coroutines.flow.first +import kotlinx.coroutines.flow.onCompletion +import kotlinx.coroutines.launch +import java.time.Instant +import java.time.ZoneId +import java.time.format.DateTimeFormatter +import kotlin.math.roundToInt + +class CycleHoursAction : ActionCallback { + override suspend fun onAction( + context: Context, + glanceId: GlanceId, + parameters: ActionParameters + ) { + Log.d(KarooHeadwindExtension.TAG, "Cycling hours") + + val currentSettings = context.streamWidgetSettings().first() + val data = context.streamCurrentWeatherData().first() + + var hourOffset = currentSettings.currentForecastHourOffset + 3 + if (hourOffset >= data.forecastData.weatherCode.size) { + hourOffset = 0 + } + + val newSettings = currentSettings.copy(currentForecastHourOffset = hourOffset) + saveWidgetSettings(context, newSettings) + } +} + +@OptIn(ExperimentalGlanceRemoteViewsApi::class) +class WeatherForecastDataType( + private val karooSystem: KarooSystemService, + private val applicationContext: Context +) : DataTypeImpl("karoo-headwind", "weatherForecast") { + private val glance = GlanceRemoteViews() + + companion object { + val timeFormatter = DateTimeFormatter.ofPattern("HH:mm").withZone(ZoneId.systemDefault()) + } + + // FIXME: Remove. Currently, the data field will permanently show "no sensor" if no data stream is provided + override fun startStream(emitter: Emitter) { + val job = CoroutineScope(Dispatchers.IO).launch { + val currentWeatherData = applicationContext.streamCurrentWeatherData() + + currentWeatherData + .collect { data -> + Log.d(KarooHeadwindExtension.TAG, "Wind code: ${data.current.weatherCode}") + emitter.onNext(StreamState.Streaming(DataPoint(dataTypeId, mapOf(DataType.Field.SINGLE to data.current.weatherCode.toDouble())))) + } + } + emitter.setCancellable { + job.cancel() + } + } + + override fun startView(context: Context, config: ViewConfig, emitter: ViewEmitter) { + Log.d(KarooHeadwindExtension.TAG, "Starting weather forecast view with $emitter") + val configJob = CoroutineScope(Dispatchers.IO).launch { + emitter.onNext(UpdateGraphicConfig(showHeader = false)) + awaitCancellation() + } + + val baseBitmap = BitmapFactory.decodeResource( + context.resources, + de.timklge.karooheadwind.R.drawable.arrow_0 + ) + + data class StreamData(val data: OpenMeteoCurrentWeatherResponse, val settings: HeadwindSettings, val widgetSettings: HeadwindWidgetSettings? = null) + + val viewJob = CoroutineScope(Dispatchers.IO).launch { + context.streamCurrentWeatherData() + .combine(context.streamSettings(karooSystem)) { data, settings -> StreamData(data, settings) } + .combine(context.streamWidgetSettings()) { data, widgetSettings -> data.copy(widgetSettings = widgetSettings) } + .onCompletion { + // Clear view on completion + val result = glance.compose(context, DpSize.Unspecified) { } + emitter.updateView(result.remoteViews) + } + .collect { (data, settings, widgetSettings) -> + Log.d(KarooHeadwindExtension.TAG, "Updating weather view") + + val result = glance.compose(context, DpSize.Unspecified) { + Row(modifier = GlanceModifier.fillMaxSize().clickable(onClick = actionRunCallback()), horizontalAlignment = Alignment.Horizontal.CenterHorizontally) { + val hourOffset = widgetSettings?.currentForecastHourOffset ?: 0 + + for (index in hourOffset..hourOffset + 2){ + if (index >= data.forecastData.weatherCode.size) { + break + } + + if (index > hourOffset) { + Spacer( + modifier = GlanceModifier.fillMaxHeight().background( + ColorProvider(Color.Black, Color.White) + ).width(1.dp) + ) + } + + val interpretation = WeatherInterpretation.fromWeatherCode(data.forecastData.weatherCode[index]) + val unixTime = data.forecastData.time[index] + val formattedTime = timeFormatter.format(Instant.ofEpochSecond(unixTime)) + + Weather(baseBitmap, + current = interpretation, + windBearing = data.forecastData.windDirection[index].roundToInt(), + windSpeed = data.forecastData.windSpeed[index].roundToInt(), + windGusts = data.forecastData.windGusts[index].roundToInt(), + windSpeedUnit = settings.windUnit, + precipitation = data.forecastData.precipitation[index], + precipitationProbability = data.forecastData.precipitationProbability[index], + precipitationUnit = settings.precipitationUnit, + temperature = data.forecastData.temperature[index].roundToInt(), + temperatureUnit = settings.temperatureUnit, + timeLabel = formattedTime + ) + } + } + } + + emitter.updateView(result.remoteViews) + } + } + emitter.setCancellable { + Log.d(KarooHeadwindExtension.TAG, "Stopping headwind weather forecast view with $emitter") + configJob.cancel() + viewJob.cancel() + } + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/de/timklge/karooheadwind/datatypes/WeatherView.kt b/app/src/main/kotlin/de/timklge/karooheadwind/datatypes/WeatherView.kt index 3580f3d..ed724fa 100644 --- a/app/src/main/kotlin/de/timklge/karooheadwind/datatypes/WeatherView.kt +++ b/app/src/main/kotlin/de/timklge/karooheadwind/datatypes/WeatherView.kt @@ -10,22 +10,29 @@ import androidx.glance.ColorFilter import androidx.glance.GlanceModifier import androidx.glance.Image import androidx.glance.ImageProvider -import androidx.glance.LocalContext import androidx.glance.color.ColorProvider import androidx.glance.layout.Alignment import androidx.glance.layout.Column import androidx.glance.layout.ContentScale import androidx.glance.layout.Row -import androidx.glance.layout.fillMaxSize +import androidx.glance.layout.Spacer +import androidx.glance.layout.fillMaxHeight import androidx.glance.layout.height +import androidx.glance.layout.padding import androidx.glance.layout.width import androidx.glance.preview.ExperimentalGlancePreviewApi import androidx.glance.preview.Preview import androidx.glance.text.FontFamily +import androidx.glance.text.FontWeight import androidx.glance.text.Text +import androidx.glance.text.TextAlign import androidx.glance.text.TextStyle import de.timklge.karooheadwind.R import de.timklge.karooheadwind.WeatherInterpretation +import de.timklge.karooheadwind.screens.PrecipitationUnit +import de.timklge.karooheadwind.screens.TemperatureUnit +import de.timklge.karooheadwind.screens.WindUnit +import kotlin.math.ceil fun getWeatherIcon(interpretation: WeatherInterpretation): Int { return when (interpretation){ @@ -42,10 +49,15 @@ fun getWeatherIcon(interpretation: WeatherInterpretation): Int { @OptIn(ExperimentalGlancePreviewApi::class) @Preview(widthDp = 200, heightDp = 150) @Composable -fun Weather(baseBitmap: Bitmap, current: WeatherInterpretation, windBearing: Int, windSpeed: Int, windGusts: Int) { - Column(modifier = GlanceModifier.fillMaxSize(), horizontalAlignment = Alignment.End) { +fun Weather(baseBitmap: Bitmap, current: WeatherInterpretation, windBearing: Int, windSpeed: Int, windGusts: Int, windSpeedUnit: WindUnit, + precipitation: Double, precipitationProbability: Int?, precipitationUnit: PrecipitationUnit, + temperature: Int, temperatureUnit: TemperatureUnit, timeLabel: String? = null) { + + val fontSize = 14f + + Column(modifier = GlanceModifier.fillMaxHeight().padding(2.dp), horizontalAlignment = Alignment.End) { Row(modifier = GlanceModifier.defaultWeight(), horizontalAlignment = Alignment.End) { - val imageW = 70 + val imageW = 60 val imageH = (imageW * (280.0 / 400)).toInt() Image( modifier = GlanceModifier.height(imageH.dp).width(imageW.dp), @@ -56,7 +68,48 @@ fun Weather(baseBitmap: Bitmap, current: WeatherInterpretation, windBearing: Int ) } - Row(horizontalAlignment = Alignment.CenterHorizontally, verticalAlignment = Alignment.CenterVertically) { + Row(verticalAlignment = Alignment.CenterVertically) { + if (timeLabel != null){ + Text( + text = timeLabel, + style = TextStyle(color = ColorProvider(Color.Black, Color.White), fontWeight = FontWeight.Bold, + fontFamily = FontFamily.Monospace, fontSize = TextUnit(fontSize, TextUnitType.Sp)) + ) + + Spacer(modifier = GlanceModifier.width(5.dp)) + } + + Image( + modifier = GlanceModifier.height(20.dp).width(12.dp), + provider = ImageProvider(R.drawable.thermometer), + contentDescription = "Temperature", + contentScale = ContentScale.Fit, + colorFilter = ColorFilter.tint(ColorProvider(Color.Black, Color.White)) + ) + + Text( + text = "${temperature}${temperatureUnit.unitDisplay}", + style = TextStyle(color = ColorProvider(Color.Black, Color.White), fontFamily = FontFamily.Monospace, fontSize = TextUnit(fontSize, TextUnitType.Sp), textAlign = TextAlign.Center) + ) + } + + Row(verticalAlignment = Alignment.CenterVertically) { + /* Image( + modifier = GlanceModifier.height(20.dp).width(12.dp), + provider = ImageProvider(R.drawable.water_regular), + contentDescription = "Rain", + contentScale = ContentScale.Fit, + colorFilter = ColorFilter.tint(ColorProvider(Color.Black, Color.White)) + ) */ + + val precipitationProbabilityLabel = if (precipitationProbability != null) "${precipitationProbability}%," else "" + Text( + text = "${precipitationProbabilityLabel}${ceil(precipitation).toInt().coerceIn(0..9)}", + style = TextStyle(color = ColorProvider(Color.Black, Color.White), fontFamily = FontFamily.Monospace, fontSize = TextUnit(fontSize, TextUnitType.Sp)) + ) + + Spacer(modifier = GlanceModifier.width(5.dp)) + Image( modifier = GlanceModifier.height(20.dp).width(12.dp), provider = ImageProvider(getArrowBitmapByBearing(baseBitmap, windBearing + 180)), @@ -65,9 +118,10 @@ fun Weather(baseBitmap: Bitmap, current: WeatherInterpretation, windBearing: Int colorFilter = ColorFilter.tint(ColorProvider(Color.Black, Color.White)) ) + Text( - text = "$windSpeed,$windGusts", - style = TextStyle(color = ColorProvider(Color.Black, Color.White), fontFamily = FontFamily.Monospace, fontSize = TextUnit(18f, TextUnitType.Sp)) + text = "$windSpeed,${windGusts}", + style = TextStyle(color = ColorProvider(Color.Black, Color.White), fontFamily = FontFamily.Monospace, fontSize = TextUnit(fontSize, TextUnitType.Sp)) ) } } 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 1779251..2a945ed 100644 --- a/app/src/main/kotlin/de/timklge/karooheadwind/screens/MainScreen.kt +++ b/app/src/main/kotlin/de/timklge/karooheadwind/screens/MainScreen.kt @@ -55,9 +55,9 @@ enum class WindUnit(val id: String, val label: String, val unitDisplay: String){ KNOTS("kn", "Knots (kn)", "kn") } -enum class PrecipitationUnit(val id: String, val label: String){ - MILLIMETERS("mm", "Millimeters (mm)"), - INCH("inch", "Inch") +enum class PrecipitationUnit(val id: String, val label: String, val unitDisplay: String){ + MILLIMETERS("mm", "Millimeters (mm)", "mm"), + INCH("inch", "Inch", "in") } enum class WindDirectionIndicatorTextSetting(val id: String, val label: String){ @@ -66,10 +66,16 @@ enum class WindDirectionIndicatorTextSetting(val id: String, val label: String){ NONE("none", "None") } +enum class TemperatureUnit(val id: String, val label: String, val unitDisplay: String){ + CELSIUS("celsius", "Celsius (°C)", "°C"), + FAHRENHEIT("fahrenheit", "Fahrenheit (°F)", "°F") +} + @Serializable data class HeadwindSettings( val windUnit: WindUnit = WindUnit.KILOMETERS_PER_HOUR, val precipitationUnit: PrecipitationUnit = PrecipitationUnit.MILLIMETERS, + val temperatureUnit: TemperatureUnit = TemperatureUnit.CELSIUS, val welcomeDialogAccepted: Boolean = false, val windDirectionIndicatorTextSetting: WindDirectionIndicatorTextSetting = WindDirectionIndicatorTextSetting.HEADWIND_SPEED, ){ @@ -78,6 +84,15 @@ data class HeadwindSettings( } } +@Serializable +data class HeadwindWidgetSettings( + val currentForecastHourOffset: Int = 0 +){ + companion object { + val defaultWidgetSettings = Json.encodeToString(HeadwindWidgetSettings()) + } +} + @Serializable data class HeadwindStats( val lastSuccessfulWeatherRequest: Long? = null, @@ -99,6 +114,7 @@ fun MainScreen() { var selectedWindUnit by remember { mutableStateOf(WindUnit.KILOMETERS_PER_HOUR) } var selectedPrecipitationUnit by remember { mutableStateOf(PrecipitationUnit.MILLIMETERS) } + var selectedTemperatureUnit by remember { mutableStateOf(TemperatureUnit.CELSIUS) } var welcomeDialogVisible by remember { mutableStateOf(false) } var selectedWindDirectionIndicatorTextSetting by remember { mutableStateOf(WindDirectionIndicatorTextSetting.HEADWIND_SPEED) } @@ -113,6 +129,7 @@ fun MainScreen() { selectedPrecipitationUnit = settings.precipitationUnit welcomeDialogVisible = !settings.welcomeDialogAccepted selectedWindDirectionIndicatorTextSetting = settings.windDirectionIndicatorTextSetting + selectedTemperatureUnit = settings.temperatureUnit } } @@ -131,6 +148,14 @@ fun MainScreen() { .verticalScroll(rememberScrollState()) .fillMaxWidth(), verticalArrangement = Arrangement.spacedBy(10.dp)) { + val windDirectionIndicatorTextSettingDropdownOptions = WindDirectionIndicatorTextSetting.entries.toList().map { unit -> DropdownOption(unit.id, unit.label) } + val windDirectionIndicatorTextSettingSelection by remember(selectedWindDirectionIndicatorTextSetting) { + mutableStateOf(windDirectionIndicatorTextSettingDropdownOptions.find { option -> option.id == selectedWindDirectionIndicatorTextSetting.id }!!) + } + Dropdown(label = "Text on headwind indicator", options = windDirectionIndicatorTextSettingDropdownOptions, selected = windDirectionIndicatorTextSettingSelection) { selectedOption -> + selectedWindDirectionIndicatorTextSetting = WindDirectionIndicatorTextSetting.entries.find { unit -> unit.id == selectedOption.id }!! + } + val windSpeedUnitDropdownOptions = WindUnit.entries.toList().map { unit -> DropdownOption(unit.id, unit.label) } val windSpeedUnitInitialSelection by remember(selectedWindUnit) { mutableStateOf(windSpeedUnitDropdownOptions.find { option -> option.id == selectedWindUnit.id }!!) @@ -147,18 +172,19 @@ fun MainScreen() { selectedPrecipitationUnit = PrecipitationUnit.entries.find { unit -> unit.id == selectedOption.id }!! } - val windDirectionIndicatorTextSettingDropdownOptions = WindDirectionIndicatorTextSetting.entries.toList().map { unit -> DropdownOption(unit.id, unit.label) } - val windDirectionIndicatorTextSettingSelection by remember(selectedWindDirectionIndicatorTextSetting) { - mutableStateOf(windDirectionIndicatorTextSettingDropdownOptions.find { option -> option.id == selectedWindDirectionIndicatorTextSetting.id }!!) + val temperatureUnitDropdownOptions = TemperatureUnit.entries.toList().map { unit -> DropdownOption(unit.id, unit.label) } + val temperatureUnitInitialSelection by remember(selectedTemperatureUnit) { + mutableStateOf(temperatureUnitDropdownOptions.find { option -> option.id == selectedTemperatureUnit.id }!!) } - Dropdown(label = "Text on headwind indicator", options = windDirectionIndicatorTextSettingDropdownOptions, selected = windDirectionIndicatorTextSettingSelection) { selectedOption -> - selectedWindDirectionIndicatorTextSetting = WindDirectionIndicatorTextSetting.entries.find { unit -> unit.id == selectedOption.id }!! + Dropdown(label = "Temperature Unit", options = temperatureUnitDropdownOptions, selected = temperatureUnitInitialSelection) { selectedOption -> + selectedTemperatureUnit = TemperatureUnit.entries.find { unit -> unit.id == selectedOption.id }!! } FilledTonalButton(modifier = Modifier .fillMaxWidth() .height(50.dp), onClick = { val newSettings = HeadwindSettings(windUnit = selectedWindUnit, precipitationUnit = selectedPrecipitationUnit, + temperatureUnit = selectedTemperatureUnit, welcomeDialogAccepted = true, windDirectionIndicatorTextSetting = selectedWindDirectionIndicatorTextSetting) coroutineScope.launch { @@ -210,7 +236,10 @@ fun MainScreen() { AlertDialog(onDismissRequest = { }, confirmButton = { Button(onClick = { coroutineScope.launch { - saveSettings(ctx, HeadwindSettings(windUnit = selectedWindUnit, precipitationUnit = selectedPrecipitationUnit, welcomeDialogAccepted = true)) + saveSettings(ctx, HeadwindSettings(windUnit = selectedWindUnit, + precipitationUnit = selectedPrecipitationUnit, + temperatureUnit = selectedTemperatureUnit, + welcomeDialogAccepted = true)) } }) { Text("OK") } }, text = { diff --git a/app/src/main/res/drawable/thermometer.png b/app/src/main/res/drawable/thermometer.png new file mode 100644 index 0000000000000000000000000000000000000000..925d9f186f7cce5cba690794284f7f1b1cc50a84 GIT binary patch literal 17784 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%0D#q&&Fima*4)vCg9bce~c{oLk@ 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 x^nl`Dzqw-euj1tf6-DAf{&@uXM;Z{EC0e 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 pressure at surface in configured unit Weather Current weather conditions + Weather Forecast + Current hourly weather forecast Headwind speed Current headwind speed + Temperature + Current temperature in configured unit \ No newline at end of file diff --git a/app/src/main/res/xml/extension_info.xml b/app/src/main/res/xml/extension_info.xml index 94bda37..4694ea5 100644 --- a/app/src/main/res/xml/extension_info.xml +++ b/app/src/main/res/xml/extension_info.xml @@ -18,6 +18,13 @@ icon="@drawable/ic_launcher" typeId="weather" /> + + + + diff --git a/preview0.png b/preview0.png index d425bd88e5a90191b22174c046c2291eec490612..fa8f21d679524e4d5d7b27b4b4972f6048047ba8 100644 GIT binary patch literal 42225 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 literal 47836 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