瀏覽代碼

Merge branch 'master' into rewrite_device_sync

Neeraj Gupta 2 年之前
父節點
當前提交
3c6acb85ba
共有 100 個文件被更改,包括 197 次插入13 次删除
  1. 2 0
      lib/app.dart
  2. 2 0
      lib/core/cache/image_cache.dart
  3. 2 0
      lib/core/cache/lru_map.dart
  4. 2 0
      lib/core/cache/thumbnail_cache.dart
  5. 2 0
      lib/core/cache/thumbnail_cache_manager.dart
  6. 2 0
      lib/core/cache/video_cache_manager.dart
  7. 2 0
      lib/core/configuration.dart
  8. 2 0
      lib/core/constants.dart
  9. 2 0
      lib/core/error-reporting/super_logging.dart
  10. 2 0
      lib/core/error-reporting/tunneled_transport.dart
  11. 2 0
      lib/core/errors.dart
  12. 2 0
      lib/core/event_bus.dart
  13. 2 0
      lib/core/network.dart
  14. 2 0
      lib/data/holidays.dart
  15. 2 0
      lib/data/months.dart
  16. 2 0
      lib/data/years.dart
  17. 2 0
      lib/db/collections_db.dart
  18. 1 0
      lib/db/device_files_db.dart
  19. 2 0
      lib/db/file_updation_db.dart
  20. 4 3
      lib/db/files_db.dart
  21. 2 0
      lib/db/ignored_files_db.dart
  22. 2 0
      lib/db/memories_db.dart
  23. 2 0
      lib/db/public_keys_db.dart
  24. 2 0
      lib/db/trash_db.dart
  25. 2 0
      lib/db/upload_locks_db.dart
  26. 2 0
      lib/ente_theme_data.dart
  27. 2 0
      lib/events/account_configured_event.dart
  28. 2 0
      lib/events/backup_folders_updated_event.dart
  29. 2 0
      lib/events/collection_updated_event.dart
  30. 2 0
      lib/events/event.dart
  31. 2 0
      lib/events/files_updated_event.dart
  32. 2 0
      lib/events/force_reload_home_gallery_event.dart
  33. 2 0
      lib/events/force_reload_trash_page_event.dart
  34. 2 0
      lib/events/local_photos_updated_event.dart
  35. 2 0
      lib/events/permission_granted_event.dart
  36. 2 0
      lib/events/signed_in_event.dart
  37. 2 0
      lib/events/subscription_purchased_event.dart
  38. 2 0
      lib/events/sync_status_update_event.dart
  39. 2 0
      lib/events/tab_changed_event.dart
  40. 2 0
      lib/events/trigger_logout_event.dart
  41. 2 0
      lib/events/two_factor_status_change_event.dart
  42. 2 0
      lib/events/user_details_changed_event.dart
  43. 2 0
      lib/events/user_logged_out_event.dart
  44. 2 0
      lib/l10n/l10n.dart
  45. 2 0
      lib/main.dart
  46. 2 0
      lib/models/backup_status.dart
  47. 2 0
      lib/models/billing_plan.dart
  48. 2 0
      lib/models/collection.dart
  49. 2 0
      lib/models/collection_file_item.dart
  50. 2 0
      lib/models/collection_items.dart
  51. 2 0
      lib/models/delete_account.dart
  52. 2 0
      lib/models/derived_key_result.dart
  53. 4 4
      lib/models/device_collection.dart
  54. 2 0
      lib/models/duplicate_files.dart
  55. 2 0
      lib/models/encryption_result.dart
  56. 3 0
      lib/models/ente_file.dart
  57. 2 0
      lib/models/file.dart
  58. 2 0
      lib/models/file_load_result.dart
  59. 2 0
      lib/models/file_type.dart
  60. 1 0
      lib/models/filters/gallery_items_filter.dart
  61. 2 0
      lib/models/filters/important_items_filter.dart
  62. 2 0
      lib/models/gallery_type.dart
  63. 2 0
      lib/models/ignored_file.dart
  64. 2 0
      lib/models/key_attributes.dart
  65. 2 0
      lib/models/location.dart
  66. 2 0
      lib/models/magic_metadata.dart
  67. 2 0
      lib/models/memory.dart
  68. 2 0
      lib/models/public_key.dart
  69. 2 0
      lib/models/search/album_search_result.dart
  70. 2 0
      lib/models/search/file_search_result.dart
  71. 2 0
      lib/models/search/holiday_search_result.dart
  72. 2 0
      lib/models/search/location_api_response.dart
  73. 2 0
      lib/models/search/location_search_result.dart
  74. 2 0
      lib/models/search/month_search_result.dart
  75. 2 0
      lib/models/search/search_results.dart
  76. 2 0
      lib/models/search/year_search_result.dart
  77. 2 0
      lib/models/selected_files.dart
  78. 2 0
      lib/models/sessions.dart
  79. 2 0
      lib/models/set_keys_request.dart
  80. 2 0
      lib/models/set_recovery_key_request.dart
  81. 2 0
      lib/models/subscription.dart
  82. 2 0
      lib/models/trash_file.dart
  83. 1 3
      lib/models/trash_item_request.dart
  84. 0 1
      lib/models/update_share_url_request.dart
  85. 0 2
      lib/models/upload_url.dart
  86. 2 0
      lib/models/user_details.dart
  87. 2 0
      lib/services/app_lifecycle_service.dart
  88. 2 0
      lib/services/billing_service.dart
  89. 2 0
      lib/services/collections_service.dart
  90. 2 0
      lib/services/deduplication_service.dart
  91. 2 0
      lib/services/favorites_service.dart
  92. 2 0
      lib/services/feature_flag_service.dart
  93. 2 0
      lib/services/file_magic_service.dart
  94. 2 0
      lib/services/ignored_files_service.dart
  95. 1 0
      lib/services/local/local_sync_util.dart
  96. 2 0
      lib/services/local_authentication_service.dart
  97. 2 0
      lib/services/local_file_update_service.dart
  98. 2 0
      lib/services/local_sync_service.dart
  99. 2 0
      lib/services/memories_service.dart
  100. 2 0
      lib/services/notification_service.dart

