Replace Shared Preferences with Data Store

This commit is contained in:
Kirill Kamakin
2022-04-03 19:55:31 +05:00
parent fd9f7e5aa1
commit b3e25db4df
17 changed files with 244 additions and 144 deletions

View File

@@ -3,5 +3,5 @@ package gq.kirmanak.mealient.data.disclaimer
interface DisclaimerStorage {
suspend fun isDisclaimerAccepted(): Boolean
fun acceptDisclaimer()
suspend fun acceptDisclaimer()
}

View File

@@ -1,29 +1,26 @@
package gq.kirmanak.mealient.data.disclaimer
import android.content.SharedPreferences
import gq.kirmanak.mealient.extensions.getBooleanOrFalse
import gq.kirmanak.mealient.data.storage.PreferencesStorage
import timber.log.Timber
import javax.inject.Inject
import javax.inject.Singleton
private const val IS_DISCLAIMER_ACCEPTED_KEY = "IS_DISCLAIMER_ACCEPTED"
@Singleton
class DisclaimerStorageImpl @Inject constructor(
private val sharedPreferences: SharedPreferences
private val preferencesStorage: PreferencesStorage,
) : DisclaimerStorage {
private val isDisclaimerAcceptedKey by preferencesStorage::isDisclaimerAcceptedKey
override suspend fun isDisclaimerAccepted(): Boolean {
Timber.v("isDisclaimerAccepted() called")
val isAccepted = sharedPreferences.getBooleanOrFalse(IS_DISCLAIMER_ACCEPTED_KEY)
val isAccepted = preferencesStorage.getValue(isDisclaimerAcceptedKey) ?: false
Timber.v("isDisclaimerAccepted() returned: $isAccepted")
return isAccepted
}
override fun acceptDisclaimer() {
override suspend fun acceptDisclaimer() {
Timber.v("acceptDisclaimer() called")
sharedPreferences.edit()
.putBoolean(IS_DISCLAIMER_ACCEPTED_KEY, true)
.apply()
preferencesStorage.storeValues(Pair(isDisclaimerAcceptedKey, true))
}
}