From f8f73b7661cb883811770cc57cdd5740aca2d867 Mon Sep 17 00:00:00 2001 From: Marcus Hoffmann Date: Sun, 11 Feb 2024 22:16:46 +0100 Subject: [PATCH] feat: add dialog to hide presence list with long-press --- assets/l10n/intl_en.arb | 1 + lib/pages/chat_list/chat_list.dart | 13 +++++++++++++ lib/pages/chat_list/chat_list_body.dart | 7 +++++-- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/assets/l10n/intl_en.arb b/assets/l10n/intl_en.arb index d4e98ffe2..1ec83bafa 100644 --- a/assets/l10n/intl_en.arb +++ b/assets/l10n/intl_en.arb @@ -2300,6 +2300,7 @@ } }, "hideUnimportantStateEvents": "Hide unimportant state events", + "hidePresences": "Hide Status List?", "doNotShowAgain": "Do not show again", "wasDirectChatDisplayName": "Empty chat (was {oldDisplayName})", "@wasDirectChatDisplayName": { diff --git a/lib/pages/chat_list/chat_list.dart b/lib/pages/chat_list/chat_list.dart index 4b0c069fb..2fcccca75 100644 --- a/lib/pages/chat_list/chat_list.dart +++ b/lib/pages/chat_list/chat_list.dart @@ -21,6 +21,7 @@ import 'package:fluffychat/utils/localized_exception_extension.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; import 'package:fluffychat/utils/platform_infos.dart'; import '../../../utils/account_bundles.dart'; +import '../../config/setting_keys.dart'; import '../../utils/matrix_sdk_extensions/matrix_file_extension.dart'; import '../../utils/url_launcher.dart'; import '../../utils/voip/callkeep_manager.dart'; @@ -511,6 +512,18 @@ class ChatListController extends State setState(() {}); } + void dismissStatusList() async { + final result = await showOkCancelAlertDialog( + title: L10n.of(context)!.hidePresences, + context: context, + ); + if (result == OkCancelResult.ok) { + await Matrix.of(context).store.setBool(SettingKeys.showPresences, false); + AppConfig.showPresences = false; + setState(() {}); + } + } + void setStatus() async { final client = Matrix.of(context).client; final currentPresence = await client.fetchCurrentPresence(client.userID!); diff --git a/lib/pages/chat_list/chat_list_body.dart b/lib/pages/chat_list/chat_list_body.dart index 50cd823f1..52637d895 100644 --- a/lib/pages/chat_list/chat_list_body.dart +++ b/lib/pages/chat_list/chat_list_body.dart @@ -134,8 +134,11 @@ class ChatListViewBody extends StatelessWidget { if (!controller.isSearchMode && controller.activeFilter != ActiveFilter.groups && AppConfig.showPresences) - StatusMessageList( - onStatusEdit: controller.setStatus, + GestureDetector( + onLongPress: () => controller.dismissStatusList(), + child: StatusMessageList( + onStatusEdit: controller.setStatus, + ), ), const ConnectionStatusHeader(), AnimatedContainer(