diff --git a/android/app/src/main/kotlin/deckers/thibault/aves/model/AvesEntry.kt b/android/app/src/main/kotlin/deckers/thibault/aves/model/AvesEntry.kt index 71f126f0d..424fdb08a 100644 --- a/android/app/src/main/kotlin/deckers/thibault/aves/model/AvesEntry.kt +++ b/android/app/src/main/kotlin/deckers/thibault/aves/model/AvesEntry.kt @@ -18,6 +18,12 @@ class AvesEntry(map: FieldMap) { val isRotated: Boolean get() = rotationDegrees % 180 == 90 + val displayWidth: Int + get() = if (isRotated) height else width + + val displayHeight: Int + get() = if (isRotated) width else height + companion object { // convenience method private fun toLong(o: Any?): Long? = when (o) { 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 0c00d42fb..093f2c997 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 @@ -298,11 +298,18 @@ abstract class ImageProvider { sourceDocFile.copyTo(output) } } else { - var targetWidthPx: Int = if (sourceEntry.isRotated) height else width - var targetHeightPx: Int = if (sourceEntry.isRotated) width else height - if (lengthUnit == LENGTH_UNIT_PERCENT) { - targetWidthPx = sourceEntry.width * targetWidthPx / 100 - targetHeightPx = sourceEntry.height * targetHeightPx / 100 + val targetWidthPx: Int + val targetHeightPx: Int + when (lengthUnit) { + LENGTH_UNIT_PERCENT -> { + targetWidthPx = sourceEntry.displayWidth * width / 100 + targetHeightPx = sourceEntry.displayHeight * height / 100 + } + + else -> { + targetWidthPx = width + targetHeightPx = height + } } val model: Any = if (pageId != null && MultiPageImage.isSupported(sourceMimeType)) {