From 31d180191262b2e130e5c7463cdd8d12ee7c6c98 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timo=20K=C3=B6sters?= <timo@koesters.xyz>
Date: Tue, 11 Oct 2022 17:10:09 +0200
Subject: [PATCH] fix: workaround for missing avatars on element and rooms
 becoming historical

---
 src/api/client_server/message.rs | 13 +++++++++++++
 src/api/client_server/sync.rs    |  2 ++
 2 files changed, 15 insertions(+)

diff --git a/src/api/client_server/message.rs b/src/api/client_server/message.rs
index e086e4afc..2b5bdf9d1 100644
--- a/src/api/client_server/message.rs
+++ b/src/api/client_server/message.rs
@@ -170,6 +170,9 @@ pub async fn get_message_events_route(
                 .collect();
 
             for (_, event) in &events_after {
+                /* TODO: Remove this when these are resolved:
+                 * https://github.com/vector-im/element-android/issues/3417
+                 * https://github.com/vector-im/element-web/issues/21034
                 if !services().rooms.lazy_loading.lazy_load_was_sent_before(
                     sender_user,
                     sender_device,
@@ -178,6 +181,8 @@ pub async fn get_message_events_route(
                 )? {
                     lazy_loaded.insert(event.sender.clone());
                 }
+                */
+                lazy_loaded.insert(event.sender.clone());
             }
 
             next_token = events_after.last().map(|(count, _)| count).copied();
@@ -210,6 +215,9 @@ pub async fn get_message_events_route(
                 .collect();
 
             for (_, event) in &events_before {
+                /* TODO: Remove this when these are resolved:
+                 * https://github.com/vector-im/element-android/issues/3417
+                 * https://github.com/vector-im/element-web/issues/21034
                 if !services().rooms.lazy_loading.lazy_load_was_sent_before(
                     sender_user,
                     sender_device,
@@ -218,6 +226,8 @@ pub async fn get_message_events_route(
                 )? {
                     lazy_loaded.insert(event.sender.clone());
                 }
+                */
+                lazy_loaded.insert(event.sender.clone());
             }
 
             next_token = events_before.last().map(|(count, _)| count).copied();
@@ -244,6 +254,8 @@ pub async fn get_message_events_route(
         }
     }
 
+    // TODO: enable again when we are sure clients can handle it
+    /*
     if let Some(next_token) = next_token {
         services().rooms.lazy_loading.lazy_load_mark_sent(
             sender_user,
@@ -253,6 +265,7 @@ pub async fn get_message_events_route(
             next_token,
         );
     }
+    */
 
     Ok(resp)
 }
diff --git a/src/api/client_server/sync.rs b/src/api/client_server/sync.rs
index d876a9269..483b32bf8 100644
--- a/src/api/client_server/sync.rs
+++ b/src/api/client_server/sync.rs
@@ -433,6 +433,8 @@ async fn sync_helper(
                 } else if !lazy_load_enabled
                     || body.full_state
                     || timeline_users.contains(&state_key)
+                    // TODO: Delete the following line when this is resolved: https://github.com/vector-im/element-web/issues/22565
+                    || *sender_user == state_key
                 {
                     let pdu = match services().rooms.timeline.get_pdu(&id)? {
                         Some(pdu) => pdu,
-- 
GitLab