Implement login/logout functionality

This commit is contained in:
Kirill Kamakin
2022-04-04 16:42:22 +05:00
parent f44f54522d
commit 468aa8c02a
26 changed files with 248 additions and 184 deletions

View File

@@ -1,6 +1,11 @@
package gq.kirmanak.mealient.data.disclaimer
import kotlinx.coroutines.flow.Flow
interface DisclaimerStorage {
val isDisclaimerAcceptedFlow: Flow<Boolean>
suspend fun isDisclaimerAccepted(): Boolean
suspend fun acceptDisclaimer()

View File

@@ -1,6 +1,9 @@
package gq.kirmanak.mealient.data.disclaimer
import androidx.datastore.preferences.core.Preferences
import gq.kirmanak.mealient.data.storage.PreferencesStorage
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map
import timber.log.Timber
import javax.inject.Inject
import javax.inject.Singleton
@@ -10,7 +13,10 @@ class DisclaimerStorageImpl @Inject constructor(
private val preferencesStorage: PreferencesStorage,
) : DisclaimerStorage {
private val isDisclaimerAcceptedKey by preferencesStorage::isDisclaimerAcceptedKey
private val isDisclaimerAcceptedKey: Preferences.Key<Boolean>
get() = preferencesStorage.isDisclaimerAcceptedKey
override val isDisclaimerAcceptedFlow: Flow<Boolean>
get() = preferencesStorage.valueUpdates(isDisclaimerAcceptedKey).map { it == true }
override suspend fun isDisclaimerAccepted(): Boolean {
Timber.v("isDisclaimerAccepted() called")