fix: fixed color picker

This commit is contained in:
2026-06-21 15:25:05 +03:00
parent df95702247
commit 464094e6cb
@@ -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)}"