update clickable list items
This commit is contained in:
parent
a0761554b2
commit
e9e4222014
|
@ -14,7 +14,7 @@ import com.vanced.manager.ui.resources.managerString
|
||||||
import com.vanced.manager.ui.widget.list.CheckboxItem
|
import com.vanced.manager.ui.widget.list.CheckboxItem
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun CheckboxDialogPreference(
|
fun MultiSelectDialogPreference(
|
||||||
preferenceTitle: String,
|
preferenceTitle: String,
|
||||||
preferenceDescription: String,
|
preferenceDescription: String,
|
||||||
isDialogVisible: Boolean,
|
isDialogVisible: Boolean,
|
||||||
|
@ -51,8 +51,8 @@ fun CheckboxDialogPreference(
|
||||||
val (title, key) = button
|
val (title, key) = button
|
||||||
CheckboxItem(
|
CheckboxItem(
|
||||||
text = title,
|
text = title,
|
||||||
isChecked = currentSelectedKeys.contains(key),
|
checked = currentSelectedKeys.contains(key),
|
||||||
onCheck = { isChecked ->
|
onCheckedChange = { isChecked ->
|
||||||
onItemCheckChange(isChecked, key)
|
onItemCheckChange(isChecked, key)
|
||||||
}
|
}
|
||||||
)
|
)
|
|
@ -14,7 +14,7 @@ import com.vanced.manager.ui.resources.managerString
|
||||||
import com.vanced.manager.ui.widget.list.RadiobuttonItem
|
import com.vanced.manager.ui.widget.list.RadiobuttonItem
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun RadiobuttonDialogPreference(
|
fun SingleSelectDialogPreference(
|
||||||
preferenceTitle: String,
|
preferenceTitle: String,
|
||||||
preferenceDescription: String,
|
preferenceDescription: String,
|
||||||
isDialogVisible: Boolean,
|
isDialogVisible: Boolean,
|
||||||
|
@ -51,9 +51,10 @@ fun RadiobuttonDialogPreference(
|
||||||
val (title, key) = button
|
val (title, key) = button
|
||||||
RadiobuttonItem(
|
RadiobuttonItem(
|
||||||
text = title,
|
text = title,
|
||||||
tag = key,
|
selected = currentSelectedKey == key,
|
||||||
isSelected = currentSelectedKey == key,
|
onClick = {
|
||||||
onSelect = onItemClick
|
onItemClick(key)
|
||||||
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -117,8 +117,8 @@ fun InstallPreferencesScreen(
|
||||||
CheckboxItem(
|
CheckboxItem(
|
||||||
modifier = Modifier.fillMaxWidth(),
|
modifier = Modifier.fillMaxWidth(),
|
||||||
text = item.displayText(item.key),
|
text = item.displayText(item.key),
|
||||||
isChecked = preference.contains(item.key),
|
checked = preference.contains(item.key),
|
||||||
onCheck = {
|
onCheckedChange = {
|
||||||
if (it) {
|
if (it) {
|
||||||
installationOption.addOption(item.key)
|
installationOption.addOption(item.key)
|
||||||
} else {
|
} else {
|
||||||
|
@ -134,11 +134,10 @@ fun InstallPreferencesScreen(
|
||||||
RadiobuttonItem(
|
RadiobuttonItem(
|
||||||
modifier = Modifier.fillMaxWidth(),
|
modifier = Modifier.fillMaxWidth(),
|
||||||
text = item.displayText(item.key),
|
text = item.displayText(item.key),
|
||||||
isSelected = preference == item.key,
|
selected = preference == item.key,
|
||||||
onSelect = {
|
onClick = {
|
||||||
installationOption.setOption(item.key)
|
installationOption.setOption(item.key)
|
||||||
},
|
},
|
||||||
tag = item.key
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,15 +12,15 @@ import com.vanced.manager.ui.component.text.ManagerText
|
||||||
@Composable
|
@Composable
|
||||||
fun CheckboxItem(
|
fun CheckboxItem(
|
||||||
text: String,
|
text: String,
|
||||||
isChecked: Boolean,
|
checked: Boolean,
|
||||||
onCheck: (Boolean) -> Unit,
|
onCheckedChange: (Boolean) -> Unit,
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
) {
|
) {
|
||||||
val toggle = { onCheck(!isChecked) }
|
|
||||||
|
|
||||||
ManagerSelectableListItem(
|
ManagerSelectableListItem(
|
||||||
modifier = modifier
|
modifier = modifier
|
||||||
.managerClickable(onClick = toggle),
|
.managerClickable(onClick = {
|
||||||
|
onCheckedChange(!checked)
|
||||||
|
}),
|
||||||
title = {
|
title = {
|
||||||
ManagerText(
|
ManagerText(
|
||||||
text = text,
|
text = text,
|
||||||
|
@ -30,10 +30,8 @@ fun CheckboxItem(
|
||||||
},
|
},
|
||||||
trailing = {
|
trailing = {
|
||||||
Checkbox(
|
Checkbox(
|
||||||
checked = isChecked,
|
checked = checked,
|
||||||
onCheckedChange = {
|
onCheckedChange = null
|
||||||
toggle()
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
|
@ -10,14 +10,12 @@ import com.vanced.manager.ui.component.modifier.managerClickable
|
||||||
import com.vanced.manager.ui.component.text.ManagerText
|
import com.vanced.manager.ui.component.text.ManagerText
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun <T> RadiobuttonItem(
|
fun RadiobuttonItem(
|
||||||
text: String,
|
text: String,
|
||||||
tag: T,
|
selected: Boolean,
|
||||||
isSelected: Boolean,
|
onClick: () -> Unit,
|
||||||
onSelect: (tag: T) -> Unit,
|
|
||||||
modifier: Modifier = Modifier
|
modifier: Modifier = Modifier
|
||||||
) {
|
) {
|
||||||
val onClick = { onSelect(tag) }
|
|
||||||
ManagerSelectableListItem(
|
ManagerSelectableListItem(
|
||||||
modifier = modifier
|
modifier = modifier
|
||||||
.managerClickable(onClick = onClick),
|
.managerClickable(onClick = onClick),
|
||||||
|
@ -30,8 +28,8 @@ fun <T> RadiobuttonItem(
|
||||||
},
|
},
|
||||||
trailing = {
|
trailing = {
|
||||||
RadioButton(
|
RadioButton(
|
||||||
selected = isSelected,
|
selected = selected,
|
||||||
onClick = onClick
|
onClick = null
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
|
@ -4,14 +4,14 @@ import androidx.compose.runtime.*
|
||||||
import com.vanced.manager.R
|
import com.vanced.manager.R
|
||||||
import com.vanced.manager.core.preferences.RadioButtonPreference
|
import com.vanced.manager.core.preferences.RadioButtonPreference
|
||||||
import com.vanced.manager.core.preferences.holder.managerVariantPref
|
import com.vanced.manager.core.preferences.holder.managerVariantPref
|
||||||
import com.vanced.manager.ui.component.preference.RadiobuttonDialogPreference
|
import com.vanced.manager.ui.component.preference.SingleSelectDialogPreference
|
||||||
import com.vanced.manager.ui.resources.managerString
|
import com.vanced.manager.ui.resources.managerString
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun SettingsManagerVariantItem() {
|
fun SettingsManagerVariantItem() {
|
||||||
var showDialog by remember { mutableStateOf(false) }
|
var showDialog by remember { mutableStateOf(false) }
|
||||||
var selectedKey by remember { mutableStateOf(managerVariantPref) }
|
var selectedKey by remember { mutableStateOf(managerVariantPref) }
|
||||||
RadiobuttonDialogPreference(
|
SingleSelectDialogPreference(
|
||||||
preferenceTitle = managerString(
|
preferenceTitle = managerString(
|
||||||
stringId = R.string.settings_preference_variant_title
|
stringId = R.string.settings_preference_variant_title
|
||||||
),
|
),
|
||||||
|
|
|
@ -4,14 +4,14 @@ import androidx.compose.runtime.*
|
||||||
import com.vanced.manager.R
|
import com.vanced.manager.R
|
||||||
import com.vanced.manager.core.preferences.RadioButtonPreference
|
import com.vanced.manager.core.preferences.RadioButtonPreference
|
||||||
import com.vanced.manager.core.preferences.holder.managerThemePref
|
import com.vanced.manager.core.preferences.holder.managerThemePref
|
||||||
import com.vanced.manager.ui.component.preference.RadiobuttonDialogPreference
|
import com.vanced.manager.ui.component.preference.SingleSelectDialogPreference
|
||||||
import com.vanced.manager.ui.resources.managerString
|
import com.vanced.manager.ui.resources.managerString
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun ThemeSettingsItem() {
|
fun ThemeSettingsItem() {
|
||||||
var showDialog by remember { mutableStateOf(false) }
|
var showDialog by remember { mutableStateOf(false) }
|
||||||
var selectedKey by remember { mutableStateOf(managerThemePref) }
|
var selectedKey by remember { mutableStateOf(managerThemePref) }
|
||||||
RadiobuttonDialogPreference(
|
SingleSelectDialogPreference(
|
||||||
preferenceTitle = managerString(stringId = R.string.settings_preference_theme_title),
|
preferenceTitle = managerString(stringId = R.string.settings_preference_theme_title),
|
||||||
preferenceDescription = managerThemePref,
|
preferenceDescription = managerThemePref,
|
||||||
isDialogVisible = showDialog,
|
isDialogVisible = showDialog,
|
||||||
|
|
Loading…
Reference in New Issue