package de.waypointaudio.data import android.content.Context import androidx.datastore.preferences.core.edit import androidx.datastore.preferences.core.longPreferencesKey import androidx.datastore.preferences.preferencesDataStore import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map /** * Speichert den letzten versionCode, für den der Versionshinweis-Dialog * vom Nutzer ausgeblendet wurde. Steigt der versionCode, erscheint der * Dialog automatisch erneut – auch wenn er zuvor deaktiviert wurde. */ private val Context.versionNoticeDataStore by preferencesDataStore(name = "version_notice_settings") class VersionNoticeStore(private val context: Context) { private companion object { val KEY_DISMISSED_VERSION_CODE = longPreferencesKey("dismissed_version_code") } /** Letzter ausgeblendeter versionCode, oder 0 falls noch nie ausgeblendet. */ val dismissedVersionCode: Flow = context.versionNoticeDataStore.data .map { it[KEY_DISMISSED_VERSION_CODE] ?: 0L } suspend fun setDismissedVersionCode(code: Long) { context.versionNoticeDataStore.edit { prefs -> prefs[KEY_DISMISSED_VERSION_CODE] = code } } }