Nantes Université

Skip to content
Extraits de code Groupes Projets
Valider 6aa7ef66 rédigé par FlorianGandon's avatar FlorianGandon
Parcourir les fichiers

add persistant Favorite

parent a7102375
Aucune branche associée trouvée
Aucune étiquette associée trouvée
1 requête de fusion!23Merge branch 'florian.G' into 'main'
......@@ -6,6 +6,7 @@ import android.widget.Button
import android.widget.ImageButton
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import com.example.tdsaeandroid.favourites.FavouritesData
class MainActivity : AppCompatActivity() {
......@@ -35,6 +36,8 @@ class MainActivity : AppCompatActivity() {
btFav.setOnClickListener {
startFavoritesActivity()
}
FavouritesData.init(this)
}
private fun startMediasActivity(type: ActivityType) {
......
package com.example.tdsaeandroid.favourites
import android.content.Context
import android.content.Context.MODE_PRIVATE
import android.content.SharedPreferences
import com.example.tdsaeandroid.json
import com.example.tdsaeandroid.model.media.MediaInList
import kotlinx.serialization.encodeToString
object FavouritesData {
private val favorites = mutableListOf<MediaInList>()
private lateinit var sharedPreferences: SharedPreferences
fun init(context: Context) {
sharedPreferences = context.getSharedPreferences("Favourites", MODE_PRIVATE)
if (!sharedPreferences.contains("favourites")) {
write(mutableListOf())
}
}
fun addFavorite(media: MediaInList) {
val favorites = getFavorites()
if (!inFavorites(media)) {
favorites.add(media)
}
write(favorites)
}
fun removeFavorite(media: MediaInList) {
val favorites = getFavorites()
if (inFavorites(media)) {
favorites.remove(media)
}
write(favorites)
}
fun getFavorites(): List<MediaInList> {
return favorites
fun getFavorites(): MutableList<MediaInList> {
val savedName = sharedPreferences.getString("favourites", "") ?: ""
return json.decodeFromString(savedName)
}
fun inFavorites(media: MediaInList): Boolean {
val favorites = getFavorites()
return media in favorites
}
private fun write(favorites: List<MediaInList>) {
val editor = sharedPreferences.edit()
editor.putString("favourites", json.encodeToString(favorites))
editor.apply()
}
}
\ No newline at end of file
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter