mirror of
https://github.com/ckaczor/HomeMonitor.git
synced 2026-01-13 17:22:54 -05:00
More work on weather display
This commit is contained in:
@@ -22,7 +22,7 @@ buildscript {
|
||||
mavenCentral()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:7.0.2'
|
||||
classpath 'com.android.tools.build:gradle:7.1.2'
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,9 @@ import java.net.URL
|
||||
import java.sql.Timestamp
|
||||
|
||||
data class WeatherStatus(
|
||||
@Json(name = "temperature")
|
||||
val temperature: Double,
|
||||
|
||||
@Json(name = "humidity")
|
||||
val humidity: Double,
|
||||
|
||||
|
||||
@@ -31,8 +31,9 @@ private val VERTICAL_SPACING_HEIGHT = dp(8f)
|
||||
|
||||
// identifiers
|
||||
private const val ID_IMAGE_REFRESH = "image_refresh"
|
||||
private const val ID_IMAGE_GENERATION = "image_generation"
|
||||
private const val ID_IMAGE_CONSUMPTION = "image_consumption"
|
||||
private const val ID_IMAGE_TEMPERATURE = "image_temperature"
|
||||
private const val ID_IMAGE_HUMIDITY = "image_humidity"
|
||||
private const val ID_IMAGE_PRESSURE = "image_pressure"
|
||||
private const val ID_CLICK_REFRESH = "click_refresh"
|
||||
|
||||
class WeatherTileService : TileService() {
|
||||
@@ -72,16 +73,25 @@ class WeatherTileService : TileService() {
|
||||
).build()
|
||||
)
|
||||
.addIdToImageMapping(
|
||||
ID_IMAGE_GENERATION,
|
||||
ID_IMAGE_HUMIDITY,
|
||||
ImageResource.Builder()
|
||||
.setAndroidResourceByResId(
|
||||
AndroidImageResourceByResId.Builder()
|
||||
.setResourceId(R.drawable.ic_sun)
|
||||
.setResourceId(R.drawable.ic_humidity)
|
||||
.build()
|
||||
).build()
|
||||
)
|
||||
.addIdToImageMapping(
|
||||
ID_IMAGE_CONSUMPTION,
|
||||
ID_IMAGE_TEMPERATURE,
|
||||
ImageResource.Builder()
|
||||
.setAndroidResourceByResId(
|
||||
AndroidImageResourceByResId.Builder()
|
||||
.setResourceId(R.drawable.ic_temperature)
|
||||
.build()
|
||||
).build()
|
||||
)
|
||||
.addIdToImageMapping(
|
||||
ID_IMAGE_PRESSURE,
|
||||
ImageResource.Builder()
|
||||
.setAndroidResourceByResId(
|
||||
AndroidImageResourceByResId.Builder()
|
||||
@@ -103,17 +113,21 @@ class WeatherTileService : TileService() {
|
||||
.addContent(
|
||||
Column.Builder()
|
||||
.addContent(
|
||||
generationLayout(goalProgress?.humidity ?: -1.0, deviceParameters)
|
||||
temperatureLayout(goalProgress?.temperature ?: -1.0, deviceParameters)
|
||||
)
|
||||
|
||||
.addContent(
|
||||
humidityLayout(goalProgress?.humidity ?: -1.0, deviceParameters)
|
||||
)
|
||||
.addContent(
|
||||
consumptionLayout(goalProgress?.pressure ?: -1.0, deviceParameters)
|
||||
pressureLayout((goalProgress?.pressure ?: -100.0) / 100, deviceParameters)
|
||||
)
|
||||
.addContent(Spacer.Builder().setHeight(VERTICAL_SPACING_HEIGHT).build())
|
||||
.addContent(refreshButton())
|
||||
.build()
|
||||
).build()
|
||||
|
||||
private fun generationLayout(generation: Double, deviceParameters: DeviceParameters) =
|
||||
private fun temperatureLayout(temperature: Double, deviceParameters: DeviceParameters) =
|
||||
Row.Builder()
|
||||
.addContent(
|
||||
Image.Builder()
|
||||
@@ -131,17 +145,17 @@ class WeatherTileService : TileService() {
|
||||
)
|
||||
.build()
|
||||
)
|
||||
.setResourceId(ID_IMAGE_GENERATION)
|
||||
.setResourceId(ID_IMAGE_TEMPERATURE)
|
||||
.build()
|
||||
)
|
||||
.addContent(
|
||||
Text.Builder()
|
||||
.setText(if (generation <= 0) "0" else generation.toString())
|
||||
.setText(String.format("%.02f", temperature))
|
||||
.setFontStyle(FontStyles.display3(deviceParameters).build())
|
||||
.build()
|
||||
).build()
|
||||
|
||||
private fun consumptionLayout(consumption: Double, deviceParameters: DeviceParameters) =
|
||||
private fun humidityLayout(humidity: Double, deviceParameters: DeviceParameters) =
|
||||
Row.Builder()
|
||||
.addContent(
|
||||
Image.Builder()
|
||||
@@ -159,12 +173,40 @@ class WeatherTileService : TileService() {
|
||||
)
|
||||
.build()
|
||||
)
|
||||
.setResourceId(ID_IMAGE_CONSUMPTION)
|
||||
.setResourceId(ID_IMAGE_HUMIDITY)
|
||||
.build()
|
||||
)
|
||||
.addContent(
|
||||
Text.Builder()
|
||||
.setText(if (consumption <= 0) "0" else consumption.toString())
|
||||
.setText(if (humidity <= 0) "0" else String.format("%.02f", humidity))
|
||||
.setFontStyle(FontStyles.display3(deviceParameters).build())
|
||||
.build()
|
||||
).build()
|
||||
|
||||
private fun pressureLayout(pressure: Double, deviceParameters: DeviceParameters) =
|
||||
Row.Builder()
|
||||
.addContent(
|
||||
Image.Builder()
|
||||
.setHeight(dp(36f))
|
||||
.setWidth(dp(36f))
|
||||
.setModifiers(
|
||||
Modifiers.Builder()
|
||||
.setPadding(
|
||||
Padding.Builder()
|
||||
.setStart(dp(0f))
|
||||
.setEnd(dp(10f))
|
||||
.setTop(dp(1f))
|
||||
.setBottom(dp(0f))
|
||||
.build()
|
||||
)
|
||||
.build()
|
||||
)
|
||||
.setResourceId(ID_IMAGE_PRESSURE)
|
||||
.build()
|
||||
)
|
||||
.addContent(
|
||||
Text.Builder()
|
||||
.setText(if (pressure <= 0) "0" else String.format("%.02f", pressure))
|
||||
.setFontStyle(FontStyles.display3(deviceParameters).build())
|
||||
.build()
|
||||
).build()
|
||||
|
||||
10
WearOS/src/src/main/res/drawable/ic_humidity.xml
Normal file
10
WearOS/src/src/main/res/drawable/ic_humidity.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M12,2c-5.33,4.55 -8,8.48 -8,11.8c0,4.98 3.8,8.2 8,8.2s8,-3.22 8,-8.2C20,10.48 17.33,6.55 12,2zM12,20c-3.35,0 -6,-2.57 -6,-6.2c0,-2.34 1.95,-5.44 6,-9.14c4.05,3.7 6,6.79 6,9.14C18,17.43 15.35,20 12,20zM7.83,14c0.37,0 0.67,0.26 0.74,0.62c0.41,2.22 2.28,2.98 3.64,2.87c0.43,-0.02 0.79,0.32 0.79,0.75c0,0.4 -0.32,0.73 -0.72,0.75c-2.13,0.13 -4.62,-1.09 -5.19,-4.12C7.01,14.42 7.37,14 7.83,14z"/>
|
||||
</vector>
|
||||
10
WearOS/src/src/main/res/drawable/ic_temperature.xml
Normal file
10
WearOS/src/src/main/res/drawable/ic_temperature.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M15,13L15,5c0,-1.66 -1.34,-3 -3,-3S9,3.34 9,5v8c-1.21,0.91 -2,2.37 -2,4 0,2.76 2.24,5 5,5s5,-2.24 5,-5c0,-1.63 -0.79,-3.09 -2,-4zM11,5c0,-0.55 0.45,-1 1,-1s1,0.45 1,1h-1v1h1v2h-1v1h1v2h-2L11,5z"/>
|
||||
</vector>
|
||||
Reference in New Issue
Block a user