From 89ee3eb95f58b984034bf76d2a402d23fe4df25c Mon Sep 17 00:00:00 2001 From: KhooLy <73142442+KhooLy@users.noreply.github.com> Date: Mon, 13 Jul 2026 03:02:30 +0300 Subject: [PATCH] Move DeviceType and card size presets into the shared KMP module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DeviceType/LocalDeviceType/touchClickable and the four poster/ horizontal card size preset functions were pure Compose (no Android imports beyond foundation.clickable, which is multiplatform) — same straight move as FluxaColors/FluxaDimensions, same package name, zero call-site changes across the 38 files that reference them. This unblocks moving more of the mobile card layout math into :shared later, since the device-aware sizing helpers no longer live only in the Android-only app module. Verified compiling for android, iosArm64, iosSimulatorArm64, and both app product flavors still build. --- .../fluxa/app/ui/catalog/HomeLayoutHelpers.kt | 28 ---------------- .../fluxa/app/ui/catalog/CardSizePresets.kt | 32 +++++++++++++++++++ .../com/fluxa/app/ui/catalog}/DeviceType.kt | 5 --- 3 files changed, 32 insertions(+), 33 deletions(-) create mode 100644 shared/src/commonMain/kotlin/com/fluxa/app/ui/catalog/CardSizePresets.kt rename {app/src/main/java/com/fluxa/app/ui/device => shared/src/commonMain/kotlin/com/fluxa/app/ui/catalog}/DeviceType.kt (78%) diff --git a/app/src/main/java/com/fluxa/app/ui/catalog/HomeLayoutHelpers.kt b/app/src/main/java/com/fluxa/app/ui/catalog/HomeLayoutHelpers.kt index dc26182..d499d03 100644 --- a/app/src/main/java/com/fluxa/app/ui/catalog/HomeLayoutHelpers.kt +++ b/app/src/main/java/com/fluxa/app/ui/catalog/HomeLayoutHelpers.kt @@ -123,34 +123,6 @@ fun posterCornerRadius(value: String): Dp = with(FluxaDimensions.CornerPresets) } } -fun posterCardWidth(value: String): Dp = with(FluxaDimensions.PosterPresets) { - when (value) { - "xsmall" -> xsmall - "small" -> small - "large" -> large - "xlarge" -> xlarge - else -> medium - } -} - -fun posterCardHeight(value: String): Dp = posterCardWidth(value) * FluxaDimensions.PosterPresets.heightRatio - -fun horizontalCardWidth(value: String, deviceType: DeviceType): Dp { - val base = if (deviceType == DeviceType.TV) FluxaDimensions.HorizontalCard.tvBase else FluxaDimensions.HorizontalCard.mobileBase - val delta = with(FluxaDimensions.HorizontalCard) { - when (value) { - "xsmall" -> deltaXsmall - "small" -> deltaSmall - "large" -> deltaLarge - "xlarge" -> deltaXlarge - else -> 0.dp - } - } - return base + delta -} - -fun horizontalCardHeight(value: String, deviceType: DeviceType): Dp = horizontalCardWidth(value, deviceType) * FluxaDimensions.HorizontalCard.heightRatio - fun horizontalArtworkCandidates(meta: Meta, preferContinueWatchingArtwork: Boolean = false): List { val existingBackdrop = meta.background ?.takeIf { it.isNotBlank() } diff --git a/shared/src/commonMain/kotlin/com/fluxa/app/ui/catalog/CardSizePresets.kt b/shared/src/commonMain/kotlin/com/fluxa/app/ui/catalog/CardSizePresets.kt new file mode 100644 index 0000000..bf75b19 --- /dev/null +++ b/shared/src/commonMain/kotlin/com/fluxa/app/ui/catalog/CardSizePresets.kt @@ -0,0 +1,32 @@ +package com.fluxa.app.ui.catalog + +import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.dp + +fun posterCardWidth(value: String): Dp = with(FluxaDimensions.PosterPresets) { + when (value) { + "xsmall" -> xsmall + "small" -> small + "large" -> large + "xlarge" -> xlarge + else -> medium + } +} + +fun posterCardHeight(value: String): Dp = posterCardWidth(value) * FluxaDimensions.PosterPresets.heightRatio + +fun horizontalCardWidth(value: String, deviceType: DeviceType): Dp { + val base = if (deviceType == DeviceType.TV) FluxaDimensions.HorizontalCard.tvBase else FluxaDimensions.HorizontalCard.mobileBase + val delta = with(FluxaDimensions.HorizontalCard) { + when (value) { + "xsmall" -> deltaXsmall + "small" -> deltaSmall + "large" -> deltaLarge + "xlarge" -> deltaXlarge + else -> 0.dp + } + } + return base + delta +} + +fun horizontalCardHeight(value: String, deviceType: DeviceType): Dp = horizontalCardWidth(value, deviceType) * FluxaDimensions.HorizontalCard.heightRatio diff --git a/app/src/main/java/com/fluxa/app/ui/device/DeviceType.kt b/shared/src/commonMain/kotlin/com/fluxa/app/ui/catalog/DeviceType.kt similarity index 78% rename from app/src/main/java/com/fluxa/app/ui/device/DeviceType.kt rename to shared/src/commonMain/kotlin/com/fluxa/app/ui/catalog/DeviceType.kt index 4a2fdd8..e7d117b 100644 --- a/app/src/main/java/com/fluxa/app/ui/device/DeviceType.kt +++ b/shared/src/commonMain/kotlin/com/fluxa/app/ui/catalog/DeviceType.kt @@ -1,10 +1,5 @@ package com.fluxa.app.ui.catalog -import com.fluxa.app.data.local.* -import com.fluxa.app.data.remote.* -import com.fluxa.app.data.repository.* -import com.fluxa.app.domain.discovery.* - import androidx.compose.foundation.clickable import androidx.compose.runtime.Composable import androidx.compose.runtime.compositionLocalOf