@@ -6,10 +6,13 @@ import io.homeassistant.companion.android.common.util.AppVersionProvider
66import io.homeassistant.companion.android.di.qualifiers.IsAutomotive
77import io.homeassistant.companion.android.frontend.EvaluateJavascriptUsage
88import io.homeassistant.companion.android.frontend.WebViewAction
9+ import io.homeassistant.companion.android.frontend.addto.FrontendEntityAddToHandler
910import io.homeassistant.companion.android.frontend.download.FrontendDownloadManager
1011import io.homeassistant.companion.android.frontend.externalbus.FrontendExternalBusRepository
1112import io.homeassistant.companion.android.frontend.externalbus.incoming.ConfigGetMessage
1213import io.homeassistant.companion.android.frontend.externalbus.incoming.ConnectionStatusMessage
14+ import io.homeassistant.companion.android.frontend.externalbus.incoming.EntityAddToGetActionsMessage
15+ import io.homeassistant.companion.android.frontend.externalbus.incoming.EntityAddToMessage
1316import io.homeassistant.companion.android.frontend.externalbus.incoming.HandleBlobMessage
1417import io.homeassistant.companion.android.frontend.externalbus.incoming.HapticMessage
1518import io.homeassistant.companion.android.frontend.externalbus.incoming.IncomingExternalBusMessage
@@ -20,6 +23,7 @@ import io.homeassistant.companion.android.frontend.externalbus.incoming.TagWrite
2023import io.homeassistant.companion.android.frontend.externalbus.incoming.ThemeUpdateMessage
2124import io.homeassistant.companion.android.frontend.externalbus.incoming.UnknownIncomingMessage
2225import io.homeassistant.companion.android.frontend.externalbus.outgoing.ConfigResultMessage
26+ import io.homeassistant.companion.android.frontend.externalbus.outgoing.EntityAddToActionsResultMessage
2327import io.homeassistant.companion.android.frontend.js.FrontendJsHandler
2428import io.homeassistant.companion.android.frontend.session.AuthPayload
2529import io.homeassistant.companion.android.frontend.session.ExternalAuthResult
@@ -28,6 +32,7 @@ import io.homeassistant.companion.android.frontend.session.ServerSessionManager
2832import io.homeassistant.companion.android.matter.MatterManager
2933import io.homeassistant.companion.android.thread.ThreadManager
3034import io.homeassistant.companion.android.util.sensitive
35+ import io.homeassistant.companion.android.webview.externalbus.ExternalEntityAddToAction
3136import javax.inject.Inject
3237import kotlinx.coroutines.flow.Flow
3338import kotlinx.coroutines.flow.MutableSharedFlow
@@ -59,6 +64,7 @@ class FrontendMessageHandler @Inject constructor(
5964 private val appVersionProvider : AppVersionProvider ,
6065 private val sessionManager : ServerSessionManager ,
6166 private val downloadManager : FrontendDownloadManager ,
67+ private val entityAddToHandler : FrontendEntityAddToHandler ,
6268 @param:IsAutomotive private val isAutomotive : Boolean ,
6369) : FrontendJsHandler,
6470 FrontendBusObserver {
@@ -188,6 +194,20 @@ class FrontendMessageHandler @Inject constructor(
188194 FrontendHandlerEvent .DownloadCompleted (result)
189195 }
190196
197+ is EntityAddToGetActionsMessage -> {
198+ Timber .d(" Entity add_to get_actions request received for: ${message.payload.entityId} " )
199+ val actions = entityAddToHandler.getActionsForEntity(message.payload.entityId)
200+ externalBusRepository.send(EntityAddToActionsResultMessage (id = message.id, actions = actions))
201+ FrontendHandlerEvent .EntityAddToActionsSent
202+ }
203+
204+ is EntityAddToMessage -> {
205+ Timber .d(" Entity add_to request received for: ${message.payload.entityId} " )
206+ val action = ExternalEntityAddToAction .appPayloadToAction(message.payload.appPayload)
207+ val event = entityAddToHandler.execute(message.payload.entityId, action)
208+ FrontendHandlerEvent .EntityAddToExecuted (event)
209+ }
210+
191211 is UnknownIncomingMessage -> {
192212 Timber .d(" Unknown message type received: ${message.content} " )
193213 FrontendHandlerEvent .UnknownMessage
0 commit comments