From 6756e2111229d9abdf399e825591ac2c05971b33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joris=20Pelgr=C3=B6m?= Date: Sat, 10 Sep 2022 21:18:10 +0200 Subject: [PATCH] Fix template widgets that render null in websocket subscription (#2866) Fix widgets that return null in websocket subscription - Just like in the preview, null is a valid result and should be handled by the app --- .../companion/android/widgets/template/TemplateWidget.kt | 2 +- .../android/common/data/integration/IntegrationRepository.kt | 2 +- .../common/data/integration/impl/IntegrationRepositoryImpl.kt | 2 +- .../common/data/websocket/impl/entities/TemplateUpdatedEvent.kt | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/io/homeassistant/companion/android/widgets/template/TemplateWidget.kt b/app/src/main/java/io/homeassistant/companion/android/widgets/template/TemplateWidget.kt index e5eb8b7c3..59faf964d 100644 --- a/app/src/main/java/io/homeassistant/companion/android/widgets/template/TemplateWidget.kt +++ b/app/src/main/java/io/homeassistant/companion/android/widgets/template/TemplateWidget.kt @@ -286,7 +286,7 @@ class TemplateWidget : AppWidgetProvider() { } } - private fun onTemplateChanged(context: Context, appWidgetId: Int, template: String) { + private fun onTemplateChanged(context: Context, appWidgetId: Int, template: String?) { widgetScope?.launch { val views = getWidgetRemoteViews(context, appWidgetId, template) AppWidgetManager.getInstance(context).updateAppWidget(appWidgetId, views) diff --git a/common/src/main/java/io/homeassistant/companion/android/common/data/integration/IntegrationRepository.kt b/common/src/main/java/io/homeassistant/companion/android/common/data/integration/IntegrationRepository.kt index 6a8e4584e..c6f065106 100644 --- a/common/src/main/java/io/homeassistant/companion/android/common/data/integration/IntegrationRepository.kt +++ b/common/src/main/java/io/homeassistant/companion/android/common/data/integration/IntegrationRepository.kt @@ -15,7 +15,7 @@ interface IntegrationRepository { suspend fun getNotificationRateLimits(): RateLimitResponse suspend fun renderTemplate(template: String, variables: Map): String? - suspend fun getTemplateUpdates(template: String): Flow? + suspend fun getTemplateUpdates(template: String): Flow? suspend fun updateLocation(updateLocation: UpdateLocation) diff --git a/common/src/main/java/io/homeassistant/companion/android/common/data/integration/impl/IntegrationRepositoryImpl.kt b/common/src/main/java/io/homeassistant/companion/android/common/data/integration/impl/IntegrationRepositoryImpl.kt index 609e33f5e..969f6a250 100644 --- a/common/src/main/java/io/homeassistant/companion/android/common/data/integration/impl/IntegrationRepositoryImpl.kt +++ b/common/src/main/java/io/homeassistant/companion/android/common/data/integration/impl/IntegrationRepositoryImpl.kt @@ -179,7 +179,7 @@ class IntegrationRepositoryImpl @Inject constructor( else throw IntegrationException("Error calling integration request render_template") } - override suspend fun getTemplateUpdates(template: String): Flow? { + override suspend fun getTemplateUpdates(template: String): Flow? { return webSocketRepository.getTemplateUpdates(template) ?.map { it.result diff --git a/common/src/main/java/io/homeassistant/companion/android/common/data/websocket/impl/entities/TemplateUpdatedEvent.kt b/common/src/main/java/io/homeassistant/companion/android/common/data/websocket/impl/entities/TemplateUpdatedEvent.kt index 9208cf563..e038ed2ab 100644 --- a/common/src/main/java/io/homeassistant/companion/android/common/data/websocket/impl/entities/TemplateUpdatedEvent.kt +++ b/common/src/main/java/io/homeassistant/companion/android/common/data/websocket/impl/entities/TemplateUpdatedEvent.kt @@ -4,6 +4,6 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties @JsonIgnoreProperties(ignoreUnknown = true) data class TemplateUpdatedEvent( - val result: String, + val result: String?, val listeners: Map )