fix: reduce asset_viewer reloads (#20083)

* fix: reduce asset_viewer reloads

* limit the result of watch asset to one

* fix null reference in map thumbnail

* bump hash file limit to 256

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
This commit is contained in:
shenlong 2025-07-22 22:28:34 +05:30 committed by GitHub
parent aa344a3989
commit ab61bcfcc8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 67 additions and 17 deletions

View file

@ -85,6 +85,7 @@ class _AssetViewerState extends ConsumerState<AssetViewer> {
bool blockGestures = false;
bool dragInProgress = false;
bool shouldPopOnDrag = false;
bool assetReloadRequested = false;
double? initialScale;
double previousExtent = _kBottomSheetMinimumExtent;
Offset dragDownPosition = Offset.zero;
@ -404,7 +405,12 @@ class _AssetViewerState extends ConsumerState<AssetViewer> {
void _onEvent(Event event) {
if (event is TimelineReloadEvent) {
_onTimelineReload(event);
_onTimelineReloadEvent();
return;
}
if (event is ViewerReloadAssetEvent) {
assetReloadRequested = true;
return;
}
@ -417,14 +423,22 @@ class _AssetViewerState extends ConsumerState<AssetViewer> {
}
}
void _onTimelineReload(_) {
setState(() {
totalAssets = ref.read(timelineServiceProvider).totalAssets;
if (totalAssets == 0) {
context.maybePop();
return;
}
void _onTimelineReloadEvent() {
totalAssets = ref.read(timelineServiceProvider).totalAssets;
if (totalAssets == 0) {
context.maybePop();
return;
}
if (assetReloadRequested) {
assetReloadRequested = false;
_onAssetReloadEvent();
return;
}
}
void _onAssetReloadEvent() {
setState(() {
final index = pageController.page?.round() ?? 0;
final newAsset = ref.read(timelineServiceProvider).getAsset(index);
final currentAsset = ref.read(currentAssetNotifier);