Labo SharedPreferences (Brocoli 🥦 3ième partie )

Dans ce labo, nous continuerons d'améliorer notre application de liste d'épicerie Brocoli. Nous ajouterons la possibilité pour l'utilisateur de passer du mode clair au mode sombre à l'aide d'une glissière switch. La préférence de l'utilisateur sera par la suite sauvegardé à l'aide de SharedPreferences.

Commencez par cloner votre projet brocoli de Gitlab. Si votre projet n'est pas fonctionnel, vous pouvez utiliser le mien ici :

https://git.dti.crosemont.quebec/pmartel/brocoli-android

Modification de la vue activity_main.xml

La première étape consiste à ajouter un widget de type switch au bas de la page. Par défaut, le mode clair est activé. Lorsque la glissière est cliquée, le mode sombre s'active. Vous pouvez utiliser les émojis 🌞 et 🌛 pour représenter les deux modes.

Ajout de l'écouteur dans MainActivity.kt

Dans votre activité, ajoutez le code pour écouter les clics effectués sur la switch grâce à la méthode setOnCheckedChangeListener.

Voici le code qui vous permet de passer du mode clair au mode sombre et vice-versa:

var mode: Int = AppCompatDelegate.MODE_NIGHT_NO // mode clair
mode = AppCompatDelegate.MODE_NIGHT_YES // mode sombre
AppCompatDelegate.setDefaultNightMode(mode) // appliquer le mode

Sauvegarde et restauration des préférences de l'utilisateur

En vous basant sur le projet démo SharedPreferences, ajoutez le code nécessaire pour enregistrer la préférence utilisateur et restaurer celle-ci lors de la création de l'activité.

Pour tester votre implémentation, vous pouvez redémarrer l'application. La préférence de l'utilisateur doit être restaurée à son dernier état.