ref #8,9: Replace headwind widget contents with speed next to direction

This commit is contained in:
Tim Kluge 2024-12-12 23:27:12 +01:00
parent 3f1ae6d37f
commit 61317a5b38
2 changed files with 24 additions and 24 deletions

View File

@ -58,7 +58,7 @@ class HeadwindDirectionDataType(
val baseBitmap = BitmapFactory.decodeResource( val baseBitmap = BitmapFactory.decodeResource(
context.resources, context.resources,
de.timklge.karooheadwind.R.drawable.arrow de.timklge.karooheadwind.R.drawable.arrow_0
) )
val configJob = CoroutineScope(Dispatchers.IO).launch { val configJob = CoroutineScope(Dispatchers.IO).launch {

View File

@ -1,14 +1,11 @@
package de.timklge.karooheadwind.datatypes package de.timklge.karooheadwind.datatypes
import android.content.Context
import android.graphics.Bitmap import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.graphics.Canvas import android.graphics.Canvas
import android.graphics.Paint import android.graphics.Paint
import android.util.Log import android.util.Log
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import androidx.glance.ColorFilter import androidx.glance.ColorFilter
@ -16,13 +13,14 @@ import androidx.glance.GlanceModifier
import androidx.glance.Image import androidx.glance.Image
import androidx.glance.ImageProvider import androidx.glance.ImageProvider
import androidx.glance.appwidget.background import androidx.glance.appwidget.background
import androidx.glance.background
import androidx.glance.color.ColorProvider import androidx.glance.color.ColorProvider
import androidx.glance.layout.Alignment import androidx.glance.layout.Alignment
import androidx.glance.layout.Box import androidx.glance.layout.Column
import androidx.glance.layout.ContentScale import androidx.glance.layout.ContentScale
import androidx.glance.layout.Row
import androidx.glance.layout.fillMaxSize import androidx.glance.layout.fillMaxSize
import androidx.glance.layout.padding import androidx.glance.layout.padding
import androidx.glance.layout.width
import androidx.glance.preview.ExperimentalGlancePreviewApi import androidx.glance.preview.ExperimentalGlancePreviewApi
import androidx.glance.preview.Preview import androidx.glance.preview.Preview
import androidx.glance.text.FontFamily import androidx.glance.text.FontFamily
@ -71,26 +69,28 @@ fun getArrowBitmapByBearing(baseBitmap: Bitmap, bearing: Int): Bitmap {
@OptIn(ExperimentalGlancePreviewApi::class) @OptIn(ExperimentalGlancePreviewApi::class)
@Preview(widthDp = 200, heightDp = 150) @Preview(widthDp = 200, heightDp = 150)
@Composable @Composable
fun HeadwindDirection(baseBitmap: Bitmap, bearing: Int, fontSize: Int, overlayText: String) { fun HeadwindDirection(baseBitmap: Bitmap, bearing: Int, fontSize: Int, text: String) {
Box( Row(
modifier = GlanceModifier.fillMaxSize().padding(5.dp), modifier = GlanceModifier.fillMaxSize().padding(5.dp),
contentAlignment = Alignment( verticalAlignment = Alignment.CenterVertically,
vertical = Alignment.Vertical.CenterVertically, horizontalAlignment = Alignment.CenterHorizontally
horizontal = Alignment.Horizontal.CenterHorizontally,
),
) { ) {
Column(verticalAlignment = Alignment.Vertical.CenterVertically) {
Image( Image(
modifier = GlanceModifier.fillMaxSize(), modifier = GlanceModifier.width(60.dp),
provider = ImageProvider(getArrowBitmapByBearing(baseBitmap, bearing)), provider = ImageProvider(getArrowBitmapByBearing(baseBitmap, bearing)),
contentDescription = "Relative wind direction indicator", contentDescription = "Relative wind direction indicator",
contentScale = ContentScale.Fit, contentScale = ContentScale.Fit,
colorFilter = ColorFilter.tint(ColorProvider(Color.Black, Color.White)) colorFilter = ColorFilter.tint(ColorProvider(Color.Black, Color.White))
) )
}
Column(verticalAlignment = Alignment.Vertical.CenterVertically) {
Text( Text(
overlayText, text,
style = TextStyle(ColorProvider(Color.Black, Color.White), fontSize = (0.5 * fontSize).sp, fontFamily = FontFamily.Monospace), style = TextStyle(ColorProvider(Color.Black, Color.White), fontSize = (0.8 * fontSize).sp, fontFamily = FontFamily.Monospace),
modifier = GlanceModifier.background(Color(1f, 1f, 1f, 0.5f), Color(0f, 0f, 0f, 0.5f)).padding(2.dp) modifier = GlanceModifier.background(Color(1f, 1f, 1f, 0.5f), Color(0f, 0f, 0f, 0.5f)).padding(2.dp)
) )
} }
}
} }