class MapState { final bool isDarkTheme; final bool showFavoriteOnly; final bool includeArchived; final int relativeTime; MapState({ this.isDarkTheme = false, this.showFavoriteOnly = false, this.includeArchived = false, this.relativeTime = 0, }); MapState copyWith({ bool? isDarkTheme, bool? showFavoriteOnly, bool? includeArchived, int? relativeTime, }) { return MapState( isDarkTheme: isDarkTheme ?? this.isDarkTheme, showFavoriteOnly: showFavoriteOnly ?? this.showFavoriteOnly, includeArchived: includeArchived ?? this.includeArchived, relativeTime: relativeTime ?? this.relativeTime, ); } @override String toString() { return 'MapSettingsState(isDarkTheme: $isDarkTheme, showFavoriteOnly: $showFavoriteOnly, relativeTime: $relativeTime, includeArchived: $includeArchived)'; } @override bool operator ==(Object other) { if (identical(this, other)) return true; return other is MapState && other.isDarkTheme == isDarkTheme && other.showFavoriteOnly == showFavoriteOnly && other.relativeTime == relativeTime && other.includeArchived == includeArchived; } @override int get hashCode { return isDarkTheme.hashCode ^ showFavoriteOnly.hashCode ^ relativeTime.hashCode ^ includeArchived.hashCode; } }