Scan metadata after initial listing is done

This commit is contained in:
Ming Ming 2021-05-24 01:25:39 +08:00
parent bea76298dd
commit 0ad8454c7a
2 changed files with 9 additions and 8 deletions

View file

@ -1,11 +1,8 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.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/account.dart';
import 'package:nc_photos/k.dart' as k; 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/theme.dart';
import 'package:nc_photos/widget/home_albums.dart'; import 'package:nc_photos/widget/home_albums.dart';
import 'package:nc_photos/widget/home_photos.dart'; import 'package:nc_photos/widget/home_photos.dart';
@ -39,11 +36,6 @@ class _HomeState extends State<Home> {
@override @override
initState() { initState() {
super.initState(); super.initState();
if (Pref.inst().isEnableExif()) {
KiwiContainer()
.resolve<MetadataTaskManager>()
.addTask(MetadataTask(widget.account));
}
_pageController = PageController(initialPage: 0, keepPage: false); _pageController = PageController(initialPage: 0, keepPage: false);
} }

View file

@ -228,6 +228,14 @@ class _HomePhotosState extends State<HomePhotos>
itemStreamListItems = []; itemStreamListItems = [];
} else if (state is ScanDirBlocSuccess || state is ScanDirBlocLoading) { } else if (state is ScanDirBlocSuccess || state is ScanDirBlocLoading) {
_transformItems(state.files); _transformItems(state.files);
if (state is ScanDirBlocSuccess) {
if (Pref.inst().isEnableExif() && !_hasFiredMetadataTask) {
KiwiContainer()
.resolve<MetadataTaskManager>()
.addTask(MetadataTask(widget.account));
_hasFiredMetadataTask = true;
}
}
} else if (state is ScanDirBlocFailure) { } else if (state is ScanDirBlocFailure) {
SnackBarManager().showSnackBar(SnackBar( SnackBarManager().showSnackBar(SnackBar(
content: Text(exception_util.toUserString(state.exception, context)), content: Text(exception_util.toUserString(state.exception, context)),
@ -489,6 +497,7 @@ class _HomePhotosState extends State<HomePhotos>
double _prevListWidth; double _prevListWidth;
double _appBarExtent; double _appBarExtent;
static var _hasFiredMetadataTask = false;
static final _log = Logger("widget.home_photos._HomePhotosState"); static final _log = Logger("widget.home_photos._HomePhotosState");
static const _menuValueRefresh = 0; static const _menuValueRefresh = 0;
} }