Add uncategorized gallery type
This commit is contained in:
parent
761041c336
commit
decc2f5489
|
@ -1,6 +1,7 @@
|
|||
enum GalleryType {
|
||||
homepage,
|
||||
archive,
|
||||
uncategorized,
|
||||
hidden,
|
||||
favorite,
|
||||
trash,
|
||||
|
@ -23,6 +24,7 @@ extension GalleyTypeExtension on GalleryType {
|
|||
return true;
|
||||
|
||||
case GalleryType.hidden:
|
||||
case GalleryType.uncategorized:
|
||||
case GalleryType.trash:
|
||||
case GalleryType.sharedCollection:
|
||||
return false;
|
||||
|
@ -32,6 +34,7 @@ extension GalleyTypeExtension on GalleryType {
|
|||
bool showMoveToAlbum() {
|
||||
switch (this) {
|
||||
case GalleryType.ownedCollection:
|
||||
case GalleryType.uncategorized:
|
||||
return true;
|
||||
|
||||
case GalleryType.hidden:
|
||||
|
@ -55,6 +58,7 @@ extension GalleyTypeExtension on GalleryType {
|
|||
case GalleryType.homepage:
|
||||
case GalleryType.favorite:
|
||||
case GalleryType.localFolder:
|
||||
case GalleryType.uncategorized:
|
||||
return true;
|
||||
case GalleryType.trash:
|
||||
case GalleryType.archive:
|
||||
|
@ -70,6 +74,7 @@ extension GalleyTypeExtension on GalleryType {
|
|||
case GalleryType.searchResults:
|
||||
case GalleryType.homepage:
|
||||
case GalleryType.favorite:
|
||||
case GalleryType.uncategorized:
|
||||
case GalleryType.archive:
|
||||
case GalleryType.hidden:
|
||||
case GalleryType.localFolder:
|
||||
|
@ -87,6 +92,7 @@ extension GalleyTypeExtension on GalleryType {
|
|||
case GalleryType.homepage:
|
||||
case GalleryType.favorite:
|
||||
case GalleryType.archive:
|
||||
case GalleryType.uncategorized:
|
||||
return true;
|
||||
case GalleryType.hidden:
|
||||
case GalleryType.localFolder:
|
||||
|
@ -102,6 +108,7 @@ extension GalleyTypeExtension on GalleryType {
|
|||
case GalleryType.sharedCollection:
|
||||
return true;
|
||||
case GalleryType.hidden:
|
||||
case GalleryType.uncategorized:
|
||||
case GalleryType.favorite:
|
||||
case GalleryType.searchResults:
|
||||
case GalleryType.homepage:
|
||||
|
@ -116,6 +123,7 @@ extension GalleyTypeExtension on GalleryType {
|
|||
switch (this) {
|
||||
case GalleryType.ownedCollection:
|
||||
case GalleryType.homepage:
|
||||
case GalleryType.uncategorized:
|
||||
return true;
|
||||
|
||||
case GalleryType.hidden:
|
||||
|
@ -139,6 +147,7 @@ extension GalleyTypeExtension on GalleryType {
|
|||
case GalleryType.homepage:
|
||||
case GalleryType.searchResults:
|
||||
case GalleryType.archive:
|
||||
case GalleryType.uncategorized:
|
||||
return true;
|
||||
|
||||
case GalleryType.hidden:
|
||||
|
@ -159,6 +168,7 @@ extension GalleyTypeExtension on GalleryType {
|
|||
case GalleryType.ownedCollection:
|
||||
case GalleryType.homepage:
|
||||
case GalleryType.searchResults:
|
||||
case GalleryType.uncategorized:
|
||||
return true;
|
||||
|
||||
case GalleryType.hidden:
|
||||
|
|
86
lib/ui/viewer/gallery/uncategorized_page.dart
Normal file
86
lib/ui/viewer/gallery/uncategorized_page.dart
Normal file
|
@ -0,0 +1,86 @@
|
|||
import 'package:collection/collection.dart' show IterableExtension;
|
||||
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/files_updated_event.dart';
|
||||
import 'package:photos/models/gallery_type.dart';
|
||||
import 'package:photos/models/magic_metadata.dart';
|
||||
import 'package:photos/models/selected_files.dart';
|
||||
import 'package:photos/services/collections_service.dart';
|
||||
import 'package:photos/ui/viewer/actions/file_selection_overlay_bar.dart';
|
||||
import 'package:photos/ui/viewer/gallery/gallery.dart';
|
||||
import 'package:photos/ui/viewer/gallery/gallery_app_bar_widget.dart';
|
||||
|
||||
class ArchivePage extends StatelessWidget {
|
||||
final String tagPrefix;
|
||||
final GalleryType appBarType;
|
||||
final GalleryType overlayType;
|
||||
final _selectedFiles = SelectedFiles();
|
||||
|
||||
ArchivePage({
|
||||
this.tagPrefix = "archived_page",
|
||||
this.appBarType = GalleryType.archive,
|
||||
this.overlayType = GalleryType.archive,
|
||||
Key? key,
|
||||
}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(Object context) {
|
||||
final Set<int> hiddenCollectionIDs =
|
||||
CollectionsService.instance.getHiddenCollections();
|
||||
final gallery = Gallery(
|
||||
asyncLoader: (creationStartTime, creationEndTime, {limit, asc}) {
|
||||
return FilesDB.instance.getAllPendingOrUploadedFiles(
|
||||
creationStartTime,
|
||||
creationEndTime,
|
||||
Configuration.instance.getUserID()!,
|
||||
visibility: visibilityArchive,
|
||||
limit: limit,
|
||||
asc: asc,
|
||||
ignoredCollectionIDs: hiddenCollectionIDs,
|
||||
);
|
||||
},
|
||||
reloadEvent: Bus.instance.on<FilesUpdatedEvent>().where(
|
||||
(event) =>
|
||||
event.updatedFiles.firstWhereOrNull(
|
||||
(element) => element.uploadedFileID != null,
|
||||
) !=
|
||||
null,
|
||||
),
|
||||
removalEventTypes: const {EventType.unarchived},
|
||||
forceReloadEvents: [
|
||||
Bus.instance.on<FilesUpdatedEvent>().where(
|
||||
(event) =>
|
||||
event.updatedFiles.firstWhereOrNull(
|
||||
(element) => element.uploadedFileID != null,
|
||||
) !=
|
||||
null,
|
||||
),
|
||||
],
|
||||
tagPrefix: tagPrefix,
|
||||
selectedFiles: _selectedFiles,
|
||||
initialFiles: null,
|
||||
);
|
||||
return Scaffold(
|
||||
appBar: PreferredSize(
|
||||
preferredSize: const Size.fromHeight(50.0),
|
||||
child: GalleryAppBarWidget(
|
||||
appBarType,
|
||||
"Archive",
|
||||
_selectedFiles,
|
||||
),
|
||||
),
|
||||
body: Stack(
|
||||
alignment: Alignment.bottomCenter,
|
||||
children: [
|
||||
gallery,
|
||||
FileSelectionOverlayBar(
|
||||
overlayType,
|
||||
_selectedFiles,
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue