Add logging to datastore

This commit is contained in:
Kirill Kamakin
2022-08-05 20:19:05 +02:00
parent 107bb64256
commit a299b40c4c
3 changed files with 15 additions and 9 deletions

View File

@@ -15,6 +15,8 @@ android {
} }
dependencies { dependencies {
implementation(project(":logging"))
implementation(libs.androidx.datastore.preferences) implementation(libs.androidx.datastore.preferences)
implementation(libs.androidx.datastore.datastore) implementation(libs.androidx.datastore.datastore)

View File

@@ -6,7 +6,7 @@ interface AddRecipeStorage {
val updates: Flow<AddRecipeDraft> val updates: Flow<AddRecipeDraft>
suspend fun save(addRecipeRequest: AddRecipeDraft) suspend fun save(addRecipeDraft: AddRecipeDraft)
suspend fun clear() suspend fun clear()
} }

View File

@@ -1,6 +1,7 @@
package gq.kirmanak.mealient.datastore.recipe package gq.kirmanak.mealient.datastore.recipe
import androidx.datastore.core.DataStore import androidx.datastore.core.DataStore
import gq.kirmanak.mealient.logging.Logger
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.map
import javax.inject.Inject import javax.inject.Inject
@@ -9,6 +10,7 @@ import javax.inject.Singleton
@Singleton @Singleton
class AddRecipeStorageImpl @Inject constructor( class AddRecipeStorageImpl @Inject constructor(
private val dataStore: DataStore<AddRecipeInput>, private val dataStore: DataStore<AddRecipeInput>,
private val logger: Logger,
) : AddRecipeStorage { ) : AddRecipeStorage {
override val updates: Flow<AddRecipeDraft> override val updates: Flow<AddRecipeDraft>
@@ -24,20 +26,22 @@ class AddRecipeStorageImpl @Inject constructor(
) )
} }
override suspend fun save(addRecipeRequest: AddRecipeDraft) { override suspend fun save(addRecipeDraft: AddRecipeDraft) {
logger.v { "save() called with: addRecipeDraft = $addRecipeDraft" }
val input = AddRecipeInput.newBuilder() val input = AddRecipeInput.newBuilder()
.setRecipeName(addRecipeRequest.recipeName) .setRecipeName(addRecipeDraft.recipeName)
.setRecipeDescription(addRecipeRequest.recipeDescription) .setRecipeDescription(addRecipeDraft.recipeDescription)
.setRecipeYield(addRecipeRequest.recipeYield) .setRecipeYield(addRecipeDraft.recipeYield)
.setIsRecipePublic(addRecipeRequest.isRecipePublic) .setIsRecipePublic(addRecipeDraft.isRecipePublic)
.setAreCommentsDisabled(addRecipeRequest.areCommentsDisabled) .setAreCommentsDisabled(addRecipeDraft.areCommentsDisabled)
.addAllRecipeIngredients(addRecipeRequest.recipeIngredients) .addAllRecipeIngredients(addRecipeDraft.recipeIngredients)
.addAllRecipeInstructions(addRecipeRequest.recipeInstructions) .addAllRecipeInstructions(addRecipeDraft.recipeInstructions)
.build() .build()
dataStore.updateData { input } dataStore.updateData { input }
} }
override suspend fun clear() { override suspend fun clear() {
logger.v { "clear() called" }
dataStore.updateData { AddRecipeInput.getDefaultInstance() } dataStore.updateData { AddRecipeInput.getDefaultInstance() }
} }
} }