From 6363cd5902c4aa0418bb42c989a2af529d0936bf Mon Sep 17 00:00:00 2001 From: Daniel Abramov Date: Wed, 18 Oct 2023 11:57:49 +0200 Subject: [PATCH] widget: extract capability negotiation into fn We will need to re-use it when processing the `ContentLoaded` message from a widget. --- crates/matrix-sdk/src/widget/machine/mod.rs | 33 +++++++++++---------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/crates/matrix-sdk/src/widget/machine/mod.rs b/crates/matrix-sdk/src/widget/machine/mod.rs index 405be3941..c70e92646 100644 --- a/crates/matrix-sdk/src/widget/machine/mod.rs +++ b/crates/matrix-sdk/src/widget/machine/mod.rs @@ -75,21 +75,7 @@ impl WidgetMachine { }; if !init_on_content_load { - machine - .send_to_widget_request(RequestPermissions {}) - // TODO: Each request can actually fail here, take this into an account. - .then(|desired_permissions, machine| { - machine - .send_matrix_driver_request(AcquirePermissions { - desired_permissions: desired_permissions.clone(), - }) - .then(|granted_permissions, machine| { - machine.send_to_widget_request(NotifyPermissionsChanged { - approved: granted_permissions, - requested: desired_permissions, - }); - }) - }); + machine.negotiate_capabilities(); } (machine, actions_receiver) @@ -249,6 +235,23 @@ impl WidgetMachine { trace!("No response_fn registered"); } } + + fn negotiate_capabilities(&mut self) { + self.send_to_widget_request(RequestPermissions {}) + // TODO: Each request can actually fail here, take this into an account. + .then(|desired_permissions, machine| { + machine + .send_matrix_driver_request(AcquirePermissions { + desired_permissions: desired_permissions.clone(), + }) + .then(|granted_permissions, machine| { + machine.send_to_widget_request(NotifyPermissionsChanged { + approved: granted_permissions, + requested: desired_permissions, + }); + }) + }); + } } type ToWidgetResponseFn = Box, &mut WidgetMachine) + Send>;