mirror of
https://github.com/Myzel394/Alibi.git
synced 2025-06-19 07:15:25 +02:00
fix: Improve ThemeSelector
This commit is contained in:
parent
0fb341ffb9
commit
c994a47d8a
@ -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,11 +35,17 @@ 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
|
||||||
.width(100.dp)
|
.width(100.dp)
|
||||||
@ -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,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user