jaqxues
10/09/2020, 8:02 PMfun SwitchPreference(pref: Preference<Boolean>, text: @Composable () -> Unit) {
var switchedState = true
var active by remember {
switchedState = false
mutableStateOf(pref.getPref())
}
if (active) {
pref.putPref(active)
}
Card(
Modifier.fillMaxWidth().clickable(onClick = { active = !active}),
shape = RoundedCornerShape(8.dp)
) {
Row(Modifier.padding(16.dp)) {
text()
Spacer(Modifier.weight(1f))
if (switchedState) {
pref.putPref(active)
}
Switch(checked = active, onCheckedChange = {
active = it
})
}
}
}
allan.conda
10/09/2020, 8:06 PMModifier.toggleable()
should be easierjaqxues
10/09/2020, 8:07 PMallan.conda
10/09/2020, 8:07 PMjaqxues
10/09/2020, 8:09 PMallan.conda
10/09/2020, 8:11 PMvar toggled by remember{mutableStateOf(true)}
Modifier.toggleable(value = toggled, onValueChange = { toggled = it })
jaqxues
10/09/2020, 8:13 PMallan.conda
10/09/2020, 8:14 PMCard(
Modifier.fillMaxWidth(),
shape = RoundedCornerShape(8.dp)
) {
Row(Modifier.padding(16.dp)) {
text()
Spacer(Modifier.weight(1f))
var toggle by remember { mutableStateOf(pref.getPref()) }
Switch(checked = active, onCheckedChange = {
toggle = it
pref.putPref(toggle)
})
}
}
jaqxues
10/09/2020, 8:16 PM@Composable
fun SwitchPreference(pref: Preference<Boolean>, text: @Composable () -> Unit) {
var switchedState = true
var active by remember {
switchedState = false
mutableStateOf(pref.getPref())
}
Card(
Modifier.fillMaxWidth().toggleable(active) { active = it },
shape = RoundedCornerShape(8.dp)
) {
if (switchedState)
pref.putPref(active)
Row(Modifier.padding(16.dp)) {
text()
Spacer(Modifier.weight(1f))
Switch(checked = active, onCheckedChange = {
active = it
})
}
}
}
allan.conda
10/09/2020, 8:18 PMvar toggle by remember { mutableStateOf(pref.getPref()) }
Card(
Modifier.fillMaxWidth()
.toggleable(value = toggle, {
toggle = it
pref.putPref(toggle)
}),
shape = RoundedCornerShape(8.dp)
) {
Row(Modifier.padding(16.dp)) {
text()
Spacer(Modifier.weight(1f))
Switch(checked = active, onCheckedChange = {
toggle = it
pref.putPref(toggle)
})
}
}
if (switchedState)
pref.putPref(active)
if it checks switched to true once, it will never turn offjaqxues
10/09/2020, 8:19 PMallan.conda
10/09/2020, 8:20 PMjaqxues
10/09/2020, 8:20 PMallan.conda
10/09/2020, 8:22 PMvar toggle by remember { mutableStateOf(pref.getPref()) }
val onToggle = {
toggle = it
pref.putPref(it)
}
Card(
Modifier.fillMaxWidth()
.toggleable(value = toggle, onToggle),
shape = RoundedCornerShape(8.dp)
) {
Row(Modifier.padding(16.dp)) {
text()
Spacer(Modifier.weight(1f))
Switch(checked = active, onCheckedChange = onToggle)
}
}
jaqxues
10/09/2020, 8:23 PMallan.conda
10/09/2020, 8:23 PMjaqxues
10/09/2020, 8:24 PM