@ -659,6 +659,43 @@ Notre sérialisation permet de sauvegarder nos données dans des fichiers *XML*
Cette méthode est appelée lorsque l'utilisateur démarre l'application *Linaris* (MAUI). Celle-ci appelle ensuite les différentes fonctions de chargement codées en *C#* présentes dans la classe *LinqXmlSerialization*. Grâce à la bibliothèque **LINQ_XML**, la sérialisation peut récupérer les données présentes dans les différents fichiers pour les classes **Artist**, **CustomTitle** et **Playlist** et les mettre dans les différentes *ObservableCollection*. Pour les classes **InfoTitle** et **Album**, les données sont récupérées dans les collections des stubs correspondant et les mettre dans les différentes *ObservableCollection*. Les données sont ensuite utilisables par les vues via le **manager**.
### NextTitle()
```plantuml
@startuml
autonumber
actor Utilisateur as user
participant Front as vues
participant Manager as man
participant Playlist as play
group NextTitle
user -> vues : Clique sur le bouton suivant
vues -> man : Appelle la fonction NextTitle
alt currentPlaylist == null
vues <--man:neretournerien
else currentPlaylist != null
man -> play : Demande le titre suivant
alt loop == true
man <--play:retourneletitreactuel
else loop == false and shuffle == true
man <--play:retourneuntitrealéatoiredelaplaylist(indexentre0etlatailledelaplaylist)
else loop == false and shuffle == false
man <--play:retourneletitresuivant(index+1)
end
vues <--man:retourneletitre
user <--vues:joueletitre
end
end
@enduml
```
#### Explications
Lorsque l'utilisateur clique sur le bouton **suivant**, la fonction **NextTitle** de la classe C# *Manager* est appelée. Si la variable *currentPlaylist* est initialisée,
la fonction **NextTitle** de la classe *Playlist* est appelée. Si le booléen *loop* est vrai, la fonction retourne le titre actuel. Si le booléen *loop* est faux et le booléen *shuffle* est vrai,
la fonction retourne un titre aléatoire en générant un nombre aléatoire compris entre 0 et la taille de la playlist (nombre de titres) grâce à la fonction **RandomGenerator** de la playlist.
À l'inverse, si le booléen *shuffle* est faux, la fonction retourne le titre suivant en incrémentant de 1 l'index du son actuel.