vishnukvmd 4 rokov pred
rodič
commit
9f8c409f3d

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

@@ -10,7 +10,7 @@ class ThumbnailLruCache {
   static Uint8List get(File photo, [int size]) {
     return _map.get(photo.generatedID.toString() +
         "_" +
-        (size != null ? size.toString() : THUMBNAIL_LARGE_SIZE.toString()));
+        (size != null ? size.toString() : kThumbnailLargeSize.toString()));
   }
 
   static void put(
@@ -21,7 +21,7 @@ class ThumbnailLruCache {
     _map.put(
         photo.generatedID.toString() +
             "_" +
-            (size != null ? size.toString() : THUMBNAIL_LARGE_SIZE.toString()),
+            (size != null ? size.toString() : kThumbnailLargeSize.toString()),
         imageData);
   }
 }

+ 10 - 10
lib/core/constants.dart

@@ -1,12 +1,12 @@
-const int THUMBNAIL_SMALL_SIZE = 256;
-const int THUMBNAIL_QUALITY = 50;
-const int THUMBNAIL_LARGE_SIZE = 512;
-const int COMPRESSED_THUMBNAIL_RESOLUTION = 1080;
-const int THUMBNAIL_DATA_LIMIT = 100 * 1024;
-const String SENTRY_DSN =
+const int kThumbnailSmallSize = 256;
+const int kThumbnailQuality = 50;
+const int kThumbnailLargeSize = 512;
+const int kCompressedThumbnailResolution = 1080;
+const int kThumbnailDataLimit = 100 * 1024;
+const String kSentryDSN =
     "https://93b8ea6f54f442dc8408ebccdff6fe7a@errors.ente.io/2";
-const String SENTRY_DEBUG_DSN =
+const String kSentryDebugDSN =
     "https://b31c8af8384a4ce980509b8f592a67eb@errors.ente.io/3";
-const String ROADMAP_URL = "https://roadmap.ente.io";
-const int MICRO_SECONDS_IN_DAY = 86400000000;
-const int ANDROID_11_SDK_INT = 30;
+const String kRoadmapURL = "https://roadmap.ente.io";
+const int kMicroSecondsInDay = 86400000000;
+const int kAndroid11SDKINT = 30;

+ 3 - 3
lib/main.dart

@@ -5,9 +5,10 @@ import 'package:flutter/foundation.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter_easyloading/flutter_easyloading.dart';
 import 'package:in_app_purchase/in_app_purchase.dart';
+import 'package:logging/logging.dart';
 import 'package:path_provider/path_provider.dart';
-import 'package:photos/core/constants.dart';
 import 'package:photos/core/configuration.dart';
+import 'package:photos/core/constants.dart';
 import 'package:photos/core/network.dart';
 import 'package:photos/db/upload_locks_db.dart';
 import 'package:photos/services/billing_service.dart';
@@ -25,7 +26,6 @@ import 'package:photos/utils/crypto_util.dart';
 import 'package:photos/utils/file_uploader.dart';
 import 'package:shared_preferences/shared_preferences.dart';
 import 'package:super_logging/super_logging.dart';
-import 'package:logging/logging.dart';
 
 final _logger = Logger("main");
 
@@ -166,7 +166,7 @@ Future _runWithLogs(Function() function, {String prefix = ""}) async {
     body: function,
     logDirPath: (await getTemporaryDirectory()).path + "/logs",
     maxLogFiles: 5,
-    sentryDsn: kDebugMode ? SENTRY_DEBUG_DSN : SENTRY_DSN,
+    sentryDsn: kDebugMode ? kSentryDebugDSN : kSentryDSN,
     enableInDebugMode: true,
     prefix: prefix,
   ));

+ 1 - 1
lib/services/memories_service.dart

