diff --git a/lib/album_sharing_service.dart b/lib/folder_service.dart similarity index 85% rename from lib/album_sharing_service.dart rename to lib/folder_service.dart index 6eec05eba..d038f07b6 100644 --- a/lib/album_sharing_service.dart +++ b/lib/folder_service.dart @@ -1,12 +1,12 @@ import 'package:dio/dio.dart'; import 'package:photos/core/configuration.dart'; -class AlbumSharingService { +class FolderSharingService { final _dio = Dio(); - AlbumSharingService._privateConstructor(); - static final AlbumSharingService instance = - AlbumSharingService._privateConstructor(); + FolderSharingService._privateConstructor(); + static final FolderSharingService instance = + FolderSharingService._privateConstructor(); Future> getSharingStatus(String path) async { // TODO fetch folderID from path @@ -40,7 +40,7 @@ class AlbumSharingService { }); } - void shareAlbum( + void shareFolder( String path, ) {} } diff --git a/lib/models/album.dart b/lib/models/device_folder.dart similarity index 70% rename from lib/models/album.dart rename to lib/models/device_folder.dart index 89e119406..48104220b 100644 --- a/lib/models/album.dart +++ b/lib/models/device_folder.dart @@ -1,10 +1,10 @@ import 'package:photos/models/filters/gallery_items_filter.dart'; import 'package:photos/models/photo.dart'; -class Album { +class DeviceFolder { final String name; final Photo thumbnailPhoto; final GalleryItemsFilter filter; - Album(this.name, this.thumbnailPhoto, this.filter); + DeviceFolder(this.name, this.thumbnailPhoto, this.filter); } diff --git a/lib/ui/album_page.dart b/lib/ui/device_folder_page.dart similarity index 75% rename from lib/ui/album_page.dart rename to lib/ui/device_folder_page.dart index b440b244d..46c490314 100644 --- a/lib/ui/album_page.dart +++ b/lib/ui/device_folder_page.dart @@ -3,24 +3,24 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:photos/core/event_bus.dart'; import 'package:photos/events/local_photos_updated_event.dart'; -import 'package:photos/models/album.dart'; +import 'package:photos/models/device_folder.dart'; import 'package:photos/models/photo.dart'; import 'package:photos/photo_repository.dart'; import 'package:photos/ui/gallery.dart'; import 'package:photos/ui/gallery_app_bar_widget.dart'; import 'package:logging/logging.dart'; -class AlbumPage extends StatefulWidget { - final Album album; +class DeviceFolderPage extends StatefulWidget { + final DeviceFolder folder; - const AlbumPage(this.album, {Key key}) : super(key: key); + const DeviceFolderPage(this.folder, {Key key}) : super(key: key); @override - _AlbumPageState createState() => _AlbumPageState(); + _DeviceFolderPageState createState() => _DeviceFolderPageState(); } -class _AlbumPageState extends State { - final logger = Logger("AlbumPageState"); +class _DeviceFolderPageState extends State { + final logger = Logger("DeviceFolderPageState"); Set _selectedPhotos = Set(); StreamSubscription _subscription; @@ -37,8 +37,8 @@ class _AlbumPageState extends State { return Scaffold( appBar: GalleryAppBarWidget( GalleryAppBarType.folder, - widget.album.name, - widget.album.thumbnailPhoto.deviceFolder, + widget.folder.name, + widget.folder.thumbnailPhoto.deviceFolder, _selectedPhotos, onSelectionClear: () { setState(() { @@ -61,7 +61,7 @@ class _AlbumPageState extends State { List _getFilteredPhotos(List unfilteredPhotos) { final List filteredPhotos = List(); for (Photo photo in unfilteredPhotos) { - if (widget.album.filter.shouldInclude(photo)) { + if (widget.folder.filter.shouldInclude(photo)) { filteredPhotos.add(photo); } } diff --git a/lib/ui/album_list_widget.dart b/lib/ui/device_folders_gallery_widget.dart similarity index 62% rename from lib/ui/album_list_widget.dart rename to lib/ui/device_folders_gallery_widget.dart index 7fa85c841..6ed63a981 100644 --- a/lib/ui/album_list_widget.dart +++ b/lib/ui/device_folders_gallery_widget.dart @@ -1,35 +1,34 @@ -import 'dart:collection'; - import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; import 'package:photos/db/db_helper.dart'; import 'package:photos/favorite_photos_repository.dart'; -import 'package:photos/models/album.dart'; +import 'package:photos/models/device_folder.dart'; import 'package:photos/models/filters/favorite_items_filter.dart'; import 'package:photos/models/filters/folder_name_filter.dart'; import 'package:photos/models/photo.dart'; -import 'package:photos/ui/album_page.dart'; +import 'package:photos/ui/device_folder_page.dart'; import 'package:photos/ui/loading_widget.dart'; import 'package:photos/ui/thumbnail_widget.dart'; import 'package:path/path.dart' as p; -class AlbumListWidget extends StatefulWidget { +class DeviceFolderGalleryWidget extends StatefulWidget { final List photos; - const AlbumListWidget(this.photos, {Key key}) : super(key: key); + const DeviceFolderGalleryWidget(this.photos, {Key key}) : super(key: key); @override - _AlbumListWidgetState createState() => _AlbumListWidgetState(); + _DeviceFolderGalleryWidgetState createState() => + _DeviceFolderGalleryWidgetState(); } -class _AlbumListWidgetState extends State { +class _DeviceFolderGalleryWidgetState extends State { @override Widget build(BuildContext context) { return FutureBuilder( - future: _getAlbums(), + future: _getDeviceFolders(), builder: (context, snapshot) { if (snapshot.hasData) { - return _getAlbumListWidget(snapshot.data); + return _getDeviceFolderGalleryWidget(snapshot.data); } else if (snapshot.hasError) { return Text(snapshot.error.toString()); } else { @@ -39,7 +38,7 @@ class _AlbumListWidgetState extends State { ); } - Widget _getAlbumListWidget(List albums) { + Widget _getDeviceFolderGalleryWidget(List folders) { return Container( margin: EdgeInsets.only(top: 24), child: GridView.builder( @@ -47,9 +46,9 @@ class _AlbumListWidgetState extends State { padding: EdgeInsets.only(bottom: 12), physics: ScrollPhysics(), // to disable GridView's scrolling itemBuilder: (context, index) { - return _buildAlbum(context, albums[index]); + return _buildFolder(context, folders[index]); }, - itemCount: albums.length, + itemCount: folders.length, gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 2, ), @@ -57,40 +56,42 @@ class _AlbumListWidgetState extends State { ); } - Future> _getAlbums() async { + Future> _getDeviceFolders() async { final paths = await DatabaseHelper.instance.getDistinctPaths(); - final albums = List(); + final folders = List(); for (final path in paths) { final photo = await DatabaseHelper.instance.getLatestPhotoInPath(path); - final albumName = p.basename(path); - albums.add(Album(albumName, photo, FolderNameFilter(albumName))); + final folderName = p.basename(path); + folders + .add(DeviceFolder(folderName, photo, FolderNameFilter(folderName))); } - albums.sort((firstAlbum, secondAlbum) { - return secondAlbum.thumbnailPhoto.createTimestamp - .compareTo(firstAlbum.thumbnailPhoto.createTimestamp); + folders.sort((first, second) { + return second.thumbnailPhoto.createTimestamp + .compareTo(first.thumbnailPhoto.createTimestamp); }); if (FavoritePhotosRepository.instance.hasFavorites()) { final photo = await DatabaseHelper.instance .getLatestPhotoAmongGeneratedIds( FavoritePhotosRepository.instance.getLiked().toList()); - albums.insert(0, Album("Favorites", photo, FavoriteItemsFilter())); + folders.insert( + 0, DeviceFolder("Favorites", photo, FavoriteItemsFilter())); } - return albums; + return folders; } - Widget _buildAlbum(BuildContext context, Album album) { + Widget _buildFolder(BuildContext context, DeviceFolder folder) { return GestureDetector( child: Column( children: [ Container( - child: ThumbnailWidget(album.thumbnailPhoto), + child: ThumbnailWidget(folder.thumbnailPhoto), height: 150, width: 150, ), Padding(padding: EdgeInsets.all(2)), Expanded( child: Text( - album.name, + folder.name, style: TextStyle( fontSize: 16, ), @@ -99,7 +100,7 @@ class _AlbumListWidgetState extends State { ], ), onTap: () { - final page = AlbumPage(album); + final page = DeviceFolderPage(folder); Navigator.of(context).push( MaterialPageRoute( builder: (BuildContext context) { diff --git a/lib/ui/gallery_app_bar_widget.dart b/lib/ui/gallery_app_bar_widget.dart index 8cc65471f..562556687 100644 --- a/lib/ui/gallery_app_bar_widget.dart +++ b/lib/ui/gallery_app_bar_widget.dart @@ -8,7 +8,7 @@ import 'package:photos/models/photo.dart'; import 'package:photos/photo_repository.dart'; import 'package:photos/ui/setup_page.dart'; import 'package:photo_manager/photo_manager.dart'; -import 'package:photos/ui/share_album_widget.dart'; +import 'package:photos/ui/share_folder_widget.dart'; import 'package:photos/utils/share_util.dart'; enum GalleryAppBarType { homepage, folder } @@ -90,7 +90,7 @@ class _GalleryAppBarWidgetState extends State { return showDialog( context: context, builder: (BuildContext context) { - return ShareAlbumWidget(widget.title, widget.path); + return ShareFolderWidget(widget.title, widget.path); }, ); } diff --git a/lib/ui/home_widget.dart b/lib/ui/home_widget.dart index f983347ca..ef2ebc522 100644 --- a/lib/ui/home_widget.dart +++ b/lib/ui/home_widget.dart @@ -9,7 +9,7 @@ import 'package:photos/events/local_photos_updated_event.dart'; import 'package:photos/models/filters/important_items_filter.dart'; import 'package:photos/models/photo.dart'; import 'package:photos/photo_repository.dart'; -import 'package:photos/ui/album_list_widget.dart'; +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_widget.dart'; @@ -74,7 +74,7 @@ class _HomeWidgetState extends State { }); }, ), - AlbumListWidget(PhotoRepository.instance.photos) + DeviceFolderGalleryWidget(PhotoRepository.instance.photos) ], index: _selectedNavBarItem, ); diff --git a/lib/ui/share_album_widget.dart b/lib/ui/share_folder_widget.dart similarity index 84% rename from lib/ui/share_album_widget.dart rename to lib/ui/share_folder_widget.dart index 1d2e48faa..882927185 100644 --- a/lib/ui/share_album_widget.dart +++ b/lib/ui/share_folder_widget.dart @@ -1,27 +1,27 @@ import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; -import 'package:photos/album_sharing_service.dart'; +import 'package:photos/folder_service.dart'; import 'package:photos/ui/loading_widget.dart'; -class ShareAlbumWidget extends StatefulWidget { +class ShareFolderWidget extends StatefulWidget { final String title; final String path; - const ShareAlbumWidget( + const ShareFolderWidget( this.title, this.path, { Key key, }) : super(key: key); @override - _ShareAlbumWidgetState createState() => _ShareAlbumWidgetState(); + _ShareFolderWidgetState createState() => _ShareFolderWidgetState(); } -class _ShareAlbumWidgetState extends State { +class _ShareFolderWidgetState extends State { @override Widget build(BuildContext context) { return FutureBuilder>( - future: AlbumSharingService.instance.getSharingStatus(widget.path), + future: FolderSharingService.instance.getSharingStatus(widget.path), builder: (context, snapshot) { if (snapshot.hasData) { return _getSharingDialog(snapshot.data); @@ -48,7 +48,7 @@ class _ShareAlbumWidgetState extends State { FlatButton( child: Text("Share"), onPressed: () { - // TODO: AlbumSharingService.instance.shareAlbum(); + // TODO: FolderSharingService.instance.shareFolder(); Navigator.of(context).pop(); }, ),