diff --git a/lib/config/setting_keys.dart b/lib/config/setting_keys.dart index 4caf8aa0..1b489241 100644 --- a/lib/config/setting_keys.dart +++ b/lib/config/setting_keys.dart @@ -69,7 +69,8 @@ enum AppSettings { sendTimelineEventTimeout('chat.fluffy.send_timeline_event_timeout', 15), lastSeenSupportBanner('chat.fluffy.last_seen_support_banner', 0), supportBannerOptOut('chat.fluffy.support_banner_opt_out', false), - webNotificationSound('chat.fluffy.web_notification_sound', true); + webNotificationSound('chat.fluffy.web_notification_sound', true), + chatFilter('chat.fluffy.chat_filter', 'allChats'); final String key; final T defaultValue; diff --git a/lib/pages/chat_list/chat_list.dart b/lib/pages/chat_list/chat_list.dart index 1baffc5e..fe5dd7e9 100644 --- a/lib/pages/chat_list/chat_list.dart +++ b/lib/pages/chat_list/chat_list.dart @@ -1,5 +1,6 @@ import 'dart:async'; +import 'package:collection/collection.dart'; import 'package:cross_file/cross_file.dart'; import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/l10n/l10n.dart'; @@ -359,7 +360,11 @@ class ChatListController extends State @override void initState() { - activeFilter = ActiveFilter.allChats; + activeFilter = + ActiveFilter.values.singleWhereOrNull( + (filter) => AppSettings.chatFilter.value == filter.name, + ) ?? + ActiveFilter.allChats; _initReceiveSharingIntent(); _activeSpaceId = widget.activeSpace; @@ -857,6 +862,7 @@ class ChatListController extends State setState(() { activeFilter = filter; }); + AppSettings.chatFilter.setItem(filter.name); } void setActiveClient(Client client) {