feat: add dialog to hide presence list with long-press

pull/892/head
Marcus Hoffmann 2 years ago
parent ccfa3fa8f6
commit f8f73b7661

@ -2300,6 +2300,7 @@
} }
}, },
"hideUnimportantStateEvents": "Hide unimportant state events", "hideUnimportantStateEvents": "Hide unimportant state events",
"hidePresences": "Hide Status List?",
"doNotShowAgain": "Do not show again", "doNotShowAgain": "Do not show again",
"wasDirectChatDisplayName": "Empty chat (was {oldDisplayName})", "wasDirectChatDisplayName": "Empty chat (was {oldDisplayName})",
"@wasDirectChatDisplayName": { "@wasDirectChatDisplayName": {

@ -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/matrix_sdk_extensions/matrix_locals.dart';
import 'package:fluffychat/utils/platform_infos.dart'; import 'package:fluffychat/utils/platform_infos.dart';
import '../../../utils/account_bundles.dart'; import '../../../utils/account_bundles.dart';
import '../../config/setting_keys.dart';
import '../../utils/matrix_sdk_extensions/matrix_file_extension.dart'; import '../../utils/matrix_sdk_extensions/matrix_file_extension.dart';
import '../../utils/url_launcher.dart'; import '../../utils/url_launcher.dart';
import '../../utils/voip/callkeep_manager.dart'; import '../../utils/voip/callkeep_manager.dart';
@ -511,6 +512,18 @@ class ChatListController extends State<ChatList>
setState(() {}); 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 { void setStatus() async {
final client = Matrix.of(context).client; final client = Matrix.of(context).client;
final currentPresence = await client.fetchCurrentPresence(client.userID!); final currentPresence = await client.fetchCurrentPresence(client.userID!);

@ -134,8 +134,11 @@ class ChatListViewBody extends StatelessWidget {
if (!controller.isSearchMode && if (!controller.isSearchMode &&
controller.activeFilter != ActiveFilter.groups && controller.activeFilter != ActiveFilter.groups &&
AppConfig.showPresences) AppConfig.showPresences)
StatusMessageList( GestureDetector(
onStatusEdit: controller.setStatus, onLongPress: () => controller.dismissStatusList(),
child: StatusMessageList(
onStatusEdit: controller.setStatus,
),
), ),
const ConnectionStatusHeader(), const ConnectionStatusHeader(),
AnimatedContainer( AnimatedContainer(

Loading…
Cancel
Save