From 19c04403a24c4e3ab56172d3c12396c871959b8d Mon Sep 17 00:00:00 2001 From: Christian Pauly Date: Sat, 12 Dec 2020 17:01:59 +0100 Subject: [PATCH] feat: Add config hideTypingUsernames --- lib/app_config.dart | 1 + lib/l10n/intl_en.arb | 7 +++++++ lib/utils/room_status_extension.dart | 9 ++++++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/lib/app_config.dart b/lib/app_config.dart index 9869354d..fcce160f 100644 --- a/lib/app_config.dart +++ b/lib/app_config.dart @@ -16,6 +16,7 @@ abstract class AppConfig { static bool renderHtml = false; static bool hideRedactedEvents = false; static bool hideUnknownEvents = false; + static const bool hideTypingUsernames = false; static const bool hideAllStateEvents = false; static const String inviteLinkPrefix = 'https://matrix.to/#/'; static const String pushNotificationsChannelId = 'fluffychat_push'; diff --git a/lib/l10n/intl_en.arb b/lib/l10n/intl_en.arb index 88d694b0..9f719cba 100644 --- a/lib/l10n/intl_en.arb +++ b/lib/l10n/intl_en.arb @@ -1757,6 +1757,13 @@ "unreadChats": {} } }, + "numUsersTyping": "{count} users are typing…", + "@numUsersTyping": { + "type": "text", + "placeholders": { + "count": {} + } + }, "userAndOthersAreTyping": "{username} and {count} others are typing…", "@userAndOthersAreTyping": { "type": "text", diff --git a/lib/utils/room_status_extension.dart b/lib/utils/room_status_extension.dart index 381becde..0de73ab8 100644 --- a/lib/utils/room_status_extension.dart +++ b/lib/utils/room_status_extension.dart @@ -2,6 +2,7 @@ import 'package:famedlysdk/famedlysdk.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; +import '../app_config.dart'; import 'date_time_extension.dart'; extension RoomStatusExtension on Room { @@ -37,7 +38,13 @@ extension RoomStatusExtension on Room { var typingUsers = this.typingUsers; typingUsers.removeWhere((User u) => u.id == client.userID); - if (typingUsers.length == 1) { + if (AppConfig.hideTypingUsernames) { + typingText = L10n.of(context).isTyping; + if (typingUsers.first.id != directChatMatrixID) { + typingText = + L10n.of(context).numUsersTyping(typingUsers.length.toString()); + } + } else if (typingUsers.length == 1) { typingText = L10n.of(context).isTyping; if (typingUsers.first.id != directChatMatrixID) { typingText =