From 8bd1cd6b170596e73be8eeb75274d46e019bf20f Mon Sep 17 00:00:00 2001
From: ganfra <francoisg@element.io>
Date: Fri, 13 Aug 2021 14:54:38 +0200
Subject: [PATCH] Jitsi widget: use state_key instead of widget content

---
 .../timeline/factory/WidgetItemFactory.kt       |  2 +-
 .../timeline/helper/TimelineEventsGroups.kt     | 17 +----------------
 2 files changed, 2 insertions(+), 17 deletions(-)

diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/factory/WidgetItemFactory.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/factory/WidgetItemFactory.kt
index c64bddd370..c405eacc4c 100644
--- a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/factory/WidgetItemFactory.kt
+++ b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/factory/WidgetItemFactory.kt
@@ -70,7 +70,7 @@ class WidgetItemFactory @Inject constructor(
                 null
             }
         }
-        val callStatus = if (isActiveTile && widgetContent.id == params.partialState.jitsiState.widgetId) {
+        val callStatus = if (isActiveTile && params.event.root.stateKey == params.partialState.jitsiState.widgetId) {
             if (params.partialState.jitsiState.hasJoined) {
                 CallTileTimelineItem.CallStatus.IN_CALL
             } else {
diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/helper/TimelineEventsGroups.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/helper/TimelineEventsGroups.kt
index f9b4c7beac..a0caf27cc6 100644
--- a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/helper/TimelineEventsGroups.kt
+++ b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/helper/TimelineEventsGroups.kt
@@ -58,22 +58,7 @@ class TimelineEventsGroups {
         return if (EventType.isCallEvent(type)) {
             (content?.get("call_id") as? String)
         } else if (type == EventType.STATE_ROOM_WIDGET || type == EventType.STATE_ROOM_WIDGET_LEGACY) {
-            val widgetContent: WidgetContent = root.getClearContent().toModel() ?: return null
-            if (widgetContent.isActive()) {
-                widgetContent.getJitsiIdOrNull()
-            } else {
-                val prevWidgetContent: WidgetContent = root.resolvedPrevContent().toModel() ?: return null
-                prevWidgetContent.getJitsiIdOrNull()
-            }
-        } else {
-            null
-        }
-    }
-
-    private fun WidgetContent.getJitsiIdOrNull(): String? {
-        val isJitsi = WidgetType.fromString(type ?: "") == WidgetType.Jitsi
-        return if (isJitsi) {
-            id
+            root.stateKey
         } else {
             null
         }