move ignored file logic to home page

This commit is contained in:
Neeraj Gupta 2021-10-29 12:09:13 +05:30
parent 83039431dc
commit 4312360fce
No known key found for this signature in database
GPG key ID: 3C5A1684DC1729E1
2 changed files with 17 additions and 19 deletions

View file

@ -9,7 +9,6 @@ import 'package:photos/models/file_load_result.dart';
import 'package:photos/models/file_type.dart';
import 'package:photos/models/location.dart';
import 'package:photos/models/magic_metadata.dart';
import 'package:photos/services/ignored_files_service.dart';
import 'package:sqflite/sqflite.dart';
import 'package:sqflite_migration/sqflite_migration.dart';
@ -434,9 +433,7 @@ class FilesDB {
limit: limit,
);
final files = _convertToFiles(results);
final hasMore = files.length == limit;
await _removeLocalIgnoredFiles(files);
return FileLoadResult(files, hasMore);
return FileLoadResult(files, files.length == limit);
}
Future<FileLoadResult> getImportantFiles(
@ -460,17 +457,8 @@ class FilesDB {
limit: limit,
);
final files = _convertToFiles(results);
final hasMore = files.length == limit;
List<File> deduplicatedFiles = _deduplicatedFiles(files);
await _removeLocalIgnoredFiles(deduplicatedFiles);
return FileLoadResult(deduplicatedFiles, hasMore);
}
Future<void> _removeLocalIgnoredFiles(List<File> files) async {
final ignoredIDs = await IgnoredFilesService.instance.ignoredIDs;
files.removeWhere((f) =>
f.uploadedFileID == null &&
IgnoredFilesService.instance.shouldSkipUpload(ignoredIDs, f));
return FileLoadResult(deduplicatedFiles, files.length == limit);
}
List<File> _deduplicatedFiles(List<File> files) {

View file

@ -13,8 +13,8 @@ import 'package:photos/core/configuration.dart';
import 'package:photos/core/event_bus.dart';
import 'package:photos/db/files_db.dart';
import 'package:photos/events/account_configured_event.dart';
import 'package:photos/events/force_reload_home_gallery_event.dart';
import 'package:photos/events/backup_folders_updated_event.dart';
import 'package:photos/events/force_reload_home_gallery_event.dart';
import 'package:photos/events/local_photos_updated_event.dart';
import 'package:photos/events/permission_granted_event.dart';
import 'package:photos/events/subscription_purchased_event.dart';
@ -22,7 +22,9 @@ import 'package:photos/events/sync_status_update_event.dart';
import 'package:photos/events/tab_changed_event.dart';
import 'package:photos/events/trigger_logout_event.dart';
import 'package:photos/events/user_logged_out_event.dart';
import 'package:photos/models/file_load_result.dart';
import 'package:photos/models/selected_files.dart';
import 'package:photos/services/ignored_files_service.dart';
import 'package:photos/services/local_sync_service.dart';
import 'package:photos/services/update_service.dart';
import 'package:photos/services/user_service.dart';
@ -336,24 +338,32 @@ class _HomeWidgetState extends State<HomeWidget> {
header = _headerWidget;
}
final gallery = Gallery(
asyncLoader: (creationStartTime, creationEndTime, {limit, asc}) {
asyncLoader: (creationStartTime, creationEndTime, {limit, asc}) async {
final importantPaths = Configuration.instance.getPathsToBackUp();
final ownerID = Configuration.instance.getUserID();
Future<FileLoadResult> result;
if (importantPaths.isNotEmpty) {
return FilesDB.instance.getImportantFiles(creationStartTime,
result = FilesDB.instance.getImportantFiles(creationStartTime,
creationEndTime, ownerID, importantPaths.toList(),
limit: limit, asc: asc);
} else {
if (LocalSyncService.instance.hasGrantedLimitedPermissions()) {
return FilesDB.instance.getAllLocalAndUploadedFiles(
result = FilesDB.instance.getAllLocalAndUploadedFiles(
creationStartTime, creationEndTime, ownerID,
limit: limit, asc: asc);
} else {
return FilesDB.instance.getAllUploadedFiles(
result = FilesDB.instance.getAllUploadedFiles(
creationStartTime, creationEndTime, ownerID,
limit: limit, asc: asc);
}
}
final fileLoadResult = await result;
// hide ignored files from home page UI
final ignoredIDs = await IgnoredFilesService.instance.ignoredIDs;
fileLoadResult.files.removeWhere((f) =>
f.uploadedFileID == null &&
IgnoredFilesService.instance.shouldSkipUpload(ignoredIDs, f));
return fileLoadResult;
},
reloadEvent: Bus.instance.on<LocalPhotosUpdatedEvent>(),
forceReloadEvents: [