update clickable list items

This commit is contained in:
X1nto 2021-12-02 15:45:35 +04:00
parent a0761554b2
commit e9e4222014
7 changed files with 28 additions and 32 deletions

View File

@ -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)
} }
) )

View File

@ -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)
}
) )
} }
} }

View File

@ -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
) )
} }
} }

View File

@ -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()
}
) )
} }
) )

View File

@ -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
) )
} }
) )

View File

@ -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
), ),

View File

@ -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,