Jelajahi Sumber

use FileType.type instead of hardcoding the fileTypes's integer

ashilkn 2 tahun lalu
induk
melakukan
aa118645ef

+ 3 - 3
lib/db/files_db.dart

@@ -1285,15 +1285,15 @@ class FilesDB {
     return deduplicatedFiles;
     return deduplicatedFiles;
   }
   }
 
 
-  Future<Map<int, int>> fetchFilesCountbyType(int userID) async {
+  Future<Map<FileType, int>> fetchFilesCountbyType(int userID) async {
     final db = await instance.database;
     final db = await instance.database;
     final result = await db.rawQuery(
     final result = await db.rawQuery(
       "SELECT $columnFileType, COUNT(DISTINCT $columnUploadedFileID) FROM $filesTable WHERE $columnUploadedFileID != -1 AND $columnOwnerID == $userID GROUP BY $columnFileType",
       "SELECT $columnFileType, COUNT(DISTINCT $columnUploadedFileID) FROM $filesTable WHERE $columnUploadedFileID != -1 AND $columnOwnerID == $userID GROUP BY $columnFileType",
     );
     );
 
 
-    final filesCount = <int, int>{};
+    final filesCount = <FileType, int>{};
     for (var e in result) {
     for (var e in result) {
-      filesCount.addAll({e[columnFileType]: e.values.last});
+      filesCount.addAll({getFileType(e[columnFileType]): e.values.last});
     }
     }
     return filesCount;
     return filesCount;
   }
   }

+ 7 - 5
lib/models/user_details.dart

@@ -2,6 +2,7 @@ import 'dart:math';
 
 
 import 'package:collection/collection.dart';
 import 'package:collection/collection.dart';
 import 'package:equatable/equatable.dart';
 import 'package:equatable/equatable.dart';
+import 'package:photos/models/file_type.dart';
 import 'package:photos/models/subscription.dart';
 import 'package:photos/models/subscription.dart';
 
 
 class UserDetails extends Equatable {
 class UserDetails extends Equatable {
@@ -120,16 +121,17 @@ class FamilyData {
 }
 }
 
 
 class FilesCount {
 class FilesCount {
-  final Map<int, int> filesCount;
+  final Map<FileType, int> filesCount;
   FilesCount(this.filesCount);
   FilesCount(this.filesCount);
 
 
-  int get total => images + videos + livePhotos + (filesCount[-1] ?? 0);
+  int get total =>
+      images + videos + livePhotos + (filesCount[getInt(FileType.other)] ?? 0);
 
 
   int get photos => images + livePhotos;
   int get photos => images + livePhotos;
 
 
-  int get images => filesCount[0] ?? 0;
+  int get images => filesCount[FileType.image] ?? 0;
 
 
-  int get videos => filesCount[1] ?? 0;
+  int get videos => filesCount[FileType.video] ?? 0;
 
 
-  int get livePhotos => filesCount[2] ?? 0;
+  int get livePhotos => filesCount[FileType.livePhoto] ?? 0;
 }
 }

+ 4 - 2
lib/ui/settings/details_section_widget.dart

@@ -3,6 +3,7 @@ import 'package:intl/intl.dart';
 import 'package:logging/logging.dart';
 import 'package:logging/logging.dart';
 import 'package:photos/core/configuration.dart';
 import 'package:photos/core/configuration.dart';
 import 'package:photos/db/files_db.dart';
 import 'package:photos/db/files_db.dart';
+import 'package:photos/models/file_type.dart';
 import 'package:photos/models/user_details.dart';
 import 'package:photos/models/user_details.dart';
 import 'package:photos/states/user_details_state.dart';
 import 'package:photos/states/user_details_state.dart';
 import 'package:photos/theme/colors.dart';
 import 'package:photos/theme/colors.dart';
@@ -255,8 +256,9 @@ class _DetailsSectionWidgetState extends State<DetailsSectionWidget> {
                           ),
                           ),
                           builder: (context, snapshot) {
                           builder: (context, snapshot) {
                             if (snapshot.hasData) {
                             if (snapshot.hasData) {
-                              final filesCount =
-                                  FilesCount(snapshot.data as Map<int, int>);
+                              final filesCount = FilesCount(
+                                snapshot.data as Map<FileType, int>,
+                              );
                               return Column(
                               return Column(
                                 crossAxisAlignment: CrossAxisAlignment.start,
                                 crossAxisAlignment: CrossAxisAlignment.start,
                                 children: [
                                 children: [

+ 2 - 1
lib/ui/settings/settings_title_bar_widget.dart

@@ -3,6 +3,7 @@ import 'package:intl/intl.dart';
 import 'package:logging/logging.dart';
 import 'package:logging/logging.dart';
 import 'package:photos/core/configuration.dart';
 import 'package:photos/core/configuration.dart';
 import 'package:photos/db/files_db.dart';
 import 'package:photos/db/files_db.dart';
+import 'package:photos/models/file_type.dart';
 import 'package:photos/models/user_details.dart';
 import 'package:photos/models/user_details.dart';
 import 'package:photos/theme/ente_theme.dart';
 import 'package:photos/theme/ente_theme.dart';
 import 'package:photos/ui/common/loading_widget.dart';
 import 'package:photos/ui/common/loading_widget.dart';
@@ -33,7 +34,7 @@ class SettingsTitleBarWidget extends StatelessWidget {
               builder: (context, snapshot) {
               builder: (context, snapshot) {
                 if (snapshot.hasData) {
                 if (snapshot.hasData) {
                   final totalFiles =
                   final totalFiles =
-                      FilesCount(snapshot.data as Map<int, int>).total;
+                      FilesCount(snapshot.data as Map<FileType, int>).total;
                   return Text(
                   return Text(
                     totalFiles == 0
                     totalFiles == 0
                         ? "No memories yet"
                         ? "No memories yet"