Extract function to delete a file from the DB
This commit is contained in:
parent
bf40fc481c
commit
ce9cf2c026
3 changed files with 21 additions and 20 deletions
|
@ -1,9 +1,7 @@
|
|||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:like_button/like_button.dart';
|
||||
import 'package:photo_manager/photo_manager.dart';
|
||||
import 'package:photos/core/cache/image_cache.dart';
|
||||
import 'package:photos/db/files_db.dart';
|
||||
import 'package:photos/favorite_files_repository.dart';
|
||||
import 'package:photos/file_repository.dart';
|
||||
import 'package:photos/models/file_type.dart';
|
||||
|
@ -11,6 +9,7 @@ import 'package:photos/models/file.dart';
|
|||
import 'package:photos/ui/video_widget.dart';
|
||||
import 'package:photos/ui/zoomable_image.dart';
|
||||
import 'package:photos/utils/date_time_util.dart';
|
||||
import 'package:photos/utils/file_util.dart';
|
||||
import 'package:photos/utils/share_util.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
|
||||
|
@ -300,7 +299,7 @@ class _DetailPageState extends State<DetailPage> {
|
|||
showCupertinoModalPopup(context: context, builder: (_) => action);
|
||||
}
|
||||
|
||||
Future _delete(bool deleteEverywhere) async {
|
||||
Future _delete(bool deleteEveryWhere) async {
|
||||
final file = _files[_selectedIndex];
|
||||
final totalFiles = _files.length;
|
||||
if (_selectedIndex == totalFiles - 1) {
|
||||
|
@ -324,11 +323,7 @@ class _DetailPageState extends State<DetailPage> {
|
|||
Navigator.of(context, rootNavigator: true).pop(); // Close gallery
|
||||
}
|
||||
|
||||
await PhotoManager.editor.deleteWithIds([file.localId]);
|
||||
deleteEverywhere
|
||||
? await FilesDB.instance.markForDeletion(file)
|
||||
: await FilesDB.instance.delete(file);
|
||||
|
||||
await deleteWithIds([file], deleteEveryWhere: deleteEveryWhere);
|
||||
FileRepository.instance.reloadFiles();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,15 +3,13 @@ import 'package:flutter/cupertino.dart';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:photos/core/configuration.dart';
|
||||
import 'package:photos/core/event_bus.dart';
|
||||
import 'package:photos/db/files_db.dart';
|
||||
import 'package:photos/events/remote_sync_event.dart';
|
||||
import 'package:photos/models/file.dart';
|
||||
import 'package:photos/file_repository.dart';
|
||||
import 'package:photos/models/selected_files.dart';
|
||||
import 'package:photos/ui/setup_page.dart';
|
||||
import 'package:photo_manager/photo_manager.dart';
|
||||
import 'package:photos/ui/share_folder_widget.dart';
|
||||
import 'package:photos/utils/dialog_util.dart';
|
||||
import 'package:photos/utils/file_util.dart';
|
||||
import 'package:photos/utils/share_util.dart';
|
||||
|
||||
enum GalleryAppBarType {
|
||||
|
@ -166,18 +164,12 @@ class _GalleryAppBarWidgetState extends State<GalleryAppBarWidget> {
|
|||
showCupertinoModalPopup(context: context, builder: (_) => action);
|
||||
}
|
||||
|
||||
_deleteSelected(BuildContext context, bool deleteEverywhere) async {
|
||||
_deleteSelected(BuildContext context, bool deleteEveryWhere) async {
|
||||
Navigator.of(context, rootNavigator: true).pop();
|
||||
final dialog = createProgressDialog(context, "Deleting...");
|
||||
await dialog.show();
|
||||
await PhotoManager.editor.deleteWithIds(
|
||||
widget.selectedFiles.files.map((p) => p.localId).toList());
|
||||
|
||||
for (File file in widget.selectedFiles.files) {
|
||||
deleteEverywhere
|
||||
? await FilesDB.instance.markForDeletion(file)
|
||||
: await FilesDB.instance.delete(file);
|
||||
}
|
||||
await deleteWithIds(widget.selectedFiles.files.toList(),
|
||||
deleteEveryWhere: deleteEveryWhere);
|
||||
await FileRepository.instance.reloadFiles();
|
||||
_clearSelectedFiles();
|
||||
await dialog.hide();
|
||||
|
|
14
lib/utils/file_util.dart
Normal file
14
lib/utils/file_util.dart
Normal file
|
@ -0,0 +1,14 @@
|
|||
import 'package:photo_manager/photo_manager.dart';
|
||||
import 'package:photos/db/files_db.dart';
|
||||
import 'package:photos/models/file.dart';
|
||||
|
||||
Future<void> deleteWithIds(List<File> files,
|
||||
{bool deleteEveryWhere = false}) async {
|
||||
await PhotoManager.editor
|
||||
.deleteWithIds(files.map((file) => file.localId).toList());
|
||||
for (File file in files) {
|
||||
deleteEveryWhere
|
||||
? await FilesDB.instance.markForDeletion(file)
|
||||
: await FilesDB.instance.delete(file);
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue