From 265dfbbbe78935e690799d673510cf4bbe39c28d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillermo=20Merino=20Jim=C3=A9nez?= Date: Wed, 10 May 2023 10:38:26 +0200 Subject: [PATCH] Mark as overriden whenever there is something stored (#32) * Fixing TextFields * Clearing the field * Clean * Fix lint & detekt * Mark as overriden when there is a value stored, even if it is the same (makes sense for booleans) --- .../tweaks/domain/TweaksBusinessLogic.kt | 19 ++----------------- .../tweaks/ui/EditableTweakEntryViewModel.kt | 2 +- 2 files changed, 3 insertions(+), 18 deletions(-) diff --git a/library/src/enabled/java/com/telefonica/tweaks/domain/TweaksBusinessLogic.kt b/library/src/enabled/java/com/telefonica/tweaks/domain/TweaksBusinessLogic.kt index f692aa0..6f56411 100644 --- a/library/src/enabled/java/com/telefonica/tweaks/domain/TweaksBusinessLogic.kt +++ b/library/src/enabled/java/com/telefonica/tweaks/domain/TweaksBusinessLogic.kt @@ -2,7 +2,6 @@ package com.telefonica.tweaks.domain import com.telefonica.tweaks.data.TweaksRepository import kotlinx.coroutines.flow.Flow -import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.emptyFlow import kotlinx.coroutines.flow.flatMapMerge import kotlinx.coroutines.flow.flowOf @@ -65,7 +64,7 @@ class TweaksBusinessLogic @Inject constructor( private fun getMutableValue(entry: Editable): Flow { val defaultValue: Flow = entry.defaultValue ?: flowOf() - return isOverriden(entry) + return isOverridden(entry) .flatMapMerge { overriden -> when (overriden) { true -> getFromStorage(entry) @@ -74,23 +73,9 @@ class TweaksBusinessLogic @Inject constructor( } } - private fun isOverriden(entry: Editable<*>): Flow = + fun isOverridden(entry: Editable<*>): Flow = tweaksRepository.isOverriden(entry).map { it ?: OVERRIDEN_DEFAULT_VALUE } - fun isOverriddenOrDifferentFromDefaultValue(entry: Editable): Flow { - val valueFlow = getValue(entry.key) - return if (entry.defaultValue == null) { - isOverriden(entry) - } else { - valueFlow - .combine(entry.defaultValue!!) { currentValue, defaultValue -> - currentValue == defaultValue - }.combine(isOverriden(entry)) { areEquals, isOverriden -> - isOverriden && !areEquals - } - } - } - private fun getFromStorage(entry: Editable) = tweaksRepository.get(entry) internal suspend fun clearValue(entry: Editable<*>) { diff --git a/library/src/enabled/java/com/telefonica/tweaks/ui/EditableTweakEntryViewModel.kt b/library/src/enabled/java/com/telefonica/tweaks/ui/EditableTweakEntryViewModel.kt index e08f441..d099c27 100644 --- a/library/src/enabled/java/com/telefonica/tweaks/ui/EditableTweakEntryViewModel.kt +++ b/library/src/enabled/java/com/telefonica/tweaks/ui/EditableTweakEntryViewModel.kt @@ -34,7 +34,7 @@ class EditableTweakEntryViewModel( } fun isOverridden(): Flow = - tweaksBusinessLogic.isOverriddenOrDifferentFromDefaultValue(tweakEntry) + tweaksBusinessLogic.isOverridden(tweakEntry) fun clearValue() { this.value = null