+ 2 - 0
lib/app.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:io';
 
 import 'package:adaptive_theme/adaptive_theme.dart';

+ 2 - 0
lib/core/cache/image_cache.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:io' as io;
 
 import 'package:photos/core/cache/lru_map.dart';

+ 2 - 0
lib/core/cache/lru_map.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:collection';
 
 typedef EvictionHandler<K, V> = Function(K key, V value);

+ 2 - 0
lib/core/cache/thumbnail_cache.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:typed_data';
 
 import 'package:photos/core/cache/lru_map.dart';

+ 2 - 0
lib/core/cache/thumbnail_cache_manager.dart

@@ -1,3 +1,5 @@
+
+
 import 'package:flutter_cache_manager/flutter_cache_manager.dart';
 
 class ThumbnailCacheManager {

+ 2 - 0
lib/core/cache/video_cache_manager.dart

@@ -1,3 +1,5 @@
+
+
 import 'package:flutter_cache_manager/flutter_cache_manager.dart';
 
 class VideoCacheManager {

+ 2 - 0
lib/core/configuration.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:convert';
 import 'dart:io' as io;
 import 'dart:typed_data';

+ 2 - 0
lib/core/constants.dart

@@ -1,3 +1,5 @@
+// @dart = 2.7
+
 const int kThumbnailSmallSize = 256;
 const int kThumbnailQuality = 50;
 const int kThumbnailLargeSize = 512;

+ 2 - 0
lib/core/error-reporting/super_logging.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 library super_logging;
 
 import 'dart:async';

+ 2 - 0
lib/core/error-reporting/tunneled_transport.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:convert';
 
 import 'package:http/http.dart';

+ 2 - 0
lib/core/errors.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 class InvalidFileError extends ArgumentError {
   InvalidFileError(String message) : super(message);
 }

+ 2 - 0
lib/core/event_bus.dart

@@ -1,3 +1,5 @@
+
+
 import 'package:event_bus/event_bus.dart';
 
 class Bus {

+ 2 - 0
lib/core/network.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:io';
 
 import 'package:alice/alice.dart';

+ 2 - 0
lib/data/holidays.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'package:photos/models/search/holiday_search_result.dart';
 
 const List<HolidayData> allHolidays = [

+ 2 - 0
lib/data/months.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'package:photos/models/search/month_search_result.dart';
 
 List<MonthData> allMonths = [

+ 2 - 0
lib/data/years.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'package:photos/utils/date_time_util.dart';
 
 class YearsData {

+ 2 - 0
lib/db/collections_db.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:convert';
 import 'dart:io';
 

+ 1 - 0
lib/db/device_files_db.dart

@@ -1,3 +1,4 @@
+// @dart=2.9
 import 'package:flutter/foundation.dart';
 import 'package:logging/logging.dart';
 import 'package:photo_manager/photo_manager.dart';

+ 2 - 0
lib/db/file_updation_db.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:io';
 
 import 'package:flutter/foundation.dart';

+ 4 - 3
lib/db/files_db.dart

@@ -1,5 +1,6 @@
+// @dart=2.9
+
 import 'dart:io' as io;
-import 'dart:io';
 
 import 'package:flutter/foundation.dart';
 import 'package:logging/logging.dart';
@@ -101,7 +102,7 @@ class FilesDB {
 
   // this opens the database (and creates it if it doesn't exist)
   Future<Database> _initDatabase() async {
-    final Directory documentsDirectory =
+    final io.Directory documentsDirectory =
         await getApplicationDocumentsDirectory();
     final String path = join(documentsDirectory.path, _databaseName);
     _logger.info("DB path " + path);
@@ -900,7 +901,7 @@ class FilesDB {
       getInt(fileType),
       title,
     ];
-    if (Platform.isAndroid) {
+    if (io.Platform.isAndroid) {
       whereClause = ''' ($columnOwnerID = ? OR $columnOwnerID IS NULL) AND 
           $columnLocalID = ? AND $columnFileType = ? AND $columnTitle=? AND $columnDeviceFolder= ? 
            ''';

+ 2 - 0
lib/db/ignored_files_db.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:io';
 
 import 'package:logging/logging.dart';

+ 2 - 0
lib/db/memories_db.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:async';
 import 'dart:io';
 

+ 2 - 0
lib/db/public_keys_db.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:async';
 import 'dart:io';
 

+ 2 - 0
lib/db/trash_db.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:convert';
 import 'dart:io';
 

+ 2 - 0
lib/db/upload_locks_db.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:async';
 import 'dart:io';
 

+ 2 - 0
lib/ente_theme_data.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'package:flutter/material.dart';
 import 'package:flutter_datetime_picker/flutter_datetime_picker.dart';
 

+ 2 - 0
lib/events/account_configured_event.dart

@@ -1,3 +1,5 @@
+
+
 import 'package:photos/events/event.dart';
 
 class AccountConfiguredEvent extends Event {}

+ 2 - 0
lib/events/backup_folders_updated_event.dart

@@ -1,3 +1,5 @@
+
+
 import 'package:photos/events/event.dart';
 
 class BackupFoldersUpdatedEvent extends Event {}

+ 2 - 0
lib/events/collection_updated_event.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'package:photos/events/files_updated_event.dart';
 
 class CollectionUpdatedEvent extends FilesUpdatedEvent {

+ 2 - 0
lib/events/event.dart

@@ -1 +1,3 @@
+
+
 class Event {}

+ 2 - 0
lib/events/files_updated_event.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'package:photos/events/event.dart';
 import 'package:photos/models/file.dart';
 

+ 2 - 0
lib/events/force_reload_home_gallery_event.dart

@@ -1,3 +1,5 @@
+
+
 import 'package:photos/events/event.dart';
 
 class ForceReloadHomeGalleryEvent extends Event {

+ 2 - 0
lib/events/force_reload_trash_page_event.dart

@@ -1,3 +1,5 @@
+
+
 import 'package:photos/events/event.dart';
 
 class ForceReloadTrashPageEvent extends Event {

+ 2 - 0
lib/events/local_photos_updated_event.dart

@@ -1,3 +1,5 @@
+
+
 import 'package:photos/events/files_updated_event.dart';
 
 class LocalPhotosUpdatedEvent extends FilesUpdatedEvent {

+ 2 - 0
lib/events/permission_granted_event.dart

@@ -1,3 +1,5 @@
+
+
 import 'package:photos/events/event.dart';
 
 class PermissionGrantedEvent extends Event {}

+ 2 - 0
lib/events/signed_in_event.dart

@@ -1,3 +1,5 @@
+
+
 import 'package:photos/events/event.dart';
 
 class SignedInEvent extends Event {}

+ 2 - 0
lib/events/subscription_purchased_event.dart

@@ -1,3 +1,5 @@
+
+
 import 'package:photos/events/event.dart';
 
 class SubscriptionPurchasedEvent extends Event {}

+ 2 - 0
lib/events/sync_status_update_event.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'package:photos/events/event.dart';
 
 class SyncStatusUpdate extends Event {

+ 2 - 0
lib/events/tab_changed_event.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'package:photos/events/event.dart';
 
 class TabChangedEvent extends Event {

+ 2 - 0
lib/events/trigger_logout_event.dart

@@ -1,3 +1,5 @@
+
+
 import 'package:photos/events/event.dart';
 
 class TriggerLogoutEvent extends Event {}

+ 2 - 0
lib/events/two_factor_status_change_event.dart

@@ -1,3 +1,5 @@
+
+
 import 'package:photos/events/event.dart';
 
 class TwoFactorStatusChangeEvent extends Event {

+ 2 - 0
lib/events/user_details_changed_event.dart

@@ -1,3 +1,5 @@
+
+
 import 'package:photos/events/event.dart';
 
 class UserDetailsChangedEvent extends Event {}

+ 2 - 0
lib/events/user_logged_out_event.dart

@@ -1,3 +1,5 @@
+
+
 import 'package:photos/events/event.dart';
 
 class UserLoggedOutEvent extends Event {}

+ 2 - 0
lib/l10n/l10n.dart

@@ -1,3 +1,5 @@
+
+
 import 'dart:ui';
 
 class L10n {

+ 2 - 0
lib/main.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:async';
 import 'dart:io';
 

+ 2 - 0
lib/models/backup_status.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 class BackupStatus {
   final List<String> localIDs;
   final int size;

+ 2 - 0
lib/models/billing_plan.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:convert';
 
 import 'package:flutter/foundation.dart';

+ 2 - 0
lib/models/collection.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:convert';
 import 'dart:core';
 

+ 2 - 0
lib/models/collection_file_item.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:convert';
 
 class CollectionFileItem {

+ 2 - 0
lib/models/collection_items.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'package:photos/models/collection.dart';
 import 'package:photos/models/device_collection.dart';
 import 'package:photos/models/file.dart';

+ 2 - 0
lib/models/delete_account.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'package:flutter/foundation.dart';
 
 class DeleteChallengeResponse {

+ 2 - 0
lib/models/derived_key_result.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:typed_data';
 
 class DerivedKeyResult {

+ 4 - 4
lib/models/device_collection.dart

@@ -4,18 +4,18 @@ import 'package:photos/models/upload_strategy.dart';
 class DeviceCollection {
   final String id;
   final String name;
-  final String coverId;
   final int count;
   final bool shouldBackup;
   UploadStrategy uploadStrategy;
-  int collectionID;
-  File thumbnail;
+  final String? coverId;
+  int? collectionID;
+  File? thumbnail;
 
   DeviceCollection(
     this.id,
     this.name, {
     this.coverId,
-    this.count,
+    this.count = 0,
     this.collectionID,
     this.thumbnail,
     this.uploadStrategy = UploadStrategy.ifMissing,

+ 2 - 0
lib/models/duplicate_files.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:convert';
 
 import 'package:photos/models/file.dart';

+ 2 - 0
lib/models/encryption_result.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:typed_data';
 
 class EncryptionResult {

+ 3 - 0
lib/models/ente_file.dart

@@ -1,5 +1,8 @@
 // EnteFile is base file entry for various type of files
 // like DeviceFile,RemoteFile or TrashedFile
+
+// @dart=2.9
+
 abstract class EnteFile {
   // returns cacheKey which should be used while caching entry related to
   // this file.

+ 2 - 0
lib/models/file.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'package:path/path.dart';
 import 'package:photo_manager/photo_manager.dart';
 import 'package:photos/core/configuration.dart';

+ 2 - 0
lib/models/file_load_result.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'package:photos/models/file.dart';
 
 class FileLoadResult {

+ 2 - 0
lib/models/file_type.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 enum FileType {
   image,
   video,

+ 1 - 0
lib/models/filters/gallery_items_filter.dart

@@ -1,3 +1,4 @@
+// @dart=2.9
 import 'package:photos/models/file.dart';
 
 class GalleryItemsFilter {

+ 2 - 0
lib/models/filters/important_items_filter.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:io';
 
 import 'package:path/path.dart';

+ 2 - 0
lib/models/gallery_type.dart

@@ -1,3 +1,5 @@
+
+
 enum GalleryType {
   homepage,
   archive,

+ 2 - 0
lib/models/ignored_file.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'package:photos/models/trash_file.dart';
 
 const kIgnoreReasonTrash = "trash";

+ 2 - 0
lib/models/key_attributes.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:convert';
 
 class KeyAttributes {

+ 2 - 0
lib/models/location.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 class Location {
   final double latitude;
   final double longitude;

+ 2 - 0
lib/models/magic_metadata.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:convert';
 
 const kVisibilityVisible = 0;

+ 2 - 0
lib/models/memory.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'package:photos/models/file.dart';
 
 class Memory {

+ 2 - 0
lib/models/public_key.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 class PublicKey {
   final String email;
   final String publicKey;

+ 2 - 0
lib/models/search/album_search_result.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'package:photos/models/collection_items.dart';
 import 'package:photos/models/search/search_results.dart';
 

+ 2 - 0
lib/models/search/file_search_result.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'package:photos/models/file.dart';
 import 'package:photos/models/search/search_results.dart';
 

+ 2 - 0
lib/models/search/holiday_search_result.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'package:photos/models/file.dart';
 import 'package:photos/models/search/search_results.dart';
 

+ 2 - 0
lib/models/search/location_api_response.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 class LocationApiResponse {
   final List<LocationDataFromResponse> results;
   LocationApiResponse({

+ 2 - 0
lib/models/search/location_search_result.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'package:photos/models/file.dart';
 import 'package:photos/models/search/search_results.dart';
 

+ 2 - 0
lib/models/search/month_search_result.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'package:photos/models/file.dart';
 import 'package:photos/models/search/search_results.dart';
 

+ 2 - 0
lib/models/search/search_results.dart

@@ -1 +1,3 @@
+
+
 class SearchResult {}

+ 2 - 0
lib/models/search/year_search_result.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'package:photos/models/file.dart';
 import 'package:photos/models/search/search_results.dart';
 

+ 2 - 0
lib/models/selected_files.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'package:flutter/foundation.dart';
 import 'package:photos/models/file.dart';
 

+ 2 - 0
lib/models/sessions.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:convert';
 
 import 'package:flutter/foundation.dart';

+ 2 - 0
lib/models/set_keys_request.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:convert';
 
 class SetKeysRequest {

+ 2 - 0
lib/models/set_recovery_key_request.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:convert';
 
 class SetRecoveryKeyRequest {

+ 2 - 0
lib/models/subscription.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:convert';
 
 const kFreeProductID = "free";

+ 2 - 0
lib/models/trash_file.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'package:photos/models/file.dart';
 
 class TrashFile extends File {

+ 1 - 3
lib/models/trash_item_request.dart

@@ -2,9 +2,7 @@ class TrashRequest {
   final int fileID;
   final int collectionID;
 
-  TrashRequest(this.fileID, this.collectionID)
-      : assert(fileID != null),
-        assert(collectionID != null);
+  TrashRequest(this.fileID, this.collectionID);
 
   factory TrashRequest.fromJson(Map<String, dynamic> json) {
     return TrashRequest(json['fileID'], json['collectionID']);

+ 0 - 1
lib/models/update_share_url_request.dart

@@ -1 +0,0 @@
-

+ 0 - 2
lib/models/upload_url.dart

@@ -13,8 +13,6 @@ class UploadURL {
   }
 
   factory UploadURL.fromMap(Map<String, dynamic> map) {
-    if (map == null) return null;
-
     return UploadURL(
       map['url'],
       map['objectKey'],

+ 2 - 0
lib/models/user_details.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:math';
 
 import 'package:collection/collection.dart';

+ 2 - 0
lib/services/app_lifecycle_service.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'package:logging/logging.dart';
 
 class AppLifecycleService {

+ 2 - 0
lib/services/billing_service.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:io';
 
 import 'package:dio/dio.dart';

+ 2 - 0
lib/services/collections_service.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:convert';
 import 'dart:math';
 import 'dart:typed_data';

+ 2 - 0
lib/services/deduplication_service.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'package:dio/dio.dart';
 import 'package:logging/logging.dart';
 import 'package:photos/core/configuration.dart';

+ 2 - 0
lib/services/favorites_service.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:convert';
 
 import 'package:flutter_sodium/flutter_sodium.dart';

+ 2 - 0
lib/services/feature_flag_service.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:convert';
 import 'dart:io';
 

+ 2 - 0
lib/services/file_magic_service.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:convert';
 
 import 'package:dio/dio.dart';

+ 2 - 0
lib/services/ignored_files_service.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:async';
 import 'dart:io';
 

+ 1 - 0
lib/services/local/local_sync_util.dart

@@ -1,3 +1,4 @@
+// @dart=2.9
 import 'dart:math';
 
 import 'package:computer/computer.dart';

+ 2 - 0
lib/services/local_authentication_service.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'package:flutter/material.dart';
 import 'package:local_auth/local_auth.dart';
 import 'package:photos/core/configuration.dart';

+ 2 - 0
lib/services/local_file_update_service.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:async';
 import 'dart:core';
 import 'dart:io';

+ 2 - 0
lib/services/local_sync_service.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:async';
 import 'dart:io';
 

+ 2 - 0
lib/services/memories_service.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'package:flutter/foundation.dart';
 import 'package:logging/logging.dart';
 import 'package:photos/core/constants.dart';

+ 2 - 0
lib/services/notification_service.dart

@@ -1,3 +1,5 @@
+// @dart=2.9
+
 import 'dart:io';
 
 import 'package:flutter_local_notifications/flutter_local_notifications.dart';

Some files were not shown because too many files changed in this diff