Add a separate folder for videos
This commit is contained in:
parent
8b6685c3e2
commit
c4dfc72aac
4 changed files with 29 additions and 0 deletions
|
@ -105,6 +105,17 @@ class FileDB {
|
|||
return _convertToFiles(results);
|
||||
}
|
||||
|
||||
Future<List<File>> getAllVideos() async {
|
||||
final db = await instance.database;
|
||||
final results = await db.query(
|
||||
table,
|
||||
where:
|
||||
'$columnLocalId IS NOT NULL AND $columnFileType = 1 AND $columnIsDeleted = 0',
|
||||
orderBy: '$columnCreateTimestamp DESC',
|
||||
);
|
||||
return _convertToFiles(results);
|
||||
}
|
||||
|
||||
Future<List<File>> getAllInFolder(int folderId) async {
|
||||
final db = await instance.database;
|
||||
final results = await db.query(
|
||||
|
|
10
lib/models/filters/video_file_filter.dart
Normal file
10
lib/models/filters/video_file_filter.dart
Normal file
|
@ -0,0 +1,10 @@
|
|||
import 'package:photos/models/file.dart';
|
||||
import 'package:photos/models/file_type.dart';
|
||||
import 'package:photos/models/filters/gallery_items_filter.dart';
|
||||
|
||||
class VideoFileFilter implements GalleryItemsFilter {
|
||||
@override
|
||||
bool shouldInclude(File file) {
|
||||
return file.fileType == FileType.video;
|
||||
}
|
||||
}
|
|
@ -59,6 +59,9 @@ class _DeviceFolderPageState extends State<DeviceFolderPage> {
|
|||
}
|
||||
|
||||
List<File> _getFilteredFiles(List<File> unfilteredFiles) {
|
||||
if (widget.folder.filter == null) {
|
||||
return unfilteredFiles;
|
||||
}
|
||||
final List<File> filteredFiles = List<File>();
|
||||
for (File file in unfilteredFiles) {
|
||||
if (widget.folder.filter.shouldInclude(file)) {
|
||||
|
|
|
@ -9,6 +9,7 @@ import 'package:photos/favorite_files_repository.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/filters/video_file_filter.dart';
|
||||
import 'package:photos/ui/device_folder_page.dart';
|
||||
import 'package:photos/ui/loading_widget.dart';
|
||||
import 'package:photos/ui/thumbnail_widget.dart';
|
||||
|
@ -84,6 +85,10 @@ class _DeviceFolderGalleryWidgetState extends State<DeviceFolderGalleryWidget> {
|
|||
FavoriteFilesRepository.instance.getLiked().toList());
|
||||
folders.insert(0, DeviceFolder("Favorites", file, FavoriteItemsFilter()));
|
||||
}
|
||||
final videos = await FileDB.instance.getAllVideos();
|
||||
if (videos.length > 0) {
|
||||
folders.insert(0, DeviceFolder("Videos", videos[0], VideoFileFilter()));
|
||||
}
|
||||
return folders;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue