Show import progress on loading screen
This commit is contained in:
parent
cce6bbdf91
commit
f2244f8ae2
3 changed files with 26 additions and 1 deletions
8
lib/events/local_import_progress.dart
Normal file
8
lib/events/local_import_progress.dart
Normal file
|
@ -0,0 +1,8 @@
|
|||
import 'package:photos/events/event.dart';
|
||||
|
||||
class LocalImportProgressEvent extends Event {
|
||||
final String folderName;
|
||||
final int count;
|
||||
|
||||
LocalImportProgressEvent(this.folderName, this.count);
|
||||
}
|
|
@ -5,6 +5,8 @@ import 'package:computer/computer.dart';
|
|||
import 'package:flutter/foundation.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:photo_manager/photo_manager.dart';
|
||||
import 'package:photos/core/event_bus.dart';
|
||||
import 'package:photos/events/local_import_progress.dart';
|
||||
import 'package:photos/models/file.dart';
|
||||
import 'package:tuple/tuple.dart';
|
||||
|
||||
|
@ -256,6 +258,10 @@ Future<List<AssetEntity>> _getAllAssetLists(AssetPathEntity pathEntity) async {
|
|||
page: currentPage,
|
||||
size: assetFetchPageSize,
|
||||
);
|
||||
Bus.instance.fire(
|
||||
LocalImportProgressEvent(pathEntity.name,
|
||||
currentPage * assetFetchPageSize + currentPageResult.length),
|
||||
);
|
||||
result.addAll(currentPageResult);
|
||||
currentPage = currentPage + 1;
|
||||
} while (currentPageResult.length >= assetFetchPageSize);
|
||||
|
|
|
@ -6,6 +6,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:lottie/lottie.dart';
|
||||
import 'package:photos/core/event_bus.dart';
|
||||
import 'package:photos/ente_theme_data.dart';
|
||||
import 'package:photos/events/local_import_progress.dart';
|
||||
import 'package:photos/events/sync_status_update_event.dart';
|
||||
import 'package:photos/services/local_sync_service.dart';
|
||||
import 'package:photos/ui/backup_folder_selection_page.dart';
|
||||
|
@ -21,7 +22,9 @@ class LoadingPhotosWidget extends StatefulWidget {
|
|||
|
||||
class _LoadingPhotosWidgetState extends State<LoadingPhotosWidget> {
|
||||
StreamSubscription<SyncStatusUpdate> _firstImportEvent;
|
||||
StreamSubscription<LocalImportProgressEvent> _imprortProgressEvent;
|
||||
int _currentPage = 0;
|
||||
String _loadingMessage = "Loading your photos...";
|
||||
final PageController _pageController = PageController(
|
||||
initialPage: 0,
|
||||
);
|
||||
|
@ -56,6 +59,13 @@ class _LoadingPhotosWidgetState extends State<LoadingPhotosWidget> {
|
|||
}
|
||||
}
|
||||
});
|
||||
_imprortProgressEvent =
|
||||
Bus.instance.on<LocalImportProgressEvent>().listen((event) {
|
||||
_loadingMessage = 'Processing ${event.folderName}';
|
||||
if (mounted) {
|
||||
setState(() {});
|
||||
}
|
||||
});
|
||||
Timer.periodic(const Duration(seconds: 5), (Timer timer) {
|
||||
if (!mounted) {
|
||||
return;
|
||||
|
@ -77,6 +87,7 @@ class _LoadingPhotosWidgetState extends State<LoadingPhotosWidget> {
|
|||
@override
|
||||
void dispose() {
|
||||
_firstImportEvent.cancel();
|
||||
_imprortProgressEvent.cancel();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
|
@ -118,7 +129,7 @@ class _LoadingPhotosWidgetState extends State<LoadingPhotosWidget> {
|
|||
],
|
||||
),
|
||||
Text(
|
||||
"Loading your photos...",
|
||||
_loadingMessage,
|
||||
style: TextStyle(
|
||||
color: Theme.of(context).colorScheme.subTextColor,
|
||||
),
|
||||
|
|
Loading…
Add table
Reference in a new issue