Clean up EnteFile
This commit is contained in:
@@ -588,7 +588,6 @@ class FilesDB with SqlDbBase {
|
||||
EnteFile _getFileFromRow(Map<String, dynamic> row) {
|
||||
final file = EnteFile();
|
||||
file.generatedID = row[columnGeneratedID];
|
||||
file.localID = row[columnLocalID];
|
||||
// file.uploadedFileID =
|
||||
// row[columnUploadedFileID] == -1 ? null : row[columnUploadedFileID];
|
||||
file.ownerID = row[columnOwnerID];
|
||||
|
||||
@@ -3,7 +3,6 @@ import "dart:core";
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:photo_manager/photo_manager.dart';
|
||||
import 'package:photos/core/constants.dart';
|
||||
import "package:photos/models/api/diff/trash_time.dart";
|
||||
import 'package:photos/models/file/file_type.dart';
|
||||
import "package:photos/models/file/remote/asset.dart";
|
||||
@@ -25,8 +24,6 @@ class EnteFile {
|
||||
int? generatedID;
|
||||
int? ownerID;
|
||||
|
||||
String? localID;
|
||||
|
||||
String? deviceFolder;
|
||||
int? creationTime;
|
||||
int? modificationTime;
|
||||
@@ -34,14 +31,11 @@ class EnteFile {
|
||||
late Location? location;
|
||||
late FileType fileType;
|
||||
|
||||
// String? hash;
|
||||
|
||||
EnteFile();
|
||||
|
||||
static Future<EnteFile> fromAsset(String pathName, AssetEntity lAsset) async {
|
||||
final EnteFile file = EnteFile();
|
||||
file.lAsset = lAsset;
|
||||
file.localID = lAsset.id;
|
||||
file.deviceFolder = pathName;
|
||||
file.location =
|
||||
Location(latitude: lAsset.latitude, longitude: lAsset.longitude);
|
||||
@@ -54,7 +48,6 @@ class EnteFile {
|
||||
static EnteFile fromAssetSync(AssetEntity asset) {
|
||||
final EnteFile file = EnteFile();
|
||||
file.lAsset = asset;
|
||||
file.localID = asset.id;
|
||||
file.deviceFolder = asset.relativePath;
|
||||
file.location =
|
||||
Location(latitude: asset.latitude, longitude: asset.longitude);
|
||||
@@ -82,6 +75,8 @@ class EnteFile {
|
||||
return file;
|
||||
}
|
||||
|
||||
String? get localID => lAsset?.id ?? sharedAsset?.id;
|
||||
|
||||
int get remoteID {
|
||||
if (rAsset != null) {
|
||||
return rAsset!.id;
|
||||
@@ -159,8 +154,9 @@ class EnteFile {
|
||||
return rAsset != null;
|
||||
}
|
||||
|
||||
bool get isSharedMediaToAppSandbox {
|
||||
return localID != null && localID!.startsWith(sharedMediaIdentifier);
|
||||
// returns true if the file is only available in the app's sandbox
|
||||
bool get isInAppMedia {
|
||||
return sharedAsset != null;
|
||||
}
|
||||
|
||||
bool get hasLocation {
|
||||
@@ -223,7 +219,6 @@ class EnteFile {
|
||||
..cf = cf
|
||||
..generatedID = generatedID ?? this.generatedID
|
||||
..ownerID = ownerID ?? this.ownerID
|
||||
..localID = localID ?? this.localID
|
||||
..deviceFolder = deviceFolder ?? this.deviceFolder
|
||||
..creationTime = creationTime ?? this.creationTime
|
||||
..modificationTime = modificationTime ?? this.modificationTime
|
||||
|
||||
@@ -755,7 +755,7 @@ class FileUploader {
|
||||
);
|
||||
if (uploadMedia.isDeleted) {
|
||||
_logger.info("File found to be deleted");
|
||||
remoteFile.localID = null;
|
||||
remoteFile.lAsset = null;
|
||||
}
|
||||
// await FilesDB.instance.update(remoteFile);
|
||||
}
|
||||
@@ -833,7 +833,7 @@ class FileUploader {
|
||||
// Shared Media should only be cleared when the upload
|
||||
// succeeds.
|
||||
if ((Platform.isIOS && (uploadCompleted || uploadHardFailure)) ||
|
||||
(uploadCompleted && file.isSharedMediaToAppSandbox)) {
|
||||
(uploadCompleted && file.isInAppMedia)) {
|
||||
await uploadMedia.delete();
|
||||
}
|
||||
}
|
||||
@@ -857,7 +857,7 @@ class FileUploader {
|
||||
final bool canIgnoreFile = file.localID != null &&
|
||||
file.deviceFolder != null &&
|
||||
file.title != null &&
|
||||
!file.isSharedMediaToAppSandbox;
|
||||
!file.isInAppMedia;
|
||||
// If the file is not uploaded yet and either it can not be ignored or the
|
||||
// err is related to live photo media, delete the local entry
|
||||
final bool deleteEntry =
|
||||
|
||||
@@ -20,7 +20,7 @@ Logger _logger = Logger("UploadMediaService");
|
||||
const kMaximumThumbnailCompressionAttempts = 2;
|
||||
|
||||
Future<UploadMedia> getUploadMedia(EnteFile file) async {
|
||||
if (file.isSharedMediaToAppSandbox) {
|
||||
if (file.isInAppMedia) {
|
||||
return _getUploadMediaFromSharedAsset(file);
|
||||
}
|
||||
return _getUploadMediaFromAsset(file);
|
||||
|
||||
@@ -57,7 +57,7 @@ class PreUploadCheck {
|
||||
);
|
||||
}
|
||||
final int userID = Configuration.instance.getUserID()!;
|
||||
final bool isSandBoxFile = fileToUpload.isSharedMediaToAppSandbox;
|
||||
final bool isSandBoxFile = fileToUpload.isInAppMedia;
|
||||
final remoteIDs = await remoteDB.idsWithSameHashAndType(
|
||||
uploadMedia.hash,
|
||||
userID,
|
||||
|
||||
@@ -138,7 +138,7 @@ class _VideoWidgetMediaKitState extends State<VideoWidgetMediaKit>
|
||||
if (widget.file.isRemoteFile) {
|
||||
_loadNetworkVideo();
|
||||
_setFileSizeIfNull();
|
||||
} else if (widget.file.isSharedMediaToAppSandbox) {
|
||||
} else if (widget.file.isInAppMedia) {
|
||||
final localFile = File(SharedAssetService.getPath(widget.file.localID!));
|
||||
if (localFile.existsSync()) {
|
||||
_setVideoController(localFile.path);
|
||||
|
||||
@@ -177,7 +177,7 @@ class _VideoWidgetNativeState extends State<VideoWidgetNative>
|
||||
if (widget.file.isRemoteFile) {
|
||||
_loadNetworkVideo(update);
|
||||
_setFileSizeIfNull();
|
||||
} else if (widget.file.isSharedMediaToAppSandbox) {
|
||||
} else if (widget.file.isInAppMedia) {
|
||||
final localFile = File(SharedAssetService.getPath(widget.file.localID!));
|
||||
if (localFile.existsSync()) {
|
||||
_setFilePathForNativePlayer(localFile.path, update);
|
||||
|
||||
@@ -9,6 +9,7 @@ import 'package:logging/logging.dart';
|
||||
import 'package:photo_view/photo_view.dart';
|
||||
import 'package:photos/core/constants.dart';
|
||||
import 'package:photos/core/event_bus.dart';
|
||||
import "package:photos/db/remote/table/mapping_table.dart";
|
||||
import "package:photos/events/file_caption_updated_event.dart";
|
||||
import "package:photos/events/files_updated_event.dart";
|
||||
import 'package:photos/events/local_photos_updated_event.dart';
|
||||
@@ -16,6 +17,7 @@ import "package:photos/events/reset_zoom_of_photo_view_event.dart";
|
||||
import "package:photos/image/in_memory_image_cache.dart";
|
||||
import "package:photos/models/file/extensions/file_props.dart";
|
||||
import 'package:photos/models/file/file.dart';
|
||||
import "package:photos/service_locator.dart";
|
||||
import "package:photos/states/detail_page_state.dart";
|
||||
import "package:photos/theme/colors.dart";
|
||||
import "package:photos/theme/ente_theme.dart";
|
||||
@@ -347,8 +349,9 @@ class _ZoomableImageState extends State<ZoomableImage> {
|
||||
);
|
||||
} else {
|
||||
_logger.info("File was deleted " + _photo.toString());
|
||||
if (_photo.isUploaded) {
|
||||
_photo.localID = null;
|
||||
if (_photo.isUploaded && _photo.lAsset != null) {
|
||||
remoteDB.deleteMappingsForLocalIDs({_photo.lAsset!.id}).ignore();
|
||||
_photo.lAsset = null;
|
||||
// FilesDB.instance.update(_photo);
|
||||
_loadNetworkImage();
|
||||
} else {
|
||||
|
||||
@@ -70,7 +70,7 @@ class _PreviewPropertiesItemWidgetState
|
||||
}
|
||||
|
||||
if ((widget.file.fileType == FileType.video) &&
|
||||
(widget.file.localID != null || widget.file.durationInSec != 0) &&
|
||||
(widget.file.lAsset != null || widget.file.durationInSec != 0) &&
|
||||
data.size != null) {
|
||||
// show bitrate, i.e. size * 8 / duration formatted
|
||||
final result = FFProbeProps.formatBitrate(
|
||||
|
||||
@@ -51,7 +51,7 @@ Future<void> deleteFilesFromEverywhere(
|
||||
if (!(await _localFileExist(file))) {
|
||||
_logger.warning("Already deleted " + file.toString());
|
||||
alreadyDeletedIDs.add(file.localID!);
|
||||
} else if (file.isSharedMediaToAppSandbox) {
|
||||
} else if (file.isInAppMedia) {
|
||||
sharedAssetIDs.add(file.localID!);
|
||||
} else {
|
||||
localAssetIDs.add(file.localID!);
|
||||
@@ -206,7 +206,7 @@ Future<void> deleteFilesOnDeviceOnly(
|
||||
if (!(await _localFileExist(file))) {
|
||||
_logger.warning("Already deleted " + file.toString());
|
||||
alreadyDeletedIDs.add(file.localID!);
|
||||
} else if (file.isSharedMediaToAppSandbox) {
|
||||
} else if (file.isInAppMedia) {
|
||||
localSharedMediaIDs.add(file.localID!);
|
||||
} else {
|
||||
localAssetIDs.add(file.localID!);
|
||||
@@ -240,7 +240,7 @@ Future<void> deleteFilesOnDeviceOnly(
|
||||
if (hasLocalOnlyFiles && localOnlyIDs.contains(file.localID)) {
|
||||
await FilesDB.instance.deleteLocalFile(file);
|
||||
} else {
|
||||
file.localID = null;
|
||||
file.lAsset = null;
|
||||
throw Exception("pending rewrite change");
|
||||
// await FilesDB.instance.update(file);
|
||||
}
|
||||
@@ -675,7 +675,7 @@ Future<void> _recursivelyReduceBatchSizeAndRetryDeletion({
|
||||
}
|
||||
|
||||
Future<bool> _localFileExist(EnteFile file) async {
|
||||
if (file.isSharedMediaToAppSandbox) {
|
||||
if (file.isInAppMedia) {
|
||||
final localFile = await SharedAssetService.getFile(file.localID!);
|
||||
return localFile != null;
|
||||
} else {
|
||||
|
||||
@@ -70,7 +70,7 @@ Future<File?> _getLocalDiskFile(
|
||||
bool liveVideo = false,
|
||||
bool isOrigin = false,
|
||||
}) {
|
||||
if (file.isSharedMediaToAppSandbox) {
|
||||
if (file.isInAppMedia) {
|
||||
return SharedAssetService.getFile(file.localID!);
|
||||
} else if (file.fileType == FileType.livePhoto && liveVideo) {
|
||||
return Motionphoto.getLivePhotoFile(file.localID!);
|
||||
|
||||
@@ -103,7 +103,7 @@ Future<Uint8List?> getThumbnailFromLocal(
|
||||
if (lruCachedThumbnail != null) {
|
||||
return lruCachedThumbnail;
|
||||
}
|
||||
if (file.isSharedMediaToAppSandbox) {
|
||||
if (file.isInAppMedia) {
|
||||
//todo:neeraj support specifying size/quality
|
||||
return SharedAssetService.getThumbnail(
|
||||
file.localID!,
|
||||
|
||||
Reference in New Issue
Block a user