From 464094e6cb6bc721a5a3cc6a355327f6801402c5 Mon Sep 17 00:00:00 2001 From: Omni Devel Date: Sun, 21 Jun 2026 15:25:05 +0300 Subject: [PATCH] fix: fixed color picker --- .../ru/omni_devel/cards/EditCardActivity.kt | 31 ++++++++++++++++--- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/mobile/src/main/java/ru/omni_devel/cards/EditCardActivity.kt b/mobile/src/main/java/ru/omni_devel/cards/EditCardActivity.kt index 7a2d8de..7af69c1 100644 --- a/mobile/src/main/java/ru/omni_devel/cards/EditCardActivity.kt +++ b/mobile/src/main/java/ru/omni_devel/cards/EditCardActivity.kt @@ -2,6 +2,7 @@ package ru.omni_devel.cards import android.app.Activity import android.content.Intent +import android.content.res.Configuration import android.os.Bundle import android.widget.Toast import androidx.activity.ComponentActivity @@ -16,10 +17,12 @@ import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material3.Button @@ -37,6 +40,7 @@ import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp @@ -93,6 +97,10 @@ class SelectColorActivity : ComponentActivity() { @Composable fun EditColorPage(innerPadding: PaddingValues, currentColor: String?) { val activityContext = LocalActivity.current + val configuration = LocalConfiguration.current + + val screenHeight = configuration.screenHeightDp.dp + val isPortrait = configuration.orientation == Configuration.ORIENTATION_PORTRAIT var color by rememberSaveable { mutableStateOf(currentColor) } @@ -104,14 +112,27 @@ fun EditColorPage(innerPadding: PaddingValues, currentColor: String?) { ) { Column( modifier = Modifier.verticalScroll(rememberScrollState()), - verticalArrangement = Arrangement.spacedBy(8.dp) + verticalArrangement = Arrangement.spacedBy(8.dp), + horizontalAlignment = Alignment.CenterHorizontally ) { - HsvColorPicker( - modifier = Modifier + var colorPickerModifier = Modifier + .padding(10.dp) + + if (isPortrait) { + colorPickerModifier = colorPickerModifier .fillMaxWidth() .height(450.dp) - .padding(10.dp), - initialColor = currentColor?.let { Color(it.toColorInt()) }, + } else { + val size = screenHeight * 0.5f + + colorPickerModifier = colorPickerModifier + .height(size) + .width(size) + } + + HsvColorPicker( + modifier = colorPickerModifier, + initialColor = color?.let { Color(it.toColorInt()) }, controller = colorPickerController, onColorChanged = { colorEnvelope: ColorEnvelope -> color = "#${colorEnvelope.hexCode.substring(2)}"