|
@@ -2,6 +2,7 @@
|
|
|
|
|
|
import 'dart:async';
|
|
import 'dart:async';
|
|
|
|
|
|
|
|
+import 'package:flutter/foundation.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:logging/logging.dart';
|
|
import 'package:logging/logging.dart';
|
|
import 'package:photos/core/constants.dart';
|
|
import 'package:photos/core/constants.dart';
|
|
@@ -77,16 +78,18 @@ class _GalleryState extends State<Gallery> {
|
|
StreamSubscription<FilesUpdatedEvent> _reloadEventSubscription;
|
|
StreamSubscription<FilesUpdatedEvent> _reloadEventSubscription;
|
|
StreamSubscription<TabDoubleTapEvent> _tabDoubleTapEvent;
|
|
StreamSubscription<TabDoubleTapEvent> _tabDoubleTapEvent;
|
|
final _forceReloadEventSubscriptions = <StreamSubscription<Event>>[];
|
|
final _forceReloadEventSubscriptions = <StreamSubscription<Event>>[];
|
|
|
|
+ String _logTag;
|
|
|
|
|
|
@override
|
|
@override
|
|
void initState() {
|
|
void initState() {
|
|
- _logger = Logger("Gallery_" + widget.tagPrefix);
|
|
|
|
|
|
+ _logTag =
|
|
|
|
+ "Gallery_${widget.tagPrefix}${kDebugMode ? "_" + widget.albumName : ""}";
|
|
|
|
+ _logger = Logger(_logTag);
|
|
|
|
+ _logger.finest("init Gallery");
|
|
_itemScroller = ItemScrollController();
|
|
_itemScroller = ItemScrollController();
|
|
-
|
|
|
|
- _logger.info("initState");
|
|
|
|
if (widget.reloadEvent != null) {
|
|
if (widget.reloadEvent != null) {
|
|
_reloadEventSubscription = widget.reloadEvent.listen((event) async {
|
|
_reloadEventSubscription = widget.reloadEvent.listen((event) async {
|
|
- _logger.info("Building gallery because reload event fired");
|
|
|
|
|
|
+ _logger.info("Reloading ALL files on ${event.type.name} event");
|
|
final result = await _loadFiles();
|
|
final result = await _loadFiles();
|
|
_onFilesLoaded(result.files);
|
|
_onFilesLoaded(result.files);
|
|
});
|
|
});
|
|
@@ -160,18 +163,18 @@ class _GalleryState extends State<Gallery> {
|
|
|
|
|
|
// Collates files and returns `true` if it resulted in a gallery reload
|
|
// Collates files and returns `true` if it resulted in a gallery reload
|
|
bool _onFilesLoaded(List<File> files) {
|
|
bool _onFilesLoaded(List<File> files) {
|
|
- final collatedFiles = _collateFiles(files);
|
|
|
|
- if (_collatedFiles.length != collatedFiles.length ||
|
|
|
|
|
|
+ final updatedCollatedFiles = _collateFiles(files);
|
|
|
|
+ if (_collatedFiles.length != updatedCollatedFiles.length ||
|
|
_collatedFiles.isEmpty) {
|
|
_collatedFiles.isEmpty) {
|
|
if (mounted) {
|
|
if (mounted) {
|
|
setState(() {
|
|
setState(() {
|
|
_hasLoadedFiles = true;
|
|
_hasLoadedFiles = true;
|
|
- _collatedFiles = collatedFiles;
|
|
|
|
|
|
+ _collatedFiles = updatedCollatedFiles;
|
|
});
|
|
});
|
|
}
|
|
}
|
|
return true;
|
|
return true;
|
|
} else {
|
|
} else {
|
|
- _collatedFiles = collatedFiles;
|
|
|
|
|
|
+ _collatedFiles = updatedCollatedFiles;
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -188,7 +191,7 @@ class _GalleryState extends State<Gallery> {
|
|
|
|
|
|
@override
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
Widget build(BuildContext context) {
|
|
- _logger.info("Building " + widget.tagPrefix);
|
|
|
|
|
|
+ _logger.finest("Building Gallery ${widget.tagPrefix}");
|
|
if (!_hasLoadedFiles) {
|
|
if (!_hasLoadedFiles) {
|
|
return const EnteLoadingWidget();
|
|
return const EnteLoadingWidget();
|
|
}
|
|
}
|
|
@@ -238,6 +241,7 @@ class _GalleryState extends State<Gallery> {
|
|
.where((event) => event.tag == widget.tagPrefix)
|
|
.where((event) => event.tag == widget.tagPrefix)
|
|
.map((event) => event.index),
|
|
.map((event) => event.index),
|
|
smallerTodayFont: widget.smallerTodayFont,
|
|
smallerTodayFont: widget.smallerTodayFont,
|
|
|
|
+ logTag: _logTag,
|
|
);
|
|
);
|
|
if (widget.header != null && index == 0) {
|
|
if (widget.header != null && index == 0) {
|
|
gallery = Column(children: [widget.header, gallery]);
|
|
gallery = Column(children: [widget.header, gallery]);
|