Skip to content

Commit a8cbc35

Browse files
authored
Indicate encryption state of room in messagebar (#522)
1 parent dfa0937 commit a8cbc35

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

src/windows/room/chat.rs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ use std::path::{Path, PathBuf};
77

88
use edit::edit_with_builder as external_edit;
99
use edit::Builder;
10+
use matrix_sdk::EncryptionState;
1011
use modalkit::editing::store::RegisterError;
12+
use ratatui::style::{Color, Style};
1113
use std::process::Command;
1214
use tokio;
1315
use url::Url;
@@ -975,7 +977,16 @@ impl StatefulWidget for Chat<'_> {
975977
Paragraph::new(desc_spans).render(descarea, buf);
976978
}
977979

978-
let prompt = if self.focused { "> " } else { " " };
980+
let prompt = match (self.focused, state.room().encryption_state()) {
981+
(false, _) => Span::raw(" "),
982+
(_, EncryptionState::Encrypted) => {
983+
Span::styled("\u{1F512}\u{FE0E} ", Style::new().fg(Color::LightGreen))
984+
},
985+
(_, EncryptionState::NotEncrypted) => {
986+
Span::styled("\u{1F513}\u{FE0E} ", Style::new().fg(Color::Red))
987+
},
988+
(_, EncryptionState::Unknown) => Span::styled("> ", Style::new().fg(Color::Red)),
989+
};
979990

980991
let tbox = TextBox::new().prompt(prompt);
981992
tbox.render(textarea, buf, &mut state.tbox);

src/worker.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,9 @@ async fn load_older_one(
283283
limit: u32,
284284
) -> MessageFetchResult {
285285
if let Some(room) = client.get_room(room_id) {
286+
// Update cached encryption state. This is a noop if the state is already cached.
287+
let _ = room.request_encryption_state().await;
288+
286289
let mut opts = match &fetch_id {
287290
Some(id) => MessagesOptions::backward().from(id.as_str()),
288291
None => MessagesOptions::backward(),

0 commit comments

Comments
 (0)