package de.waypointaudio.data import android.content.Context import androidx.datastore.preferences.core.booleanPreferencesKey import androidx.datastore.preferences.core.edit import androidx.datastore.preferences.preferencesDataStore import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map /** * Persistente Einstellungen des Explorers (v2.2.3). * * Aktuell nur „GPS-Nachführung an/aus". Die Einstellung überlebt * Neustarts und Navigation; eine manuelle Kartenverschiebung darf * den Wert nicht automatisch wieder auf „an" setzen. */ data class ExplorerSettings( val followLocation: Boolean = true, ) private val Context.explorerDataStore by preferencesDataStore(name = "explorer_settings") class ExplorerSettingsStore(private val context: Context) { private companion object { val KEY_FOLLOW = booleanPreferencesKey("follow_location") } val settings: Flow = context.explorerDataStore.data.map { prefs -> ExplorerSettings( followLocation = prefs[KEY_FOLLOW] ?: true ) } suspend fun setFollowLocation(enabled: Boolean) { context.explorerDataStore.edit { prefs -> prefs[KEY_FOLLOW] = enabled } } }