ソースを参照

use constants for file visibility values

Neeraj Gupta 3 年 前
コミット
fde3ef0ec3

+ 7 - 6
lib/db/files_db.dart

@@ -6,6 +6,7 @@ import 'package:path_provider/path_provider.dart';
 import 'package:photos/models/backup_status.dart';
 import 'package:photos/models/file.dart';
 import 'package:photos/models/file_load_result.dart';
+import 'package:photos/models/file_magic_metadata.dart';
 import 'package:photos/models/file_type.dart';
 import 'package:photos/models/location.dart';
 import 'package:sqflite/sqflite.dart';
@@ -363,8 +364,8 @@ class FilesDB {
       table,
       where:
           '$columnCreationTime >= ? AND $columnCreationTime <= ? AND  $columnOwnerID = ? AND ($columnCollectionID IS NOT NULL AND $columnCollectionID IS NOT -1)'
-              ' AND ($columnMMdVisibility IS NULL OR $columnMMdVisibility = 0)',
-      whereArgs: [startTime, endTime, ownerID],
+              ' AND ($columnMMdVisibility IS NULL OR $columnMMdVisibility = ?)',
+      whereArgs: [startTime, endTime, ownerID, kVisibilityVisible],
       orderBy:
           '$columnCreationTime ' + order + ', $columnModificationTime ' + order,
       limit: limit,
@@ -380,9 +381,9 @@ class FilesDB {
     final results = await db.query(
       table,
       where:
-          '$columnCreationTime >= ? AND $columnCreationTime <= ? AND ($columnOwnerID IS NULL OR $columnOwnerID = ?)  AND ($columnMMdVisibility IS NULL OR $columnMMdVisibility = 0)'
+          '$columnCreationTime >= ? AND $columnCreationTime <= ? AND ($columnOwnerID IS NULL OR $columnOwnerID = ?)  AND ($columnMMdVisibility IS NULL OR $columnMMdVisibility = ?)'
               ' AND ($columnLocalID IS NOT NULL OR ($columnCollectionID IS NOT NULL AND $columnCollectionID IS NOT -1))',
-      whereArgs: [startTime, endTime, ownerID],
+      whereArgs: [startTime, endTime, ownerID, kVisibilityVisible],
       orderBy:
           '$columnCreationTime ' + order + ', $columnModificationTime ' + order,
       limit: limit,
@@ -404,9 +405,9 @@ class FilesDB {
     final results = await db.query(
       table,
       where:
-          '$columnCreationTime >= ? AND $columnCreationTime <= ? AND ($columnOwnerID IS NULL OR $columnOwnerID = ?) AND ($columnMMdVisibility IS NULL OR $columnMMdVisibility = 0)'
+          '$columnCreationTime >= ? AND $columnCreationTime <= ? AND ($columnOwnerID IS NULL OR $columnOwnerID = ?) AND ($columnMMdVisibility IS NULL OR $columnMMdVisibility = ?)'
               'AND (($columnLocalID IS NOT NULL AND $columnDeviceFolder IN ($inParam)) OR ($columnCollectionID IS NOT NULL AND $columnCollectionID IS NOT -1))',
-      whereArgs: [startTime, endTime, ownerID],
+      whereArgs: [startTime, endTime, ownerID, kVisibilityVisible],
       orderBy:
           '$columnCreationTime ' + order + ', $columnModificationTime ' + order,
       limit: limit,

+ 3 - 0
lib/models/file_magic_metadata.dart

@@ -1,5 +1,8 @@
 import 'dart:convert';
 
+const kVisibilityVisible = 0;
+const kVisibilityArchive = 1;
+
 class FileMagicMetadata {
   // 0 -> visible
   // 1 -> archived

+ 2 - 1
lib/ui/archive_page.dart

@@ -6,6 +6,7 @@ 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/file_magic_metadata.dart';
 import 'package:photos/models/selected_files.dart';
 
 import 'gallery.dart';
@@ -27,7 +28,7 @@ class ArchivePage extends StatelessWidget {
     final gallery = Gallery(
       asyncLoader: (creationStartTime, creationEndTime, {limit, asc}) {
         return FilesDB.instance.getFilesWithVisibility(creationStartTime,
-            creationEndTime, Configuration.instance.getUserID(), 1,
+            creationEndTime, Configuration.instance.getUserID(), kVisibilityArchive,
             limit: limit, asc: asc);
       },
       reloadEvent: Bus.instance.on<FilesUpdatedEvent>().where((event) =>

+ 9 - 9
lib/ui/gallery_app_bar_widget.dart

@@ -10,6 +10,7 @@ import 'package:photos/core/configuration.dart';
 import 'package:photos/core/event_bus.dart';
 import 'package:photos/events/subscription_purchased_event.dart';
 import 'package:photos/models/collection.dart';
+import 'package:photos/models/file_magic_metadata.dart';
 import 'package:photos/models/selected_files.dart';
 import 'package:photos/services/collections_service.dart';
 import 'package:photos/ui/create_collection_page.dart';
@@ -267,7 +268,7 @@ class _GalleryAppBarWidgetState extends State<GalleryAppBarWidget> {
         },
         onSelected: (value) async {
           if (value == 1) {
-            await _handleVisibilityChangeRequest(context, showArchive);
+            await _handleVisibilityChangeRequest(context, showArchive ? kVisibilityArchive : kVisibilityVisible);
           }
         },
       ));
@@ -275,25 +276,24 @@ class _GalleryAppBarWidgetState extends State<GalleryAppBarWidget> {
     return actions;
   }
 
-  Future<void> _handleVisibilityChangeRequest(BuildContext context, bool showArchive) async {
+  Future<void> _handleVisibilityChangeRequest(BuildContext context,
+      int newVisibility) async {
     final dialog = createProgressDialog(context, "please wait...");
     await dialog.show();
     try {
-      if (showArchive) {
-        await changeVisibility(widget.selectedFiles.files.toList(), 1);
-        showToast("successfully archived",
-            toastLength: Toast.LENGTH_SHORT);
+      await changeVisibility(
+          widget.selectedFiles.files.toList(), newVisibility);
+      if (newVisibility == kVisibilityArchive) {
+        showToast("successfully archived", toastLength: Toast.LENGTH_SHORT)
       } else {
-        await changeVisibility(widget.selectedFiles.files.toList(), 0);
         showToast("successfully unarchived",
             toastLength: Toast.LENGTH_SHORT);
       }
       await dialog.hide();
     } catch (e, s) {
-      _logger.severe("archive/unarchive failed", e, s);
+      _logger.severe("failed to update file visibility", e, s);
       await dialog.hide();
       await showGenericErrorDialog(context);
-
     } finally {
       _clearSelectedFiles();
     }