Gestion du score

Objectifs

  • Mettre à jour le score de l'utilisateur après la réponse à une question

  • Update le score de l'utilisateur en base de données

Contexte

Une fois que l'utilisateur a répondu à une question nous souhaitons que l'application affiche son score qui incrémente dans le cas d'une bonne réponse et perd un point dans le cas inverse.

Nous devons aussi implémenter une fonction pour mettre à jour l'utilisateur en base de données pour mettre à jour le score.

Pour cela nous devons garder le même sens de circulation des données :

Dao → repository → usecase → viewModel → View

DAO :

Room propose aussi une annotation update qui nous évite d'écrire la requête SQL.

Repository :

useCase :

ViewModel :

Fragment :

On augmente ou on diminue le score de l'utilisateur actuel en fonction d'une bonne ou d'une mauvaise réponse, puis on appelle updateUser du viewmodel pour mettre à jour notre utilisateur en bdd.