diff --git a/DataControl-0.1.0.apk b/DataControl-0.1.0.apk index 6f3cea9..ae229ae 100644 Binary files a/DataControl-0.1.0.apk and b/DataControl-0.1.0.apk differ diff --git a/app/src/main/java/com/jttools/datacontrol/data/SettingsRepository.kt b/app/src/main/java/com/jttools/datacontrol/data/SettingsRepository.kt index 0bd5ffe..2e5ea2c 100644 --- a/app/src/main/java/com/jttools/datacontrol/data/SettingsRepository.kt +++ b/app/src/main/java/com/jttools/datacontrol/data/SettingsRepository.kt @@ -124,9 +124,14 @@ class SettingsRepository @Inject constructor( * Force la consommation affichée à [consumedMo] sans changer la date de début du cycle, en * recalculant la base de référence à partir du compteur système actuel ([currentTotalBytes]). * Utile pour recaler l'app sur le décompte opérateur réel. + * + * La base peut devenir négative (ex: valeur saisie supérieure au compteur TrafficStats depuis + * le dernier redémarrage de l'appareil) : c'est volontaire, ne pas la borner à 0 sous peine + * d'écraser silencieusement la valeur saisie par l'utilisateur. [UsageRepository.consumedBytesSince] + * et [UsageRepository.hasCounterReset] gèrent correctement une base négative. */ suspend fun setConsumedMo(consumedMo: Long, currentTotalBytes: Long) { - val baseline = (currentTotalBytes - UsageRepository.moToBytes(consumedMo)).coerceAtLeast(0L) + val baseline = currentTotalBytes - UsageRepository.moToBytes(consumedMo) context.dataStore.edit { it[Keys.BASELINE_MOBILE_BYTES] = baseline } }