From 33a64106becfe1aef71c29467dc2605ca6c8d745 Mon Sep 17 00:00:00 2001 From: laurenspriem Date: Fri, 20 Jun 2025 11:01:33 +0530 Subject: [PATCH] Fix UI flash --- .../file_info_faces_item_widget.dart | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/mobile/lib/ui/viewer/file_details/file_info_faces_item_widget.dart b/mobile/lib/ui/viewer/file_details/file_info_faces_item_widget.dart index d1ffecb90f..bd1a45c286 100644 --- a/mobile/lib/ui/viewer/file_details/file_info_faces_item_widget.dart +++ b/mobile/lib/ui/viewer/file_details/file_info_faces_item_widget.dart @@ -41,20 +41,28 @@ class _FacesItemWidgetState extends State { loadFaces(); } - Future loadFaces() async { - setState(() => _isLoading = true); + Future loadFaces({bool isRefresh = false}) async { + if (!isRefresh && mounted) { + setState(() => _isLoading = true); + } try { final result = await _fetchFaceData(); - setState(() { - _defaultFaces = result.defaultFaces; - _remainingFaces = result.remainingFaces; - _errorReason = result.errorReason; - }); + if (mounted) { + setState(() { + _defaultFaces = result.defaultFaces; + _remainingFaces = result.remainingFaces; + _errorReason = result.errorReason; + if (!isRefresh) { + _isLoading = false; + } + }); + } } catch (e, s) { _logger.severe('Failed to load faces', e, s); - } finally { - setState(() => _isLoading = false); + if (!isRefresh && mounted) { + setState(() => _isLoading = false); + } } } @@ -143,7 +151,7 @@ class _FacesItemWidgetState extends State { person: faceInfo.person, clusterID: faceInfo.clusterID, isEditMode: _isEditMode, - reloadAllFaces: loadFaces, + reloadAllFaces: () => loadFaces(isRefresh: true), ), ) .toList(),