package soy.iko.opencode.data.repo import android.content.Context import androidx.datastore.preferences.core.edit import androidx.datastore.preferences.core.stringPreferencesKey import androidx.datastore.preferences.preferencesDataStore import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map enum class ThemeMode { SYSTEM, LIGHT, DARK } private val Context.settingsDataStore by preferencesDataStore(name = "settings") /** Small app-preferences store (theme mode for now; default agent etc. can join later). */ class SettingsStore(context: Context) { private val appContext = context.applicationContext private val themeKey = stringPreferencesKey("theme_mode") val themeMode: Flow = appContext.settingsDataStore.data.map { prefs -> runCatching { ThemeMode.valueOf(prefs[themeKey] ?: ThemeMode.SYSTEM.name) } .getOrDefault(ThemeMode.SYSTEM) } suspend fun setThemeMode(mode: ThemeMode) { appContext.settingsDataStore.edit { it[themeKey] = mode.name } } }