Improve the way deleting is handled

This commit is contained in:
Vishnu Mohandas 2020-07-16 02:18:46 +05:30
parent 638c47fd36
commit e6ffeea929
2 changed files with 24 additions and 13 deletions

View file

@ -167,6 +167,7 @@ class _GalleryAppBarWidgetState extends State<GalleryAppBarWidget> {
}
_deleteSelected(BuildContext context, bool deleteEverywhere) async {
Navigator.of(context, rootNavigator: true).pop();
final dialog = createProgressDialog(context, "Deleting...");
await dialog.show();
await PhotoManager.editor.deleteWithIds(
@ -177,8 +178,7 @@ class _GalleryAppBarWidgetState extends State<GalleryAppBarWidget> {
? await FileDB.instance.markForDeletion(file)
: await FileDB.instance.delete(file);
}
Navigator.of(context, rootNavigator: true).pop();
FileRepository.instance.reloadFiles();
await FileRepository.instance.reloadFiles();
_clearSelectedFiles();
await dialog.hide();
}

View file

@ -15,6 +15,7 @@ import 'package:photos/ui/device_folders_gallery_widget.dart';
import 'package:photos/ui/gallery.dart';
import 'package:photos/ui/gallery_app_bar_widget.dart';
import 'package:photos/ui/loading_photos_widget.dart';
import 'package:photos/ui/loading_widget.dart';
import 'package:photos/ui/remote_folder_gallery_widget.dart';
import 'package:photos/ui/search_page.dart';
import 'package:photos/utils/logging_util.dart';
@ -59,7 +60,6 @@ class _HomeWidgetState extends State<HomeWidget> {
@override
Widget build(BuildContext context) {
var gallery = _getMainGalleryWidget();
return Scaffold(
appBar: GalleryAppBarWidget(
GalleryAppBarType.homepage,
@ -71,7 +71,7 @@ class _HomeWidgetState extends State<HomeWidget> {
body: IndexedStack(
children: <Widget>[
PhotoSyncManager.instance.hasScannedDisk()
? gallery
? _getMainGalleryWidget()
: LoadingPhotosWidget(),
_deviceFolderGalleryWidget,
_remoteFolderGalleryWidget,
@ -100,16 +100,27 @@ class _HomeWidgetState extends State<HomeWidget> {
}
Widget _getMainGalleryWidget() {
return Gallery(
asyncLoader: (_, __) {
return FileRepository.instance.loadFiles().then((files) {
return _getFilteredPhotos(files);
});
return FutureBuilder(
future: FileRepository.instance.loadFiles().then((files) {
return _getFilteredPhotos(files);
}),
builder: (context, snapshot) {
if (snapshot.hasData) {
return Gallery(
syncLoader: () {
return _getFilteredPhotos(FileRepository.instance.files);
},
reloadEvent: Bus.instance.on<LocalPhotosUpdatedEvent>(),
onRefresh: PhotoSyncManager.instance.sync,
tagPrefix: "home_gallery",
selectedFiles: _selectedFiles,
);
} else if (snapshot.hasError) {
return Center(child: Text(snapshot.error.toString()));
} else {
return loadWidget;
}
},
reloadEvent: Bus.instance.on<LocalPhotosUpdatedEvent>(),
onRefresh: PhotoSyncManager.instance.sync,
tagPrefix: "home_gallery",
selectedFiles: _selectedFiles,
);
}