From 7a1157f1b0bb524f5d9595830e1595ec24dffb52 Mon Sep 17 00:00:00 2001 From: fufesou <13586388+fufesou@users.noreply.github.com> Date: Thu, 5 Sep 2024 22:37:14 +0800 Subject: [PATCH] refact: quality status event (#9268) Signed-off-by: fufesou --- flutter/lib/common/widgets/overlay.dart | 3 ++- flutter/lib/models/model.dart | 18 ++++++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/flutter/lib/common/widgets/overlay.dart b/flutter/lib/common/widgets/overlay.dart index 9b20136e1..a1620b106 100644 --- a/flutter/lib/common/widgets/overlay.dart +++ b/flutter/lib/common/widgets/overlay.dart @@ -595,7 +595,8 @@ class QualityMonitor extends StatelessWidget { "${qualityMonitorModel.data.targetBitrate ?? '-'}kb"), _row( "Codec", qualityMonitorModel.data.codecFormat ?? '-'), - _row("Chroma", qualityMonitorModel.data.chroma ?? '-'), + if (!isWeb) + _row("Chroma", qualityMonitorModel.data.chroma ?? '-'), ], ), ) diff --git a/flutter/lib/models/model.dart b/flutter/lib/models/model.dart index 6f2a9eb2e..c622d9f10 100644 --- a/flutter/lib/models/model.dart +++ b/flutter/lib/models/model.dart @@ -2230,8 +2230,10 @@ class QualityMonitorModel with ChangeNotifier { updateQualityStatus(Map evt) { try { - if ((evt['speed'] as String).isNotEmpty) _data.speed = evt['speed']; - if ((evt['fps'] as String).isNotEmpty) { + if (evt.containsKey('speed') && (evt['speed'] as String).isNotEmpty) { + _data.speed = evt['speed']; + } + if (evt.containsKey('fps') && (evt['fps'] as String).isNotEmpty) { final fps = jsonDecode(evt['fps']) as Map; final pi = parent.target?.ffiModel.pi; if (pi != null) { @@ -2252,14 +2254,18 @@ class QualityMonitorModel with ChangeNotifier { _data.fps = null; } } - if ((evt['delay'] as String).isNotEmpty) _data.delay = evt['delay']; - if ((evt['target_bitrate'] as String).isNotEmpty) { + if (evt.containsKey('delay') && (evt['delay'] as String).isNotEmpty) { + _data.delay = evt['delay']; + } + if (evt.containsKey('target_bitrate') && + (evt['target_bitrate'] as String).isNotEmpty) { _data.targetBitrate = evt['target_bitrate']; } - if ((evt['codec_format'] as String).isNotEmpty) { + if (evt.containsKey('codec_format') && + (evt['codec_format'] as String).isNotEmpty) { _data.codecFormat = evt['codec_format']; } - if ((evt['chroma'] as String).isNotEmpty) { + if (evt.containsKey('chroma') && (evt['chroma'] as String).isNotEmpty) { _data.chroma = evt['chroma']; } notifyListeners();