diff --git a/android/app/src/main/kotlin/deckers/thibault/aves/model/provider/ImageProvider.kt b/android/app/src/main/kotlin/deckers/thibault/aves/model/provider/ImageProvider.kt index 9976f44b6..dd06a2e0c 100644 --- a/android/app/src/main/kotlin/deckers/thibault/aves/model/provider/ImageProvider.kt +++ b/android/app/src/main/kotlin/deckers/thibault/aves/model/provider/ImageProvider.kt @@ -597,8 +597,10 @@ abstract class ImageProvider { mimeType = mimeType, uri = uri, path = path, - // do not truncate - mode = "w", + // do not truncate with "t" + // "w" is enough on API 29+, but it will yield an empty file on API <29 + // so "r" is necessary for backward compatibility + mode = "rw", ) ?: throw Exception("failed to open file descriptor for uri=$uri path=$path") pfd.use { FileOutputStream(it.fileDescriptor).use { outputStream -> diff --git a/lib/model/entry.dart b/lib/model/entry.dart index c42f47af2..0be186e26 100644 --- a/lib/model/entry.dart +++ b/lib/model/entry.dart @@ -748,7 +748,7 @@ class AvesEntry { bool get isBurst => burstEntries?.isNotEmpty == true; - // for backwards compatibility + // for backward compatibility bool get _isMotionPhotoLegacy => isMultiPage && !isBurst && mimeType == MimeTypes.jpeg; bool get isMotionPhoto => (_catalogMetadata?.isMotionPhoto ?? false) || _isMotionPhotoLegacy; diff --git a/lib/widgets/settings/settings_page.dart b/lib/widgets/settings/settings_page.dart index 52e17402f..2a877e7fc 100644 --- a/lib/widgets/settings/settings_page.dart +++ b/lib/widgets/settings/settings_page.dart @@ -182,7 +182,7 @@ class _SettingsPageState extends State with FeedbackMixin { final version = allJsonMap[exportVersionKey]; final importable = {}; if (version == null) { - // backwards compatibility before versioning + // backward compatibility before versioning importable[AppExportItem.settings] = allJsonMap; } else { if (allJsonMap is! Map) {