From 0ad8454c7a5a1d0b71148bda9dd69849684f12df Mon Sep 17 00:00:00 2001 From: Ming Ming Date: Mon, 24 May 2021 01:25:39 +0800 Subject: [PATCH] Scan metadata after initial listing is done --- lib/widget/home.dart | 8 -------- lib/widget/home_photos.dart | 9 +++++++++ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/lib/widget/home.dart b/lib/widget/home.dart index 60ea166d..8e32724d 100644 --- a/lib/widget/home.dart +++ b/lib/widget/home.dart @@ -1,11 +1,8 @@ import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; -import 'package:kiwi/kiwi.dart'; import 'package:nc_photos/account.dart'; import 'package:nc_photos/k.dart' as k; -import 'package:nc_photos/metadata_task_manager.dart'; -import 'package:nc_photos/pref.dart'; import 'package:nc_photos/theme.dart'; import 'package:nc_photos/widget/home_albums.dart'; import 'package:nc_photos/widget/home_photos.dart'; @@ -39,11 +36,6 @@ class _HomeState extends State { @override initState() { super.initState(); - if (Pref.inst().isEnableExif()) { - KiwiContainer() - .resolve() - .addTask(MetadataTask(widget.account)); - } _pageController = PageController(initialPage: 0, keepPage: false); } diff --git a/lib/widget/home_photos.dart b/lib/widget/home_photos.dart index 65b9e1d9..f66b99ec 100644 --- a/lib/widget/home_photos.dart +++ b/lib/widget/home_photos.dart @@ -228,6 +228,14 @@ class _HomePhotosState extends State itemStreamListItems = []; } else if (state is ScanDirBlocSuccess || state is ScanDirBlocLoading) { _transformItems(state.files); + if (state is ScanDirBlocSuccess) { + if (Pref.inst().isEnableExif() && !_hasFiredMetadataTask) { + KiwiContainer() + .resolve() + .addTask(MetadataTask(widget.account)); + _hasFiredMetadataTask = true; + } + } } else if (state is ScanDirBlocFailure) { SnackBarManager().showSnackBar(SnackBar( content: Text(exception_util.toUserString(state.exception, context)), @@ -489,6 +497,7 @@ class _HomePhotosState extends State double _prevListWidth; double _appBarExtent; + static var _hasFiredMetadataTask = false; static final _log = Logger("widget.home_photos._HomePhotosState"); static const _menuValueRefresh = 0; }