From 4ee0fb021c791b1f194dd80c9b42a194b75900c4 Mon Sep 17 00:00:00 2001 From: Krille Date: Thu, 17 Apr 2025 08:45:13 +0200 Subject: [PATCH] feat: Add localization for voice message type --- lib/src/utils/event_localizations.dart | 9 +++++++++ lib/src/utils/matrix_default_localizations.dart | 8 ++++++++ lib/src/utils/matrix_localizations.dart | 2 ++ 3 files changed, 19 insertions(+) diff --git a/lib/src/utils/event_localizations.dart b/lib/src/utils/event_localizations.dart index 1ae3b98a..a4fb76d8 100644 --- a/lib/src/utils/event_localizations.dart +++ b/lib/src/utils/event_localizations.dart @@ -42,6 +42,15 @@ abstract class EventLocalizations { event.senderFromMemoryOrFallback.calcDisplayname(i18n: i18n), ); case MessageTypes.Audio: + if (event.content.tryGetMap('org.matrix.msc3245.voice') != null) { + final durationInt = event.content + .tryGetMap('info') + ?.tryGet('duration'); + return i18n.voiceMessage( + event.senderFromMemoryOrFallback.calcDisplayname(i18n: i18n), + durationInt == null ? null : Duration(milliseconds: durationInt), + ); + } return i18n.sentAnAudio( event.senderFromMemoryOrFallback.calcDisplayname(i18n: i18n), ); diff --git a/lib/src/utils/matrix_default_localizations.dart b/lib/src/utils/matrix_default_localizations.dart index ecdb7585..9f5efc58 100644 --- a/lib/src/utils/matrix_default_localizations.dart +++ b/lib/src/utils/matrix_default_localizations.dart @@ -310,4 +310,12 @@ class MatrixDefaultLocalizations extends MatrixLocalizations { @override String startedKeyVerification(String senderName) => '$senderName started key verification'; + + @override + String voiceMessage(String senderName, Duration? duration) { + final durationString = duration == null + ? '' + : '${duration.inMinutes.toString().padLeft(2, '0')}:${(duration.inSeconds % 60).toString().padLeft(2, '0')} '; + return '$senderName: ${durationString}Voice message'; + } } diff --git a/lib/src/utils/matrix_localizations.dart b/lib/src/utils/matrix_localizations.dart index b36e2ad3..921747f0 100644 --- a/lib/src/utils/matrix_localizations.dart +++ b/lib/src/utils/matrix_localizations.dart @@ -150,6 +150,8 @@ abstract class MatrixLocalizations { String sentAnAudio(String senderName); + String voiceMessage(String senderName, Duration? duration); + String sentAVideo(String senderName); String sentReaction(String senderName, String reactionKey);