[fractal/fractal-next] verification: Rename IdentityVerification property mode to state
- From: Julian Sparber <jsparber src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [fractal/fractal-next] verification: Rename IdentityVerification property mode to state
- Date: Thu, 13 Jan 2022 14:34:40 +0000 (UTC)
commit 5a7fc6ae92f0e6ffbe2703cb0c1fc15867d69835
Author: Julian Sparber <julian sparber net>
Date: Fri Jan 7 20:19:51 2022 +0100
verification: Rename IdentityVerification property mode to state
src/session/content/mod.rs | 2 +-
.../content/room_history/verification_info_bar.rs | 12 +--
.../verification/identity_verification_widget.rs | 24 ++---
.../content/verification/session_verification.rs | 26 ++---
src/session/mod.rs | 6 +-
src/session/verification/identity_verification.rs | 113 +++++++++++----------
src/session/verification/mod.rs | 2 +-
src/session/verification/verification_list.rs | 2 +-
8 files changed, 96 insertions(+), 91 deletions(-)
---
diff --git a/src/session/content/mod.rs b/src/session/content/mod.rs
index b8f6f4f6..2f57005a 100644
--- a/src/session/content/mod.rs
+++ b/src/session/content/mod.rs
@@ -220,7 +220,7 @@ impl Content {
if item.is::<IdentityVerification>() {
let handler_id = item.connect_notify_local(
- Some("mode"),
+ Some("state"),
clone!(@weak self as obj => move |request, _| {
let request = request.downcast_ref::<IdentityVerification>().unwrap();
if request.is_finished() {
diff --git a/src/session/content/room_history/verification_info_bar.rs
b/src/session/content/room_history/verification_info_bar.rs
index 212ddd36..10b06ceb 100644
--- a/src/session/content/room_history/verification_info_bar.rs
+++ b/src/session/content/room_history/verification_info_bar.rs
@@ -2,7 +2,7 @@ use adw::subclass::prelude::*;
use gtk::{glib, glib::clone, prelude::*, subclass::prelude::*, CompositeTemplate};
use crate::session::user::UserExt;
-use crate::session::verification::{IdentityVerification, VerificationMode};
+use crate::session::verification::{IdentityVerification, VerificationState};
use gettextrs::gettext;
mod imp {
use super::*;
@@ -20,7 +20,7 @@ mod imp {
#[template_child]
pub button: TemplateChild<gtk::Button>,
pub request: RefCell<Option<IdentityVerification>>,
- pub mode_handler: RefCell<Option<SignalHandlerId>>,
+ pub state_handler: RefCell<Option<SignalHandlerId>>,
pub user_handler: RefCell<Option<SignalHandlerId>>,
}
@@ -115,7 +115,7 @@ impl VerificationInfoBar {
return;
}
- if let Some(handler) = priv_.mode_handler.take() {
+ if let Some(handler) = priv_.state_handler.take() {
old_request.disconnect(handler);
}
@@ -126,13 +126,13 @@ impl VerificationInfoBar {
if let Some(ref request) = request {
let handler = request.connect_notify_local(
- Some("mode"),
+ Some("state"),
clone!(@weak self as obj => move |_, _| {
obj.update_view();
}),
);
- priv_.mode_handler.replace(Some(handler));
+ priv_.state_handler.replace(Some(handler));
let handler = request.user().connect_notify_local(
Some("display-name"),
@@ -155,7 +155,7 @@ impl VerificationInfoBar {
let visible = if let Some(request) = self.request() {
if request.is_finished() {
false
- } else if matches!(request.mode(), VerificationMode::Requested) {
+ } else if matches!(request.state(), VerificationState::Requested) {
// Translators: The value is the display name of the user who wants to be verified
priv_.label.set_markup(&gettext!(
"<b>{}</b> wants to be verified",
diff --git a/src/session/content/verification/identity_verification_widget.rs
b/src/session/content/verification/identity_verification_widget.rs
index f7fc86f4..01d9b134 100644
--- a/src/session/content/verification/identity_verification_widget.rs
+++ b/src/session/content/verification/identity_verification_widget.rs
@@ -8,7 +8,7 @@ use crate::contrib::screenshot;
use crate::contrib::QRCode;
use crate::contrib::QRCodeExt;
use crate::contrib::QrCodeScanner;
-use crate::session::verification::{IdentityVerification, SasData, VerificationMode};
+use crate::session::verification::{IdentityVerification, SasData, VerificationState};
use crate::spawn;
use gettextrs::gettext;
use matrix_sdk::encryption::verification::QrVerificationData;
@@ -55,7 +55,7 @@ mod imp {
pub qr_code_scanner: TemplateChild<QrCodeScanner>,
#[template_child]
pub done_btn: TemplateChild<gtk::Button>,
- pub mode_handler: RefCell<Option<SignalHandlerId>>,
+ pub state_handler: RefCell<Option<SignalHandlerId>>,
}
#[glib::object_subclass]
@@ -224,7 +224,7 @@ mod imp {
fn dispose(&self, obj: &Self::Type) {
if let Some(request) = obj.request() {
- if let Some(handler) = self.mode_handler.take() {
+ if let Some(handler) = self.state_handler.take() {
request.disconnect(handler);
}
}
@@ -267,21 +267,21 @@ impl IdentityVerificationWidget {
self.reset();
if let Some(previous_request) = previous_request {
- if let Some(handler) = priv_.mode_handler.take() {
+ if let Some(handler) = priv_.state_handler.take() {
previous_request.disconnect(handler);
}
}
if let Some(ref request) = request {
let handler = request.connect_notify_local(
- Some("mode"),
+ Some("state"),
clone!(@weak self as obj => move |_, _| {
obj.update_view();
}),
);
self.update_view();
- priv_.mode_handler.replace(Some(handler));
+ priv_.state_handler.replace(Some(handler));
}
priv_.request.replace(request);
@@ -340,11 +340,11 @@ impl IdentityVerificationWidget {
fn update_view(&self) {
let priv_ = imp::IdentityVerificationWidget::from_instance(self);
if let Some(request) = self.request() {
- match request.mode() {
- VerificationMode::Requested => {
+ match request.state() {
+ VerificationState::Requested => {
priv_.main_stack.set_visible_child_name("accept-request");
}
- VerificationMode::QrV1Show => {
+ VerificationState::QrV1Show => {
if let Some(qrcode) = request.qr_code() {
priv_.qrcode.set_qrcode(qrcode.clone());
priv_.main_stack.set_visible_child_name("qrcode");
@@ -353,10 +353,10 @@ impl IdentityVerificationWidget {
request.start_sas();
}
}
- VerificationMode::QrV1Scan => {
+ VerificationState::QrV1Scan => {
self.start_scanning();
}
- VerificationMode::SasV1 => {
+ VerificationState::SasV1 => {
self.clean_emoji();
match request.sas_data().unwrap() {
SasData::Emoji(emoji) => {
@@ -381,7 +381,7 @@ impl IdentityVerificationWidget {
}
priv_.main_stack.set_visible_child_name("emoji");
}
- VerificationMode::Completed => {
+ VerificationState::Completed => {
priv_.main_stack.set_visible_child_name("completed");
}
_ => {}
diff --git a/src/session/content/verification/session_verification.rs
b/src/session/content/verification/session_verification.rs
index b1d927ef..254f184b 100644
--- a/src/session/content/verification/session_verification.rs
+++ b/src/session/content/verification/session_verification.rs
@@ -9,7 +9,7 @@ use crate::contrib::screenshot;
use crate::contrib::QRCode;
use crate::contrib::QRCodeExt;
use crate::contrib::QrCodeScanner;
-use crate::session::verification::{IdentityVerification, SasData, VerificationMode};
+use crate::session::verification::{IdentityVerification, SasData, VerificationState};
use crate::spawn;
use crate::Error;
use crate::Window;
@@ -51,7 +51,7 @@ mod imp {
pub main_stack: TemplateChild<gtk::Stack>,
#[template_child]
pub qr_code_scanner: TemplateChild<QrCodeScanner>,
- pub mode_handler: RefCell<Option<SignalHandlerId>>,
+ pub state_handler: RefCell<Option<SignalHandlerId>>,
}
#[glib::object_subclass]
@@ -217,19 +217,19 @@ impl SessionVerification {
self.reset();
- if let Some(handler) = priv_.mode_handler.take() {
+ if let Some(handler) = priv_.state_handler.take() {
old_request.disconnect(handler);
}
}
let handler = request.connect_notify_local(
- Some("mode"),
+ Some("state"),
clone!(@weak self as obj => move |_, _| {
obj.update_view();
}),
);
- priv_.mode_handler.replace(Some(handler));
+ priv_.state_handler.replace(Some(handler));
priv_.request.replace(Some(request));
}
@@ -269,7 +269,7 @@ impl SessionVerification {
fn silent_cancel(&self) {
let priv_ = imp::SessionVerification::from_instance(self);
- if let Some(handler) = priv_.mode_handler.take() {
+ if let Some(handler) = priv_.state_handler.take() {
self.request().disconnect(handler);
}
@@ -281,15 +281,15 @@ impl SessionVerification {
fn update_view(&self) {
let priv_ = imp::SessionVerification::from_instance(self);
let request = self.request();
- match request.mode() {
+ match request.state() {
// FIXME: we bootstrap on all errors
- VerificationMode::Error => {
+ VerificationState::Error => {
priv_.main_stack.set_visible_child_name("bootstrap");
}
- VerificationMode::Requested | VerificationMode::RequestSend => {
+ VerificationState::Requested | VerificationState::RequestSend => {
priv_.main_stack.set_visible_child_name("wait-for-device");
}
- VerificationMode::QrV1Show => {
+ VerificationState::QrV1Show => {
if let Some(qrcode) = request.qr_code() {
priv_.qrcode.set_qrcode(qrcode.clone());
priv_.main_stack.set_visible_child_name("qrcode");
@@ -298,10 +298,10 @@ impl SessionVerification {
request.start_sas();
}
}
- VerificationMode::QrV1Scan => {
+ VerificationState::QrV1Scan => {
self.start_scanning();
}
- VerificationMode::SasV1 => {
+ VerificationState::SasV1 => {
match request.sas_data().unwrap() {
SasData::Emoji(emoji) => {
for (index, emoji) in emoji.iter().enumerate() {
@@ -326,7 +326,7 @@ impl SessionVerification {
priv_.main_stack.set_visible_child_name("emoji");
}
- VerificationMode::Completed => {
+ VerificationState::Completed => {
priv_.main_stack.set_visible_child_name("completed");
}
_ => {
diff --git a/src/session/mod.rs b/src/session/mod.rs
index 9c848b8e..3f055174 100644
--- a/src/session/mod.rs
+++ b/src/session/mod.rs
@@ -20,7 +20,7 @@ pub use self::room_creation::RoomCreation;
use self::room_list::RoomList;
use self::sidebar::Sidebar;
pub use self::user::{User, UserExt};
-use self::verification::{IdentityVerification, VerificationList, VerificationMode};
+use self::verification::{IdentityVerification, VerificationList, VerificationState};
use crate::session::sidebar::ItemList;
use crate::secret;
@@ -506,9 +506,9 @@ impl Session {
}
request.connect_notify_local(
- Some("mode"),
+ Some("state"),
clone!(@weak self as obj => move |request, _| {
- if request.is_finished() && request.mode() != VerificationMode::Completed {
+ if request.is_finished() && request.state() != VerificationState::Completed {
spawn!(async move {
obj.create_session_verification().await;
});
diff --git a/src/session/verification/identity_verification.rs
b/src/session/verification/identity_verification.rs
index 091c81df..f6ca8738 100644
--- a/src/session/verification/identity_verification.rs
+++ b/src/session/verification/identity_verification.rs
@@ -29,8 +29,8 @@ use tokio::sync::mpsc;
#[derive(Debug, Eq, PartialEq, Clone, Copy, glib::GEnum)]
#[repr(u32)]
-#[genum(type_name = "VerificationMode")]
-pub enum Mode {
+#[genum(type_name = "VerificationState")]
+pub enum State {
Requested,
RequestSend,
SasV1,
@@ -43,7 +43,7 @@ pub enum Mode {
Error,
}
-impl Default for Mode {
+impl Default for State {
fn default() -> Self {
Self::Requested
}
@@ -95,7 +95,7 @@ pub enum MainMessage {
SasData(SasData),
SupportedMethods(SupportedMethods),
CancelInfo(CancelInfo),
- Mode(Mode),
+ State(State),
}
#[derive(Debug)]
@@ -114,7 +114,7 @@ mod imp {
pub struct IdentityVerification {
pub user: OnceCell<User>,
pub session: OnceCell<WeakRef<Session>>,
- pub mode: Cell<Mode>,
+ pub state: Cell<State>,
pub supported_methods: Cell<SupportedMethods>,
pub sync_sender: RefCell<Option<mpsc::Sender<Message>>>,
pub main_sender: RefCell<Option<glib::SyncSender<MainMessage>>>,
@@ -152,11 +152,11 @@ mod imp {
glib::ParamFlags::READWRITE | glib::ParamFlags::CONSTRUCT_ONLY,
),
glib::ParamSpec::new_enum(
- "mode",
- "Mode",
- "The verification mode used",
- Mode::static_type(),
- Mode::default() as i32,
+ "state",
+ "State",
+ "The current state of this verification",
+ State::static_type(),
+ State::default() as i32,
glib::ParamFlags::READABLE | glib::ParamFlags::EXPLICIT_NOTIFY,
),
glib::ParamSpec::new_flags(
@@ -221,7 +221,7 @@ mod imp {
match pspec.name() {
"user" => obj.user().to_value(),
"session" => obj.session().to_value(),
- "mode" => obj.mode().to_value(),
+ "state" => obj.state().to_value(),
"display-name" => obj.display_name().to_value(),
"flow-id" => obj.flow_id().to_value(),
"supported-methods" => obj.supported_methods().to_value(),
@@ -246,7 +246,7 @@ mod imp {
MainMessage::CancelInfo(data) => priv_.cancel_info.set(data).unwrap(),
MainMessage::SasData(data) => priv_.sas_data.set(data).unwrap(),
MainMessage::SupportedMethods(flags) => priv_.supported_methods.set(flags),
- MainMessage::Mode(mode) => obj.set_mode(mode),
+ MainMessage::State(state) => obj.set_state(state),
}
glib::Continue(true)
@@ -283,9 +283,14 @@ glib::wrapper! {
}
impl IdentityVerification {
- fn for_mode(mode: Mode, session: &Session, user: &User, start_time: &glib::DateTime) -> Self {
+ fn for_state(
+ state: State,
+ session: &Session,
+ user: &User,
+ start_time: &glib::DateTime,
+ ) -> Self {
glib::Object::new(&[
- ("mode", &mode),
+ ("state", &state),
("session", session),
("user", user),
("start-time", start_time),
@@ -332,7 +337,7 @@ impl IdentityVerification {
&glib::DateTime::new_now_local().unwrap(),
);
- obj.set_mode(Mode::RequestSend);
+ obj.set_state(State::RequestSend);
return obj;
}
Err(error) => {
@@ -343,8 +348,8 @@ impl IdentityVerification {
error!("Starting a verification failed: Crypto identity wasn't found");
}
- Self::for_mode(
- Mode::Error,
+ Self::for_state(
+ State::Error,
session,
user,
&glib::DateTime::new_now_local().unwrap(),
@@ -374,7 +379,7 @@ impl IdentityVerification {
{
context.start().await
} else {
- Ok(Mode::Error)
+ Ok(State::Error)
}
});
@@ -384,11 +389,11 @@ impl IdentityVerification {
if let Some(obj) = weak_obj.upgrade() {
let priv_ = imp::IdentityVerification::from_instance(&obj);
match result {
- Ok(result) => obj.set_mode(result),
+ Ok(result) => obj.set_state(result),
Err(error) => {
// FIXME: report error to the user
error!("Verification failed: {}", error);
- obj.set_mode(Mode::Error);
+ obj.set_state(State::Error);
}
}
priv_.sync_sender.take();
@@ -495,32 +500,32 @@ impl IdentityVerification {
}
}
- pub fn mode(&self) -> Mode {
+ pub fn state(&self) -> State {
let priv_ = imp::IdentityVerification::from_instance(self);
- priv_.mode.get()
+ priv_.state.get()
}
- fn set_mode(&self, mode: Mode) {
+ fn set_state(&self, state: State) {
let priv_ = imp::IdentityVerification::from_instance(self);
- if self.mode() == mode {
+ if self.state() == state {
return;
}
- match mode {
- Mode::Cancelled | Mode::Error => self.show_error(),
+ match state {
+ State::Cancelled | State::Error => self.show_error(),
_ => {}
}
- priv_.mode.set(mode);
- self.notify("mode");
+ priv_.state.set(state);
+ self.notify("state");
}
/// Whether this request is finished
pub fn is_finished(&self) -> bool {
matches!(
- self.mode(),
- Mode::Error | Mode::Cancelled | Mode::Dismissed | Mode::Completed | Mode::Passive
+ self.state(),
+ State::Error | State::Cancelled | State::Dismissed | State::Completed | State::Passive
)
}
@@ -649,7 +654,7 @@ impl IdentityVerification {
}
pub fn dismiss(&self) {
- self.set_mode(Mode::Dismissed);
+ self.set_state(State::Dismissed);
}
/// Get information about why the request was cancelled
@@ -688,7 +693,7 @@ macro_rules! wait {
}
if $this.request.is_passive() {
- return Ok(Mode::Passive);
+ return Ok(State::Passive);
}
$(
@@ -702,7 +707,7 @@ macro_rules! wait {
if let Some(info) = $this.request.cancel_info() {
$this.send_cancel_info(info);
}
- return Ok(Mode::Cancelled);
+ return Ok(State::Cancelled);
},
Message::UserAction(UserAction::Cancel) | Message::UserAction(UserAction::NotMatch) => {
return Ok($this.cancel_request().await?);
@@ -719,7 +724,7 @@ macro_rules! wait {
},
Message::UserAction(UserAction::Match) => {
if $this.request.is_passive() {
- return Ok(Mode::Passive);
+ return Ok(State::Passive);
}
// Break only if we are in the expected state
@@ -746,7 +751,7 @@ macro_rules! wait_without_scanning_sas {
{
loop {
if $this.request.is_passive() {
- return Ok(Mode::Passive);
+ return Ok(State::Passive);
}
$(
@@ -760,7 +765,7 @@ macro_rules! wait_without_scanning_sas {
if let Some(info) = $this.request.cancel_info() {
$this.send_cancel_info(info);
}
- return Ok(Mode::Cancelled);
+ return Ok(State::Cancelled);
},
Message::UserAction(UserAction::Cancel) => {
return Ok($this.cancel_request().await?);
@@ -775,7 +780,7 @@ macro_rules! wait_without_scanning_sas {
},
Message::UserAction(UserAction::Match) => {
if $this.request.is_passive() {
- return Ok(Mode::Passive);
+ return Ok(State::Passive);
}
// Break only if we are in the expected state
@@ -811,8 +816,8 @@ impl Context {
})
}
- fn send_mode(&self, mode: Mode) {
- self.main_sender.send(MainMessage::Mode(mode)).unwrap();
+ fn send_state(&self, state: State) {
+ self.main_sender.send(MainMessage::State(state)).unwrap();
}
fn send_qr_code(&self, qr_code: QrCode) {
@@ -835,13 +840,13 @@ impl Context {
.unwrap();
}
- async fn start(mut self) -> Result<Mode, RequestVerificationError> {
+ async fn start(mut self) -> Result<State, RequestVerificationError> {
if self.request.we_started() {
wait![self, self.request.is_ready()];
} else {
// Check if it was started by somebody else already
if self.request.is_passive() {
- return Ok(Mode::Passive);
+ return Ok(State::Passive);
}
// Wait for the user to accept or cancel the request
@@ -878,14 +883,14 @@ impl Context {
if let Ok(qr_code) = request.to_qr_code() {
self.send_qr_code(qr_code);
} else {
- return Ok(Mode::Error);
+ return Ok(State::Error);
}
- self.send_mode(Mode::QrV1Show);
+ self.send_state(State::QrV1Show);
request
} else if supported_methods.contains(SupportedMethods::QR_SCAN) {
- self.send_mode(Mode::QrV1Scan);
+ self.send_state(State::QrV1Scan);
// Wait for scanned data
wait![self];
@@ -900,13 +905,13 @@ impl Context {
wait![self, request.is_done()];
- Ok(Mode::Completed)
+ Ok(State::Completed)
}
async fn finish_scanning(
mut self,
data: QrVerificationData,
- ) -> Result<Mode, RequestVerificationError> {
+ ) -> Result<State, RequestVerificationError> {
let request = self
.request
.scan_qr_code(data)
@@ -918,10 +923,10 @@ impl Context {
wait_without_scanning_sas![self, request.is_done()];
- Ok(Mode::Completed)
+ Ok(State::Completed)
}
- async fn start_sas(self) -> Result<Mode, RequestVerificationError> {
+ async fn start_sas(self) -> Result<State, RequestVerificationError> {
let request = self
.request
.start_sas()
@@ -935,7 +940,7 @@ impl Context {
async fn continue_sas(
mut self,
request: SasVerification,
- ) -> Result<Mode, RequestVerificationError> {
+ ) -> Result<State, RequestVerificationError> {
request.accept().await?;
wait_without_scanning_sas![self, request.can_be_presented()];
@@ -945,11 +950,11 @@ impl Context {
} else if let Some(decimal) = request.decimals() {
SasData::Decimal(decimal)
} else {
- return Ok(Mode::Error);
+ return Ok(State::Error);
};
self.send_sas_data(sas_data);
- self.send_mode(Mode::SasV1);
+ self.send_state(State::SasV1);
// Wait for match user action
wait_without_scanning_sas![self];
@@ -958,16 +963,16 @@ impl Context {
wait_without_scanning_sas![self, request.is_done()];
- Ok(Mode::Completed)
+ Ok(State::Completed)
}
- async fn cancel_request(self) -> Result<Mode, RequestVerificationError> {
+ async fn cancel_request(self) -> Result<State, RequestVerificationError> {
self.request.cancel().await?;
if let Some(info) = self.request.cancel_info() {
self.send_cancel_info(info);
}
- Ok(Mode::Cancelled)
+ Ok(State::Cancelled)
}
}
diff --git a/src/session/verification/mod.rs b/src/session/verification/mod.rs
index aa355ff5..39a1b57f 100644
--- a/src/session/verification/mod.rs
+++ b/src/session/verification/mod.rs
@@ -1,7 +1,7 @@
mod identity_verification;
mod verification_list;
-pub use self::identity_verification::{IdentityVerification, Mode as VerificationMode, SasData};
+pub use self::identity_verification::{IdentityVerification, SasData, State as VerificationState};
pub use self::verification_list::{FlowId, VerificationList};
use std::time::Duration;
diff --git a/src/session/verification/verification_list.rs b/src/session/verification/verification_list.rs
index 8363fb4d..d3f9830e 100644
--- a/src/session/verification/verification_list.rs
+++ b/src/session/verification/verification_list.rs
@@ -207,7 +207,7 @@ impl VerificationList {
let mut list = priv_.list.borrow_mut();
let length = list.len();
request.connect_notify_local(
- Some("mode"),
+ Some("state"),
clone!(@weak self as obj => move |request, _| {
if request.is_finished() {
obj.remove(request);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]