@@ -27,7 +27,7 @@ class MemoriesService extends ChangeNotifier {
       _cachedMemories = null;
     });
     await _memoriesDB.clearMemoriesSeenBeforeTime(
-        DateTime.now().microsecondsSinceEpoch - (7 * MICRO_SECONDS_IN_DAY));
+        DateTime.now().microsecondsSinceEpoch - (7 * kMicroSecondsInDay));
   }
 
   void clearCache() {

+ 1 - 1
lib/services/sync_service.dart

@@ -231,7 +231,7 @@ class SyncService {
     final lastNotificationShownTime =
         _prefs.getInt(kLastStorageLimitExceededNotificationPushTime) ?? 0;
     final now = DateTime.now().microsecondsSinceEpoch;
-    if ((now - lastNotificationShownTime) > MICRO_SECONDS_IN_DAY) {
+    if ((now - lastNotificationShownTime) > kMicroSecondsInDay) {
       await _prefs.setInt(kLastStorageLimitExceededNotificationPushTime, now);
       NotificationService.instance.showNotification(
           "storage limit exceeded", "sorry, we had to pause your backups");

+ 1 - 1
lib/services/update_service.dart

@@ -51,7 +51,7 @@ class UpdateService {
         _prefs.getInt(kUpdateAvailableShownTimeKey) ?? 0;
     final now = DateTime.now().microsecondsSinceEpoch;
     final hasBeen3DaysSinceLastNotification =
-        (now - lastNotificationShownTime) > (3 * MICRO_SECONDS_IN_DAY);
+        (now - lastNotificationShownTime) > (3 * kMicroSecondsInDay);
     if (shouldUpdate &&
         hasBeen3DaysSinceLastNotification &&
         _latestVersion.shouldNotify) {

+ 1 - 1
lib/ui/huge_listview/lazy_loading_gallery.dart

@@ -99,7 +99,7 @@ class _LazyLoadingGalleryState extends State<LazyLoadingGallery> {
             DateTime(galleryDate.year, galleryDate.month, galleryDate.day);
         final result = await widget.asyncLoader(
             dayStartTime.microsecondsSinceEpoch,
-            dayStartTime.microsecondsSinceEpoch + MICRO_SECONDS_IN_DAY - 1);
+            dayStartTime.microsecondsSinceEpoch + kMicroSecondsInDay - 1);
         if (result.files.isEmpty) {
           // All files on this day were deleted, let gallery trigger the reload
         } else {

+ 1 - 1
lib/ui/settings/support_section_widget.dart

@@ -72,7 +72,7 @@ class SupportSectionWidget extends StatelessWidget {
                   final isLoggedIn = Configuration.instance.getToken() != null;
                   final url = isLoggedIn
                       ? endpoint + "?token=" + Configuration.instance.getToken()
-                      : ROADMAP_URL;
+                      : kRoadmapURL;
                   return WebPage("roadmap", url);
                 },
               ),

+ 7 - 7
lib/ui/thumbnail_widget.dart

@@ -1,12 +1,12 @@
 import 'package:flutter/material.dart';
+import 'package:logging/logging.dart';
 import 'package:photos/core/cache/thumbnail_cache.dart';
+import 'package:photos/core/constants.dart';
 import 'package:photos/core/errors.dart';
 import 'package:photos/core/event_bus.dart';
 import 'package:photos/db/files_db.dart';
 import 'package:photos/events/local_photos_updated_event.dart';
 import 'package:photos/models/file.dart';
-import 'package:logging/logging.dart';
-import 'package:photos/core/constants.dart';
 import 'package:photos/models/file_type.dart';
 import 'package:photos/ui/common_elements.dart';
 import 'package:photos/utils/thumbnail_util.dart';
@@ -152,7 +152,7 @@ class _ThumbnailWidgetState extends State<ThumbnailWidget> {
         !_isLoadingThumbnail) {
       _isLoadingThumbnail = true;
       final cachedSmallThumbnail =
-          ThumbnailLruCache.get(widget.file, THUMBNAIL_SMALL_SIZE);
+          ThumbnailLruCache.get(widget.file, kThumbnailSmallSize);
       if (cachedSmallThumbnail != null) {
         _imageProvider = Image.memory(cachedSmallThumbnail).image;
         _hasLoadedThumbnail = true;
@@ -185,16 +185,16 @@ class _ThumbnailWidgetState extends State<ThumbnailWidget> {
       }
       asset
           .thumbDataWithSize(
-        THUMBNAIL_SMALL_SIZE,
-        THUMBNAIL_SMALL_SIZE,
-        quality: THUMBNAIL_QUALITY,
+        kThumbnailSmallSize,
+        kThumbnailSmallSize,
+        quality: kThumbnailQuality,
       )
           .then((data) {
         if (data != null && mounted) {
           final imageProvider = Image.memory(data).image;
           _cacheAndRender(imageProvider);
         }
-        ThumbnailLruCache.put(widget.file, data, THUMBNAIL_SMALL_SIZE);
+        ThumbnailLruCache.put(widget.file, data, kThumbnailSmallSize);
       });
     }).catchError((e) {
       _logger.warning("Could not load image: ", e);

+ 6 - 6
lib/ui/zoomable_image.dart

@@ -2,15 +2,15 @@ import 'package:flutter/foundation.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter/widgets.dart';
 import 'package:logging/logging.dart';
+import 'package:photo_view/photo_view.dart';
 import 'package:photos/core/cache/image_cache.dart';
 import 'package:photos/core/cache/thumbnail_cache.dart';
+import 'package:photos/core/constants.dart';
 import 'package:photos/core/event_bus.dart';
 import 'package:photos/db/files_db.dart';
 import 'package:photos/events/local_photos_updated_event.dart';
 import 'package:photos/models/file.dart';
 import 'package:photos/ui/loading_widget.dart';
-import 'package:photo_view/photo_view.dart';
-import 'package:photos/core/constants.dart';
 import 'package:photos/utils/file_util.dart';
 import 'package:photos/utils/thumbnail_util.dart';
 
@@ -119,7 +119,7 @@ class _ZoomableImageState extends State<ZoomableImage>
         !_loadedLargeThumbnail &&
         !_loadedFinalImage) {
       final cachedThumbnail =
-          ThumbnailLruCache.get(_photo, THUMBNAIL_SMALL_SIZE);
+          ThumbnailLruCache.get(_photo, kThumbnailSmallSize);
       if (cachedThumbnail != null) {
         _imageProvider = Image.memory(cachedThumbnail).image;
         _loadedSmallThumbnail = true;
@@ -131,7 +131,7 @@ class _ZoomableImageState extends State<ZoomableImage>
         !_loadedFinalImage) {
       _loadingLargeThumbnail = true;
       final cachedThumbnail =
-          ThumbnailLruCache.get(_photo, THUMBNAIL_LARGE_SIZE);
+          ThumbnailLruCache.get(_photo, kThumbnailLargeSize);
       if (cachedThumbnail != null) {
         _onLargeThumbnailLoaded(Image.memory(cachedThumbnail).image, context);
       } else {
@@ -141,14 +141,14 @@ class _ZoomableImageState extends State<ZoomableImage>
             return;
           }
           asset
-              .thumbDataWithSize(THUMBNAIL_LARGE_SIZE, THUMBNAIL_LARGE_SIZE)
+              .thumbDataWithSize(kThumbnailLargeSize, kThumbnailLargeSize)
               .then((data) {
             if (data == null) {
               // Deleted file
               return;
             }
             _onLargeThumbnailLoaded(Image.memory(data).image, context);
-            ThumbnailLruCache.put(_photo, data, THUMBNAIL_LARGE_SIZE);
+            ThumbnailLruCache.put(_photo, data, kThumbnailLargeSize);
           });
         });
       }

+ 1 - 1
lib/utils/delete_file_util.dart

@@ -147,7 +147,7 @@ Future<bool> deleteLocalFiles(
   final List<String> deletedIDs = [];
   if (Platform.isAndroid) {
     final androidInfo = await DeviceInfoPlugin().androidInfo;
-    if (androidInfo.version.sdkInt < ANDROID_11_SDK_INT) {
+    if (androidInfo.version.sdkInt < kAndroid11SDKINT) {
       deletedIDs.addAll(await _deleteLocalFilesInBatches(context, localIDs));
     } else {
       deletedIDs.addAll(await _deleteLocalFilesInOneShot(context, localIDs));

+ 5 - 6
lib/utils/file_uploader_util.dart

@@ -1,14 +1,13 @@
 import 'dart:async';
 import 'dart:io' as io;
-
 import 'dart:typed_data';
 
 import 'package:logging/logging.dart';
 import 'package:photo_manager/photo_manager.dart';
 import 'package:photos/core/constants.dart';
 import 'package:photos/core/errors.dart';
-import 'package:photos/models/location.dart';
 import 'package:photos/models/file.dart' as ente;
+import 'package:photos/models/location.dart';
 
 import 'file_util.dart';
 
@@ -60,12 +59,12 @@ Future<MediaUploadData> _getMediaUploadDataFromAssetFile(ente.File file) async {
     throw InvalidFileError();
   }
   thumbnailData = await asset.thumbDataWithSize(
-    THUMBNAIL_SMALL_SIZE,
-    THUMBNAIL_SMALL_SIZE,
-    quality: THUMBNAIL_QUALITY,
+    kThumbnailSmallSize,
+    kThumbnailSmallSize,
+    quality: kThumbnailQuality,
   );
   int compressionAttempts = 0;
-  while (thumbnailData.length > THUMBNAIL_DATA_LIMIT &&
+  while (thumbnailData.length > kThumbnailDataLimit &&
       compressionAttempts < kMaximumThumbnailCompressionAttempts) {
     _logger.info("Thumbnail size " + thumbnailData.length.toString());
     thumbnailData = await compressThumbnail(thumbnailData);

+ 12 - 12
lib/utils/file_util.dart

@@ -2,12 +2,12 @@ import 'dart:async';
 import 'dart:io' as io;
 import 'dart:typed_data';
 
-import 'package:flutter_sodium/flutter_sodium.dart';
-import 'package:logging/logging.dart';
-import 'package:path/path.dart';
 import 'package:dio/dio.dart';
 import 'package:flutter_cache_manager/flutter_cache_manager.dart';
 import 'package:flutter_image_compress/flutter_image_compress.dart';
+import 'package:flutter_sodium/flutter_sodium.dart';
+import 'package:logging/logging.dart';
+import 'package:path/path.dart';
 import 'package:photos/core/cache/image_cache.dart';
 import 'package:photos/core/cache/thumbnail_cache.dart';
 import 'package:photos/core/cache/video_cache_manager.dart';
@@ -48,19 +48,19 @@ void preloadThumbnail(ente.File file) {
   if (file.isRemoteFile()) {
     getThumbnailFromServer(file);
   } else {
-    if (ThumbnailLruCache.get(file, THUMBNAIL_SMALL_SIZE) != null) {
+    if (ThumbnailLruCache.get(file, kThumbnailSmallSize) != null) {
       return;
     }
     file.getAsset().then((asset) {
       if (asset != null) {
         asset
             .thumbDataWithSize(
-          THUMBNAIL_SMALL_SIZE,
-          THUMBNAIL_SMALL_SIZE,
-          quality: THUMBNAIL_QUALITY,
+          kThumbnailSmallSize,
+          kThumbnailSmallSize,
+          quality: kThumbnailQuality,
         )
             .then((data) {
-          ThumbnailLruCache.put(file, data, THUMBNAIL_SMALL_SIZE);
+          ThumbnailLruCache.put(file, data, kThumbnailSmallSize);
         });
       }
     });
@@ -136,11 +136,11 @@ Future<io.File> _downloadAndDecrypt(
     var fileExtension = "unknown";
     try {
       fileExtension = extension(file.title).substring(1).toLowerCase();
-    } catch(e) {
+    } catch (e) {
       _logger.severe("Could not capture file extension");
     }
     var outputFile = decryptedFile;
-    if ((fileExtension=="unknown" && file.fileType == FileType.image) || 
+    if ((fileExtension == "unknown" && file.fileType == FileType.image) ||
         (io.Platform.isAndroid && fileExtension == "heic")) {
       outputFile = await FlutterImageCompress.compressAndGetFile(
         decryptedFilePath,
@@ -175,8 +175,8 @@ Uint8List decryptFileKey(ente.File file) {
 Future<Uint8List> compressThumbnail(Uint8List thumbnail) {
   return FlutterImageCompress.compressWithList(
     thumbnail,
-    minHeight: COMPRESSED_THUMBNAIL_RESOLUTION,
-    minWidth: COMPRESSED_THUMBNAIL_RESOLUTION,
+    minHeight: kCompressedThumbnailResolution,
+    minWidth: kCompressedThumbnailResolution,
     quality: 25,
   );
 }

+ 5 - 6
lib/utils/thumbnail_util.dart

@@ -1,6 +1,6 @@
 import 'dart:async';
 import 'dart:collection';
-
+import 'dart:io' as io;
 import 'dart:typed_data';
 
 import 'package:dio/dio.dart';
@@ -15,8 +15,6 @@ import 'package:photos/models/file.dart';
 import 'package:photos/utils/crypto_util.dart';
 import 'package:photos/utils/file_util.dart';
 
-import 'dart:io' as io;
-
 final _logger = Logger("ThumbnailUtil");
 final _map = LinkedHashMap<int, FileDownloadItem>();
 final _queue = Queue<int>();
@@ -110,7 +108,7 @@ Future<void> _downloadAndDecryptThumbnail(FileDownloadItem item) async {
     Sodium.base642bin(file.thumbnailDecryptionHeader),
   );
   final thumbnailSize = data.length;
-  if (thumbnailSize > THUMBNAIL_DATA_LIMIT) {
+  if (thumbnailSize > kThumbnailDataLimit) {
     data = await compressThumbnail(data);
   }
   ThumbnailLruCache.put(item.file, data);
@@ -132,5 +130,6 @@ Future<void> _downloadAndDecryptThumbnail(FileDownloadItem item) async {
 io.File getCachedThumbnail(File file) {
   final thumbnailCacheDirectory =
       Configuration.instance.getThumbnailCacheDirectory();
-  return io.File(thumbnailCacheDirectory + "/" + file.uploadedFileID.toString());
-}
+  return io.File(
+      thumbnailCacheDirectory + "/" + file.uploadedFileID.toString());
+}