Enhance AppSettings and RentController to manage not-occupied months, add lifetime summary to SettingsScreen, and update tests for compatibility

Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
This commit is contained in:
2026-03-20 10:57:57 +01:00
parent 67af59bd0d
commit 9c4e275ff7
6 changed files with 228 additions and 31 deletions
+9
View File
@@ -5,6 +5,7 @@ class AppSettings {
required this.rentUsd,
required this.occupied,
this.notOccupiedFromYearMonth,
this.notOccupiedMonths = const <String>[],
this.localFallbackHour = 9,
this.localQuietHourStart = 23,
});
@@ -12,6 +13,7 @@ class AppSettings {
final double rentUsd;
final bool occupied;
final String? notOccupiedFromYearMonth;
final List<String> notOccupiedMonths;
final int localFallbackHour;
final int localQuietHourStart;
@@ -23,6 +25,7 @@ class AppSettings {
double? rentUsd,
bool? occupied,
String? notOccupiedFromYearMonth,
List<String>? notOccupiedMonths,
bool clearNotOccupiedFromYearMonth = false,
int? localFallbackHour,
int? localQuietHourStart,
@@ -33,6 +36,7 @@ class AppSettings {
notOccupiedFromYearMonth: clearNotOccupiedFromYearMonth
? null
: (notOccupiedFromYearMonth ?? this.notOccupiedFromYearMonth),
notOccupiedMonths: notOccupiedMonths ?? this.notOccupiedMonths,
localFallbackHour: localFallbackHour ?? this.localFallbackHour,
localQuietHourStart: localQuietHourStart ?? this.localQuietHourStart,
);
@@ -43,6 +47,7 @@ class AppSettings {
'rentUsd': rentUsd,
'occupied': occupied,
'notOccupiedFromYearMonth': notOccupiedFromYearMonth,
'notOccupiedMonths': notOccupiedMonths,
'localFallbackHour': localFallbackHour,
'localQuietHourStart': localQuietHourStart,
};
@@ -53,6 +58,10 @@ class AppSettings {
rentUsd: (json['rentUsd'] ?? 0).toDouble(),
occupied: json['occupied'] ?? true,
notOccupiedFromYearMonth: json['notOccupiedFromYearMonth'] as String?,
notOccupiedMonths:
(json['notOccupiedMonths'] as List<dynamic>? ?? const <dynamic>[])
.whereType<String>()
.toList(),
localFallbackHour: json['localFallbackHour'] ?? 9,
localQuietHourStart: json['localQuietHourStart'] ?? 23,
);