ente/lib/ui/album_widget.dart

55 lines
1.5 KiB
Dart
Raw Normal View History

2020-04-18 18:46:38 +00:00
import 'package:flutter/material.dart';
2020-05-01 18:20:12 +00:00
import 'package:photos/models/album.dart';
import 'package:photos/models/photo.dart';
import 'package:photos/ui/gallery.dart';
import 'package:photos/ui/gallery_app_bar_widget.dart';
2020-05-02 16:28:54 +00:00
import 'package:logging/logging.dart';
2020-04-18 18:46:38 +00:00
class AlbumPage extends StatefulWidget {
final Album album;
const AlbumPage(this.album, {Key key}) : super(key: key);
@override
_AlbumPageState createState() => _AlbumPageState();
}
class _AlbumPageState extends State<AlbumPage> {
2020-05-02 16:28:54 +00:00
final logger = Logger("AlbumPageState");
2020-04-18 18:46:38 +00:00
Set<Photo> _selectedPhotos = Set<Photo>();
@override
Widget build(Object context) {
return Scaffold(
appBar: GalleryAppBarWidget(
widget.album.name,
_selectedPhotos,
onSelectionClear: () {
setState(() {
_selectedPhotos.clear();
});
},
onPhotosDeleted: (deletedPhotos) {
setState(() {
for (Photo deletedPhoto in deletedPhotos) {
var index = widget.album.photos.indexOf(deletedPhoto);
2020-05-02 16:28:54 +00:00
logger.info("Deleting " + index.toString());
2020-04-18 18:46:38 +00:00
widget.album.photos.removeAt(index);
}
2020-04-27 15:11:29 +00:00
_selectedPhotos.clear();
2020-04-18 18:46:38 +00:00
});
},
),
body: Gallery(
widget.album.photos,
2020-04-27 15:11:29 +00:00
_selectedPhotos,
2020-04-18 18:46:38 +00:00
photoSelectionChangeCallback: (Set<Photo> selectedPhotos) {
setState(() {
_selectedPhotos = selectedPhotos;
});
},
),
);
}
}