From 2591bcbca95ae640a882c70d559653a4191f3073 Mon Sep 17 00:00:00 2001 From: ismailgulek Date: Tue, 13 Sep 2022 15:47:26 +0300 Subject: [PATCH] Fix PR remarks --- bindings/matrix-sdk-ffi/src/api.udl | 4 +-- .../src/authentication_service.rs | 2 +- bindings/matrix-sdk-ffi/src/client.rs | 29 ++++++++----------- bindings/matrix-sdk-ffi/src/lib.rs | 1 + 4 files changed, 16 insertions(+), 20 deletions(-) diff --git a/bindings/matrix-sdk-ffi/src/api.udl b/bindings/matrix-sdk-ffi/src/api.udl index eca28e102..0ab3ce2c1 100644 --- a/bindings/matrix-sdk-ffi/src/api.udl +++ b/bindings/matrix-sdk-ffi/src/api.udl @@ -31,7 +31,7 @@ interface Client { void set_delegate(ClientDelegate? delegate); [Throws=ClientError] - void login(string username, string password, string initial_device_name, string? device_id); + void login(string username, string password, string? initial_device_name, string? device_id); [Throws=ClientError] void restore_login(string restore_token); @@ -181,7 +181,7 @@ interface AuthenticationService { void configure_homeserver(string server_name); [Throws=AuthenticationError] - Client login(string username, string password, string initial_device_name, string? device_id); + Client login(string username, string password, string? initial_device_name, string? device_id); [Throws=AuthenticationError] Client restore_with_access_token(string token, string device_id); diff --git a/bindings/matrix-sdk-ffi/src/authentication_service.rs b/bindings/matrix-sdk-ffi/src/authentication_service.rs index a95b4d26b..ae454ec78 100644 --- a/bindings/matrix-sdk-ffi/src/authentication_service.rs +++ b/bindings/matrix-sdk-ffi/src/authentication_service.rs @@ -96,7 +96,7 @@ impl AuthenticationService { &self, username: String, password: String, - initial_device_name: String, + initial_device_name: Option, device_id: Option, ) -> Result, AuthenticationError> { let client = match &*self.client.read().unwrap() { diff --git a/bindings/matrix-sdk-ffi/src/client.rs b/bindings/matrix-sdk-ffi/src/client.rs index 3c49aba3f..66f46f92d 100644 --- a/bindings/matrix-sdk-ffi/src/client.rs +++ b/bindings/matrix-sdk-ffi/src/client.rs @@ -64,14 +64,14 @@ impl Client { &self, username: String, password: String, - initial_device_name: String, + initial_device_name: Option, device_id: Option, ) -> anyhow::Result<()> { RUNTIME.block_on(async move { - let mut builder = self - .client - .login_username(&username, &password) - .initial_device_display_name(&initial_device_name); + let mut builder = self.client.login_username(&username, &password); + if let Some(initial_device_name) = initial_device_name.as_ref() { + builder = builder.initial_device_display_name(initial_device_name); + } if let Some(device_id) = device_id.as_ref() { builder = builder.device_id(device_id); } @@ -290,8 +290,10 @@ impl Client { /// Log out the current user pub fn logout(&self) -> anyhow::Result<()> { RUNTIME.block_on(async move { - _ = self.client.logout().await; - Ok(()) + match self.client.logout().await { + Ok(_) => Ok(()), + Err(error) => Err(anyhow!(error.to_string())), + } }) } @@ -302,19 +304,12 @@ impl Client { RumaApiError::ClientApi(error), )))) = sync_error { - if matches!(error.kind, ErrorKind::UnknownToken { .. }) { - let is_soft_logout = match error.kind { - ErrorKind::UnknownToken { soft_logout } => soft_logout, - _ => unreachable!(), - }; - - self.state.write().unwrap().is_soft_logout = is_soft_logout; - + if let ErrorKind::UnknownToken { soft_logout } = error.kind { + self.state.write().unwrap().is_soft_logout = soft_logout; if let Some(delegate) = &*self.delegate.read().unwrap() { delegate.did_update_restore_token(); - delegate.did_receive_auth_error(is_soft_logout); + delegate.did_receive_auth_error(soft_logout); } - control = LoopCtrl::Break } } diff --git a/bindings/matrix-sdk-ffi/src/lib.rs b/bindings/matrix-sdk-ffi/src/lib.rs index 214c6a5a8..a66a7cfd9 100644 --- a/bindings/matrix-sdk-ffi/src/lib.rs +++ b/bindings/matrix-sdk-ffi/src/lib.rs @@ -44,6 +44,7 @@ struct RestoreToken { is_guest: bool, homeurl: String, session: Session, + #[serde(default)] is_soft_logout: bool, }