fix: Improve ThemeSelector

This commit is contained in:
Myzel394 2023-10-22 15:02:28 +02:00
parent 0fb341ffb9
commit c994a47d8a
No known key found for this signature in database
GPG Key ID: 79CC92F37B3E1A2B

View File

@ -7,14 +7,18 @@ import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.width
import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.CheckCircle
import androidx.compose.material.icons.filled.Mic import androidx.compose.material.icons.filled.Mic
import androidx.compose.material3.Icon import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.rememberCoroutineScope
@ -31,10 +35,16 @@ import kotlinx.coroutines.launch
@Composable @Composable
fun Preview( fun Preview(
modifier: Modifier = Modifier,
backgroundColor: Color, backgroundColor: Color,
primaryColor: Color, primaryColor: Color,
textColor: Color, textColor: Color,
onSelect: () -> Unit, onSelect: () -> Unit,
isSelected: Boolean = false,
) {
Box(
modifier = modifier,
contentAlignment = Alignment.Center,
) { ) {
Column( Column(
modifier = Modifier modifier = Modifier
@ -62,8 +72,7 @@ fun Preview(
) )
Box( Box(
modifier = Modifier modifier = Modifier
.width(10.dp) .size(10.dp)
.height(10.dp)
.clip(shape = RoundedCornerShape(10.dp)) .clip(shape = RoundedCornerShape(10.dp))
.background(primaryColor) .background(primaryColor)
) )
@ -94,6 +103,23 @@ fun Preview(
} }
Box {} Box {}
} }
if (isSelected) {
Column(
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center,
modifier = Modifier
.fillMaxSize(),
) {
Icon(
Icons.Default.CheckCircle,
contentDescription = null,
tint = MaterialTheme.colorScheme.onSurfaceVariant,
modifier = Modifier
.size(30.dp),
)
}
}
}
} }
@Composable @Composable
@ -113,6 +139,9 @@ fun ThemeSelector() {
.padding(16.dp) .padding(16.dp)
) { ) {
Preview( Preview(
modifier = Modifier
.fillMaxWidth()
.weight(1f),
backgroundColor = Color(0xFFF0F0F0), backgroundColor = Color(0xFFF0F0F0),
primaryColor = Color(0xFFAAAAAA), primaryColor = Color(0xFFAAAAAA),
textColor = Color(0xFFCCCCCC), textColor = Color(0xFFCCCCCC),
@ -122,9 +151,13 @@ fun ThemeSelector() {
it.setTheme(AppSettings.Theme.LIGHT) it.setTheme(AppSettings.Theme.LIGHT)
} }
} }
} },
isSelected = settings.theme == AppSettings.Theme.LIGHT,
) )
Preview( Preview(
modifier = Modifier
.fillMaxWidth()
.weight(1f),
backgroundColor = Color(0xFF444444), backgroundColor = Color(0xFF444444),
primaryColor = Color(0xFF888888), primaryColor = Color(0xFF888888),
textColor = Color(0xFF606060), textColor = Color(0xFF606060),
@ -134,7 +167,8 @@ fun ThemeSelector() {
it.setTheme(AppSettings.Theme.DARK) it.setTheme(AppSettings.Theme.DARK)
} }
} }
} },
isSelected = settings.theme == AppSettings.Theme.DARK,
) )
} }
} }