package com.dklaw.memorize.database import android.content.Context import androidx.datastore.core.DataStore import androidx.datastore.core.IOException import androidx.datastore.preferences.core.Preferences 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.catch import kotlinx.coroutines.flow.map class DataStoreMemorize(private val context : Context) { private val Context.dataStore : DataStore by preferencesDataStore(name = "appPreferences") private val FILTER_ON = booleanPreferencesKey("FilterOn") // string 저장 키값 // Datastore 읽기 // Flow : coroutines.flow import 해야됨 val valueOfFilter : Flow = context.dataStore.data .map {preferences -> preferences[FILTER_ON] ?: false } // Datastore 쓰기 suspend fun setFilterSwitch(switch : Boolean){ context.dataStore.edit { preferences-> preferences[FILTER_ON] = switch } } }