From d3ada1b627b1d3f2a7207da435395caf7f4801b2 Mon Sep 17 00:00:00 2001 From: Gabby Gurdin Date: Fri, 22 Mar 2024 14:58:32 -0400 Subject: [PATCH] don't show audio message sent in chat subtitle after text-to-speech message --- ios/Runner.xcodeproj/project.pbxproj | 3 ++ .../utils/get_chat_list_item_subtitle.dart | 35 +++++++++++++------ 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 6c1989355..53f589e15 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -484,6 +484,7 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -627,6 +628,7 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -664,6 +666,7 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", diff --git a/lib/pangea/utils/get_chat_list_item_subtitle.dart b/lib/pangea/utils/get_chat_list_item_subtitle.dart index 47b4b6f75..4febedcb3 100644 --- a/lib/pangea/utils/get_chat_list_item_subtitle.dart +++ b/lib/pangea/utils/get_chat_list_item_subtitle.dart @@ -18,10 +18,32 @@ class GetChatListItemSubtitle { ) async { if (event == null) return L10n.of(context)!.emptyChat; try { + String? eventContextId = event.eventId; + if (!event.eventId.isValidMatrixId || event.eventId.sigil != '\$') { + eventContextId = null; + } + final Timeline timeline = + await event.room.getTimeline(eventContextId: eventContextId); + + if (event.content.tryGet(ModelKey.transcription) != null) { + int index = timeline.events.indexWhere( + (e) => e.eventId == event!.eventId, + ); + + while (index < timeline.events.length && + timeline.events[index].content.tryGet(ModelKey.transcription) != + null) { + index++; + } + + if (timeline.events.length > index + 1) { + event = timeline.events[index]; + } + } + if (event.type != EventTypes.Message || !pangeaController.permissionsController - .isToolEnabled(ToolSetting.immersionMode, event.room) || - event.content.tryGet(ModelKey.transcription) != null) { + .isToolEnabled(ToolSetting.immersionMode, event.room)) { return event.calcLocalizedBody( MatrixLocals(L10n.of(context)!), hideReply: true, @@ -33,13 +55,6 @@ class GetChatListItemSubtitle { ); } - String? eventContextId = event.eventId; - if (!event.eventId.isValidMatrixId || event.eventId.sigil != '\$') { - eventContextId = null; - } - final Timeline timeline = - await event.room.getTimeline(eventContextId: eventContextId); - final PangeaMessageEvent pangeaMessageEvent = PangeaMessageEvent( event: event, timeline: timeline, @@ -78,7 +93,7 @@ class GetChatListItemSubtitle { } catch (e, s) { // debugger(when: kDebugMode); ErrorHandler.logError(e: e, s: s); - return event.body; + return event?.body ?? L10n.of(context)!.emptyChat; } } }