diff --git a/android/app/build.gradle b/android/app/build.gradle index aa7b88db9..5c865db38 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -123,7 +123,7 @@ dependencies { // https://jitpack.io/com/github/deckerst/Android-TiffBitmapFactory/**********/build.log implementation 'com.github.deckerst:Android-TiffBitmapFactory:876e53870a' // forked, built by JitPack // https://jitpack.io/com/github/deckerst/pixymeta-android/**********/build.log - implementation 'com.github.deckerst:pixymeta-android:e4e50da939' // forked, built by JitPack + implementation 'com.github.deckerst:pixymeta-android:0827df80b9' // forked, built by JitPack implementation 'com.github.bumptech.glide:glide:4.12.0' kapt 'androidx.annotation:annotation:1.2.0' diff --git a/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/MetadataEditHandler.kt b/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/MetadataEditHandler.kt index c37610dc3..6ff4ef4b4 100644 --- a/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/MetadataEditHandler.kt +++ b/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/MetadataEditHandler.kt @@ -63,7 +63,7 @@ class MetadataEditHandler(private val activity: Activity) : MethodCallHandler { provider.editOrientation(activity, path, uri, mimeType, op, object : ImageOpCallback { override fun onSuccess(fields: FieldMap) = result.success(fields) - override fun onFailure(throwable: Throwable) = result.error("editOrientation-failure", "failed to change orientation", throwable.message) + override fun onFailure(throwable: Throwable) = result.error("editOrientation-failure", "failed to change orientation for mimeType=$mimeType uri=$uri", throwable.message) }) } @@ -93,7 +93,7 @@ class MetadataEditHandler(private val activity: Activity) : MethodCallHandler { provider.editDate(activity, path, uri, mimeType, dateMillis, shiftMinutes, fields, object : ImageOpCallback { override fun onSuccess(fields: FieldMap) = result.success(fields) - override fun onFailure(throwable: Throwable) = result.error("editDate-failure", "failed to edit date", throwable.message) + override fun onFailure(throwable: Throwable) = result.error("editDate-failure", "failed to edit date for mimeType=$mimeType uri=$uri", throwable.message) }) } @@ -121,7 +121,7 @@ class MetadataEditHandler(private val activity: Activity) : MethodCallHandler { provider.removeMetadataTypes(activity, path, uri, mimeType, types.toSet(), object : ImageOpCallback { override fun onSuccess(fields: FieldMap) = result.success(fields) - override fun onFailure(throwable: Throwable) = result.error("removeTypes-failure", "failed to remove metadata", throwable.message) + override fun onFailure(throwable: Throwable) = result.error("removeTypes-failure", "failed to remove metadata for mimeType=$mimeType uri=$uri", throwable.message) }) } diff --git a/android/app/src/main/kotlin/deckers/thibault/aves/metadata/Metadata.kt b/android/app/src/main/kotlin/deckers/thibault/aves/metadata/Metadata.kt index a7d9364e5..022b16cd5 100644 --- a/android/app/src/main/kotlin/deckers/thibault/aves/metadata/Metadata.kt +++ b/android/app/src/main/kotlin/deckers/thibault/aves/metadata/Metadata.kt @@ -38,6 +38,7 @@ object Metadata { const val TYPE_IPTC = "iptc" const val TYPE_JFIF = "jfif" const val TYPE_JPEG_ADOBE = "jpeg_adobe" + const val TYPE_JPEG_COMMENT = "jpeg_comment" const val TYPE_JPEG_DUCKY = "jpeg_ducky" const val TYPE_PHOTOSHOP_IRB = "photoshop_irb" const val TYPE_XMP = "xmp" diff --git a/android/app/src/main/kotlin/deckers/thibault/aves/metadata/PixyMetaHelper.kt b/android/app/src/main/kotlin/deckers/thibault/aves/metadata/PixyMetaHelper.kt index f6d57680e..fb4df2a92 100644 --- a/android/app/src/main/kotlin/deckers/thibault/aves/metadata/PixyMetaHelper.kt +++ b/android/app/src/main/kotlin/deckers/thibault/aves/metadata/PixyMetaHelper.kt @@ -5,6 +5,7 @@ import deckers.thibault.aves.metadata.Metadata.TYPE_ICC_PROFILE import deckers.thibault.aves.metadata.Metadata.TYPE_IPTC import deckers.thibault.aves.metadata.Metadata.TYPE_JFIF import deckers.thibault.aves.metadata.Metadata.TYPE_JPEG_ADOBE +import deckers.thibault.aves.metadata.Metadata.TYPE_JPEG_COMMENT import deckers.thibault.aves.metadata.Metadata.TYPE_JPEG_DUCKY import deckers.thibault.aves.metadata.Metadata.TYPE_PHOTOSHOP_IRB import deckers.thibault.aves.metadata.Metadata.TYPE_XMP @@ -74,6 +75,7 @@ object PixyMetaHelper { TYPE_IPTC -> MetadataType.IPTC TYPE_JFIF -> MetadataType.JPG_JFIF TYPE_JPEG_ADOBE -> MetadataType.JPG_ADOBE + TYPE_JPEG_COMMENT -> MetadataType.COMMENT TYPE_JPEG_DUCKY -> MetadataType.JPG_DUCKY TYPE_PHOTOSHOP_IRB -> MetadataType.PHOTOSHOP_IRB TYPE_XMP -> MetadataType.XMP diff --git a/android/build.gradle b/android/build.gradle index 8a8b8f28c..316cfb5db 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -6,7 +6,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.0.1' + classpath 'com.android.tools.build:gradle:7.0.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.google.gms:google-services:4.3.10' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1' diff --git a/lib/model/metadata/enums.dart b/lib/model/metadata/enums.dart index cad167b28..97e548d6e 100644 --- a/lib/model/metadata/enums.dart +++ b/lib/model/metadata/enums.dart @@ -22,6 +22,8 @@ enum MetadataType { jfif, // JPEG APP14 / Adobe: https://www.exiftool.org/TagNames/JPEG.html#Adobe jpegAdobe, + // JPEG COM marker + jpegComment, // JPEG APP12 / Ducky: https://www.exiftool.org/TagNames/APP12.html#Ducky jpegDucky, // Photoshop IRB: https://www.adobe.com/devnet-apps/photoshop/fileformatashtml/ @@ -47,6 +49,7 @@ class MetadataTypes { static const jpeg = { MetadataType.jfif, MetadataType.jpegAdobe, + MetadataType.jpegComment, MetadataType.jpegDucky, }; } @@ -65,6 +68,8 @@ extension ExtraMetadataType on MetadataType { return 'JFIF'; case MetadataType.jpegAdobe: return 'Adobe JPEG'; + case MetadataType.jpegComment: + return 'JpegComment'; case MetadataType.jpegDucky: return 'Ducky'; case MetadataType.photoshopIrb: diff --git a/lib/services/metadata/metadata_edit_service.dart b/lib/services/metadata/metadata_edit_service.dart index 91976b3f1..7aa90ad98 100644 --- a/lib/services/metadata/metadata_edit_service.dart +++ b/lib/services/metadata/metadata_edit_service.dart @@ -118,6 +118,8 @@ class PlatformMetadataEditService implements MetadataEditService { return 'jfif'; case MetadataType.jpegAdobe: return 'jpeg_adobe'; + case MetadataType.jpegComment: + return 'jpeg_comment'; case MetadataType.jpegDucky: return 'jpeg_ducky'; case MetadataType.photoshopIrb: