flare: update patches and upstream source
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
From 9ec9203bd47b7369e2a97fee2d6896576da23da0 Mon Sep 17 00:00:00 2001
|
||||
From 7ab41203098dd868ee70249fcd78c8444438d80c Mon Sep 17 00:00:00 2001
|
||||
From: Simon Gardling <titaniumtown@proton.me>
|
||||
Date: Wed, 29 Apr 2026 19:00:12 -0400
|
||||
Subject: [PATCH 1/6] feat(typing): Implement typing indicators
|
||||
@@ -20,15 +20,15 @@ Subject: [PATCH 1/6] feat(typing): Implement typing indicators
|
||||
data/resources/ui/channel_messages.blp | 33 +++
|
||||
data/resources/ui/preferences_window.blp | 15 ++
|
||||
src/backend/channel.rs | 59 +++++-
|
||||
src/backend/manager.rs | 43 +++-
|
||||
src/backend/manager.rs | 32 ++-
|
||||
src/backend/manager_thread.rs | 8 +-
|
||||
src/backend/message/mod.rs | 12 +-
|
||||
src/gui/channel_messages.rs | 249 ++++++++++++++++++++++-
|
||||
src/gui/preferences_window.rs | 23 +++
|
||||
11 files changed, 441 insertions(+), 21 deletions(-)
|
||||
11 files changed, 430 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/CHANGELOG.md b/CHANGELOG.md
|
||||
index 20dc578..2bde927 100644
|
||||
index 20dc578e..2bde927c 100644
|
||||
--- a/CHANGELOG.md
|
||||
+++ b/CHANGELOG.md
|
||||
@@ -6,6 +6,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
@@ -44,7 +44,7 @@ index 20dc578..2bde927 100644
|
||||
|
||||
### Fixed
|
||||
diff --git a/data/de.schmidhuberj.Flare.gschema.xml b/data/de.schmidhuberj.Flare.gschema.xml
|
||||
index 8a58415..0705a73 100644
|
||||
index 8a584152..0705a73e 100644
|
||||
--- a/data/de.schmidhuberj.Flare.gschema.xml
|
||||
+++ b/data/de.schmidhuberj.Flare.gschema.xml
|
||||
@@ -58,6 +58,15 @@
|
||||
@@ -64,7 +64,7 @@ index 8a58415..0705a73 100644
|
||||
<default>"firstname"</default>
|
||||
<summary>How to sort contacts, e.g with "firstname" or "surname"</summary>
|
||||
diff --git a/data/resources/style.css b/data/resources/style.css
|
||||
index dcd0569..00e4783 100644
|
||||
index dcd05695..00e47833 100644
|
||||
--- a/data/resources/style.css
|
||||
+++ b/data/resources/style.css
|
||||
@@ -13,6 +13,12 @@
|
||||
@@ -81,7 +81,7 @@ index dcd0569..00e4783 100644
|
||||
padding:0;
|
||||
}
|
||||
diff --git a/data/resources/ui/channel_messages.blp b/data/resources/ui/channel_messages.blp
|
||||
index 53be7ab..7f438e4 100644
|
||||
index 53be7ab0..7f438e44 100644
|
||||
--- a/data/resources/ui/channel_messages.blp
|
||||
+++ b/data/resources/ui/channel_messages.blp
|
||||
@@ -102,6 +102,39 @@ template $FlChannelMessages: Box {
|
||||
@@ -125,7 +125,7 @@ index 53be7ab..7f438e4 100644
|
||||
styles [
|
||||
"toolbar",
|
||||
diff --git a/data/resources/ui/preferences_window.blp b/data/resources/ui/preferences_window.blp
|
||||
index dd84f74..2068cab 100644
|
||||
index dd84f748..2068cab1 100644
|
||||
--- a/data/resources/ui/preferences_window.blp
|
||||
+++ b/data/resources/ui/preferences_window.blp
|
||||
@@ -66,6 +66,21 @@ template $FlPreferencesWindow: Adw.PreferencesDialog {
|
||||
@@ -151,7 +151,7 @@ index dd84f74..2068cab 100644
|
||||
}
|
||||
|
||||
diff --git a/src/backend/channel.rs b/src/backend/channel.rs
|
||||
index 73e82f3..4bb1d38 100644
|
||||
index 73e82f31..4bb1d385 100644
|
||||
--- a/src/backend/channel.rs
|
||||
+++ b/src/backend/channel.rs
|
||||
@@ -15,8 +15,9 @@ use glib::Bytes;
|
||||
@@ -229,7 +229,7 @@ index 73e82f3..4bb1d38 100644
|
||||
/// This does the following (based on the type of message):
|
||||
/// - Add a quote to the message if needed.
|
||||
diff --git a/src/backend/manager.rs b/src/backend/manager.rs
|
||||
index c25fba0..eaa41e0 100644
|
||||
index 47c3dd42..c9079612 100644
|
||||
--- a/src/backend/manager.rs
|
||||
+++ b/src/backend/manager.rs
|
||||
@@ -8,7 +8,7 @@ use libsignal_service::protocol::DeviceId;
|
||||
@@ -241,22 +241,7 @@ index c25fba0..eaa41e0 100644
|
||||
protocol::ServiceId,
|
||||
sender::{AttachmentSpec, AttachmentUploadError},
|
||||
websocket::account::DeviceInfo,
|
||||
@@ -490,20 +490,42 @@ impl Manager {
|
||||
Thread::Contact(uuid)
|
||||
};
|
||||
|
||||
+ // Fast path: return the cached channel if we already know it.
|
||||
+ // Without this, callers that arrive after initial channel discovery
|
||||
+ // (incoming TypingMessage routing, in particular) would receive a
|
||||
+ // freshly-built Channel object whose property notifications never
|
||||
+ // reach widgets bound to the cached one in the UI — typing
|
||||
+ // indicators on both the header bar and the channel-messages view
|
||||
+ // would silently never light up.
|
||||
+ if let Some(cached) = self.imp().channels.borrow().get(&thread).cloned() {
|
||||
+ return cached;
|
||||
+ }
|
||||
+
|
||||
let contact = Contact::from_service_address(&uuid, self).await;
|
||||
@@ -499,16 +499,27 @@ impl Manager {
|
||||
let channel = Channel::from_contact_or_group(contact, group, self).await;
|
||||
channel.initialize_avatar().await;
|
||||
|
||||
@@ -291,7 +276,7 @@ index c25fba0..eaa41e0 100644
|
||||
}
|
||||
|
||||
pub fn channel_from_thread(&self, thread: Thread) -> Option<Channel> {
|
||||
@@ -737,14 +759,15 @@ impl Manager {
|
||||
@@ -742,14 +753,15 @@ impl Manager {
|
||||
pub(super) async fn send_message_to_group(
|
||||
&self,
|
||||
group_key: Vec<u8>,
|
||||
@@ -310,7 +295,7 @@ index c25fba0..eaa41e0 100644
|
||||
})
|
||||
.await
|
||||
diff --git a/src/backend/manager_thread.rs b/src/backend/manager_thread.rs
|
||||
index 1f6a885..cba62ae 100644
|
||||
index 1f6a8854..cba62ae5 100644
|
||||
--- a/src/backend/manager_thread.rs
|
||||
+++ b/src/backend/manager_thread.rs
|
||||
@@ -21,7 +21,7 @@ use libsignal_service::{
|
||||
@@ -350,7 +335,7 @@ index 1f6a885..cba62ae 100644
|
||||
sender,
|
||||
))
|
||||
diff --git a/src/backend/message/mod.rs b/src/backend/message/mod.rs
|
||||
index 11ccd7c..74952ac 100644
|
||||
index 11ccd7ca..74952acc 100644
|
||||
--- a/src/backend/message/mod.rs
|
||||
+++ b/src/backend/message/mod.rs
|
||||
@@ -270,14 +270,16 @@ impl Message {
|
||||
@@ -376,7 +361,7 @@ index 11ccd7c..74952ac 100644
|
||||
|
||||
let Some(channel) = channel else {
|
||||
diff --git a/src/gui/channel_messages.rs b/src/gui/channel_messages.rs
|
||||
index 0e8ae4e..831fc25 100644
|
||||
index 0d64d25d..2b494a61 100644
|
||||
--- a/src/gui/channel_messages.rs
|
||||
+++ b/src/gui/channel_messages.rs
|
||||
@@ -5,6 +5,16 @@ use crate::ApplicationError;
|
||||
@@ -650,7 +635,7 @@ index 0e8ae4e..831fc25 100644
|
||||
if let Some(active_chan) = self.active_channel.borrow().as_ref() {
|
||||
active_chan.set_property("draft", self.text_entry.text());
|
||||
}
|
||||
@@ -195,6 +430,7 @@ pub mod imp {
|
||||
@@ -202,6 +437,7 @@ pub mod imp {
|
||||
}
|
||||
|
||||
self.obj().focus_input();
|
||||
@@ -658,7 +643,7 @@ index 0e8ae4e..831fc25 100644
|
||||
}
|
||||
|
||||
#[template_callback(function)]
|
||||
@@ -501,7 +737,18 @@ pub mod imp {
|
||||
@@ -508,7 +744,18 @@ pub mod imp {
|
||||
s.obj().set_reply_message(None::<TextMessage>);
|
||||
if let Some(channel) = s.active_channel.borrow().as_ref() {
|
||||
let draft = channel.property("draft");
|
||||
@@ -678,7 +663,7 @@ index 0e8ae4e..831fc25 100644
|
||||
}
|
||||
),
|
||||
diff --git a/src/gui/preferences_window.rs b/src/gui/preferences_window.rs
|
||||
index 8137af7..b2b6405 100644
|
||||
index 8137af7e..b2b64053 100644
|
||||
--- a/src/gui/preferences_window.rs
|
||||
+++ b/src/gui/preferences_window.rs
|
||||
@@ -78,6 +78,11 @@ pub mod imp {
|
||||
|
||||
Reference in New Issue
Block a user