diff --git a/developer/images/jami-client-class-diagram.png b/developer/images/jami-client-class-diagram.png new file mode 100644 index 0000000..c52eca6 Binary files /dev/null and b/developer/images/jami-client-class-diagram.png differ diff --git a/developer/images/jami-plugin-state-machine.png b/developer/images/jami-plugin-state-machine.png new file mode 100644 index 0000000..6d0e3bd Binary files /dev/null and b/developer/images/jami-plugin-state-machine.png differ diff --git a/developer/plugins-store-jami-client.md b/developer/plugins-store-jami-client.md index 1330eb4..0609568 100644 --- a/developer/plugins-store-jami-client.md +++ b/developer/plugins-store-jami-client.md @@ -37,3 +37,15 @@ If the certificate and file signatures are verified correctly, the daemon procee ![Interactive diagram of Jami Plugin Store](./images/jami-plugins-store-interactive-diagram.png) +### Plugin State + +When a user wants to install a plugin, a visual trigger should be displayed to show the stage of the plugin installation. + +The plugin can be in one of three states: installed, installing, or downloading. To handle all of these cases, a state machine is used to represent all the states of the plugin and the transitions between them. +The network manager and update manager for Windows have been refactored to handle all the states of the plugin during the download process. + +![Refactored NetworkManager and UpdateManager](./images/jami-client-class-diagram.png) + +A routine is triggered each days to check if a plugin is not up to date. The plugin version manager allow us to check and update if necessary plugins. + +![Jami Plugin State Machine](./images/jami-plugin-state-machine.png) \ No newline at end of file