PreferencesModeles.kt 33 lignes · 1164 octets
package fr.ebii.card2vcf.modeles

import android.content.Context
import android.content.SharedPreferences

/** Langues OCR retenues par l'utilisateur et miroir éventuel pour le téléchargement. */
class PreferencesModeles internal constructor(
    private val prefs: SharedPreferences,
) {
    constructor(context: Context) : this(
        context.applicationContext.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE),
    )

    fun languesSelectionnees(): Set<String> =
        prefs.getStringSet(KEY_LANGUES, null) ?: CatalogueModeles.LANGUES_PAR_DEFAUT

    fun setLanguesSelectionnees(langues: Set<String>) {
        prefs.edit().putStringSet(KEY_LANGUES, langues).apply()
    }

    /** null quand aucun miroir n'est configuré : les bases amont s'appliquent. */
    fun miroir(): String? = prefs.getString(KEY_MIROIR, null)?.takeIf { it.isNotBlank() }

    fun setMiroir(url: String?) {
        prefs.edit().putString(KEY_MIROIR, url?.trim().orEmpty()).apply()
    }

    private companion object {
        const val PREFS_NAME = "modeles_locaux"
        const val KEY_LANGUES = "langues_selectionnees"
        const val KEY_MIROIR = "miroir"
    }
}