Skip to content

Commit 265dfbb

Browse files
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)
1 parent 7cd5880 commit 265dfbb

File tree

2 files changed

+3
-18
lines changed

2 files changed

+3
-18
lines changed

library/src/enabled/java/com/telefonica/tweaks/domain/TweaksBusinessLogic.kt

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package com.telefonica.tweaks.domain
22

33
import com.telefonica.tweaks.data.TweaksRepository
44
import kotlinx.coroutines.flow.Flow
5-
import kotlinx.coroutines.flow.combine
65
import kotlinx.coroutines.flow.emptyFlow
76
import kotlinx.coroutines.flow.flatMapMerge
87
import kotlinx.coroutines.flow.flowOf
@@ -65,7 +64,7 @@ class TweaksBusinessLogic @Inject constructor(
6564
private fun <T> getMutableValue(entry: Editable<T>): Flow<T?> {
6665
val defaultValue: Flow<T> = entry.defaultValue ?: flowOf()
6766

68-
return isOverriden(entry)
67+
return isOverridden(entry)
6968
.flatMapMerge { overriden ->
7069
when (overriden) {
7170
true -> getFromStorage(entry)
@@ -74,23 +73,9 @@ class TweaksBusinessLogic @Inject constructor(
7473
}
7574
}
7675

77-
private fun isOverriden(entry: Editable<*>): Flow<Boolean> =
76+
fun isOverridden(entry: Editable<*>): Flow<Boolean> =
7877
tweaksRepository.isOverriden(entry).map { it ?: OVERRIDEN_DEFAULT_VALUE }
7978

80-
fun <T> isOverriddenOrDifferentFromDefaultValue(entry: Editable<T>): Flow<Boolean> {
81-
val valueFlow = getValue<T>(entry.key)
82-
return if (entry.defaultValue == null) {
83-
isOverriden(entry)
84-
} else {
85-
valueFlow
86-
.combine(entry.defaultValue!!) { currentValue, defaultValue ->
87-
currentValue == defaultValue
88-
}.combine(isOverriden(entry)) { areEquals, isOverriden ->
89-
isOverriden && !areEquals
90-
}
91-
}
92-
}
93-
9479
private fun <T> getFromStorage(entry: Editable<T>) = tweaksRepository.get(entry)
9580

9681
internal suspend fun clearValue(entry: Editable<*>) {

library/src/enabled/java/com/telefonica/tweaks/ui/EditableTweakEntryViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class EditableTweakEntryViewModel<T>(
3434
}
3535

3636
fun isOverridden(): Flow<Boolean> =
37-
tweaksBusinessLogic.isOverriddenOrDifferentFromDefaultValue(tweakEntry)
37+
tweaksBusinessLogic.isOverridden(tweakEntry)
3838

3939
fun clearValue() {
4040
this.value = null

0 commit comments

Comments
 (0)