Support HEIC/HEIF (#16)

* Support HEIC/HEIF backup
* Storing backup directly from original file from the phone
* Directly read and backup video file - Improve performance on video backup
This commit is contained in:
Alex
2022-02-09 20:48:06 -06:00
committed by GitHub
parent f578ca6d47
commit 38c968d47e
15 changed files with 252 additions and 232 deletions

View File

@@ -49,7 +49,6 @@ class ThumbnailImage extends HookConsumerWidget {
} else if (isMultiSelectEnable && !selectedAsset.contains(asset)) {
ref.watch(homePageStateProvider.notifier).addSingleSelectedItem(asset);
} else {
print(asset.id);
if (asset.type == 'IMAGE') {
AutoRouter.of(context).push(
ImageViewerRoute(

View File

@@ -126,7 +126,7 @@ class LoginButton extends ConsumerWidget {
} else {
ImmichToast.show(
context: context,
msg: "Error logging you in, check server url, emald and password!",
msg: "Error logging you in, check server url, email and password!",
toastType: ToastType.error);
}
},

View File

@@ -37,20 +37,12 @@ class BackupService {
for (var entity in assetList) {
try {
if (entity.type == AssetType.video) {
file = await entity.file;
file = await entity.originFile;
} else {
file = await entity.file.timeout(const Duration(seconds: 5));
file = await entity.originFile.timeout(const Duration(seconds: 5));
}
if (file != null) {
// reading exif
// var exifData = await readExifFromFile(file);
// for (String key in exifData.keys) {
// debugPrint("- $key (${exifData[key]?.tagType}): ${exifData[key]}");
// }
// debugPrint("------------------");
String originalFileName = await entity.titleAsync;
String fileNameWithoutPath = originalFileName.toString().split(".")[0];
var fileExtension = p.extension(file.path);

View File

@@ -1,9 +1,7 @@
import 'package:flutter/material.dart';
import 'package:path/path.dart' as p;
class FileHelper {
static getMimeType(String filePath) {
debugPrint(filePath);
var fileExtension = p.extension(filePath).split(".")[1];
switch (fileExtension.toLowerCase()) {
@@ -28,6 +26,12 @@ class FileHelper {
case 'avi':
return {"type": "video", "subType": "x-msvideo"};
case 'heic':
return {"type": "image", "subType": "heic"};
case 'heif':
return {"type": "image", "subType": "heif"};
default:
return {"type": "unsupport", "subType": "unsupport"};
}

View File

@@ -513,6 +513,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "0.12.11"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.3"
meta:
dependency: transitive
description:
@@ -818,7 +825,7 @@ packages:
name: test_api
url: "https://pub.dartlang.org"
source: hosted
version: "0.4.3"
version: "0.4.8"
timing:
dependency: transitive
description: