PluginState: describe the plugin state machine

Gitlab: #22

Change-Id: Ie85b855d226e80072bf441b556b05708f3e07a76
This commit is contained in:
Xavier Jouslin de Noray 2023-06-21 10:34:36 -04:00 committed by Sébastien Blin
parent 81489ee8a3
commit 59dd2e0b08
3 changed files with 12 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

View File

@ -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)