Fix lint warnings
This commit is contained in:
parent
2747810cb3
commit
9f8c409f3d
4
lib/core/cache/thumbnail_cache.dart
vendored
4
lib/core/cache/thumbnail_cache.dart
vendored
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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,
|
||||
));
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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);
|
||||
},
|
||||
),
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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,
|
||||
);
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue