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/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<Home> {
@override
initState() {
super.initState();
if (Pref.inst().isEnableExif()) {
KiwiContainer()
.resolve<MetadataTaskManager>()
.addTask(MetadataTask(widget.account));
}
_pageController = PageController(initialPage: 0, keepPage: false);
}

View file

@ -228,6 +228,14 @@ class _HomePhotosState extends State<HomePhotos>
itemStreamListItems = [];
} else if (state is ScanDirBlocSuccess || state is ScanDirBlocLoading) {
_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) {
SnackBarManager().showSnackBar(SnackBar(
content: Text(exception_util.toUserString(state.exception, context)),
@ -489,6 +497,7 @@ class _HomePhotosState extends State<HomePhotos>
double _prevListWidth;
double _appBarExtent;
static var _hasFiredMetadataTask = false;
static final _log = Logger("widget.home_photos._HomePhotosState");
static const _menuValueRefresh = 0;
}