diff --git a/packages/stream_video/CHANGELOG.md b/packages/stream_video/CHANGELOG.md index 5426ea272..4dbc05c83 100644 --- a/packages/stream_video/CHANGELOG.md +++ b/packages/stream_video/CHANGELOG.md @@ -1,3 +1,9 @@ +## Upcoming + +### 🐞 Fixed + +- Fixed connection quality indicator blanking after reconnect. + ## 1.4.1 ### 🔄 Changed diff --git a/packages/stream_video/lib/src/sfu/sfu_extensions.dart b/packages/stream_video/lib/src/sfu/sfu_extensions.dart index 152bafa12..bf451a31b 100644 --- a/packages/stream_video/lib/src/sfu/sfu_extensions.dart +++ b/packages/stream_video/lib/src/sfu/sfu_extensions.dart @@ -16,6 +16,7 @@ import '../webrtc/model/rtc_video_dimension.dart'; import 'data/events/sfu_events.dart'; import 'data/models/sfu_audio_bitrate.dart'; import 'data/models/sfu_connection_info.dart'; +import 'data/models/sfu_connection_quality.dart'; import 'data/models/sfu_model_mapper_extensions.dart'; import 'data/models/sfu_participant.dart'; @@ -61,6 +62,10 @@ extension SfuParticipantX on SfuParticipant { isSpeaking: isSpeaking, audioLevel: audioLevel, isDominantSpeaker: isDominantSpeaker, + // Keep the last known quality to avoid the indicator blanking out on every reconnect. + connectionQuality: connectionQuality != SfuConnectionQuality.unspecified + ? connectionQuality + : (existing?.connectionQuality ?? SfuConnectionQuality.unspecified), participantSource: participantSource, ); }