Skip to content
This repository was archived by the owner on May 23, 2025. It is now read-only.

Commit cd83201

Browse files
committed
3335: Use different bounding aspect ratios for landscape
1 parent b4d10c9 commit cd83201

1 file changed

Lines changed: 9 additions & 2 deletions

File tree

app/src/main/java/com/keylesspalace/tusky/util/AttachmentHelper.kt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
package com.keylesspalace.tusky.util
44

55
import android.content.Context
6+
import android.content.res.Resources
67
import com.keylesspalace.tusky.R
78
import com.keylesspalace.tusky.entity.Attachment
89
import kotlin.math.roundToInt
@@ -27,10 +28,16 @@ private fun formatDuration(durationInSeconds: Double): String {
2728
}
2829

2930
fun List<Attachment>.aspectRatios(): List<Double> {
31+
val displayMetrics = Resources.getSystem().displayMetrics
32+
val deviceIsHigher = displayMetrics.heightPixels > displayMetrics.widthPixels
33+
34+
val minAspect = if (deviceIsHigher) 0.5 else 1.2
35+
val maxAspect = if (deviceIsHigher) 2.0 else 3.0
36+
3037
return map { attachment ->
31-
// clamp ratio between 2:1 & 1:2, defaulting to 16:9
38+
// clamp ratio between min & max, defaulting to 16:9 if there is no metadata
3239
val size = (attachment.meta?.small ?: attachment.meta?.original) ?: return@map 1.7778
3340
val aspect = if (size.aspect > 0) size.aspect else size.width.toDouble() / size.height
34-
aspect.coerceIn(0.5, 2.0)
41+
aspect.coerceIn(minAspect, maxAspect)
3542
}
3643
}

0 commit comments

Comments
 (0)