mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-04-25 20:32:10 +00:00
Add: StringPref composable
This commit is contained in:
parent
58e5f6a57a
commit
47382e993a
@ -285,3 +285,41 @@ fun IntPreference(
|
|||||||
onClick = onClick
|
onClick = onClick
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun StringPreference(
|
||||||
|
modifier: Modifier = Modifier,
|
||||||
|
prefKey: Preferences.Key<String>,
|
||||||
|
index: Int = 1,
|
||||||
|
groupSize: Int = 1,
|
||||||
|
onClick: (() -> Unit) = {},
|
||||||
|
) {
|
||||||
|
val dependency = PrefsDependencies[prefKey]
|
||||||
|
var isEnabled by remember {
|
||||||
|
mutableStateOf(dependency?.let { Preferences[dependency] != it.default.value } ?: true)
|
||||||
|
}
|
||||||
|
var prefValue by remember {
|
||||||
|
mutableStateOf(Preferences[prefKey])
|
||||||
|
}
|
||||||
|
SideEffect {
|
||||||
|
CoroutineScope(Dispatchers.Default).launch {
|
||||||
|
Preferences.subject.collect {
|
||||||
|
when (it) {
|
||||||
|
prefKey -> prefValue = Preferences[prefKey]
|
||||||
|
dependency -> isEnabled = Preferences[it] != it.default.value
|
||||||
|
else -> {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
BasePreference(
|
||||||
|
modifier = modifier,
|
||||||
|
titleId = NonBooleanPrefsMeta[prefKey] ?: -1,
|
||||||
|
summary = prefValue,
|
||||||
|
index = index,
|
||||||
|
groupSize = groupSize,
|
||||||
|
isEnabled = isEnabled,
|
||||||
|
onClick = onClick
|
||||||
|
)
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user