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
@Composable
fun CheckboxDialogPreference(
fun MultiSelectDialogPreference(
preferenceTitle: String,
preferenceDescription: String,
isDialogVisible: Boolean,
@ -51,8 +51,8 @@ fun CheckboxDialogPreference(
val (title, key) = button
CheckboxItem(
text = title,
isChecked = currentSelectedKeys.contains(key),
onCheck = { isChecked ->
checked = currentSelectedKeys.contains(key),
onCheckedChange = { isChecked ->
onItemCheckChange(isChecked, key)
}
)

View File

@ -14,7 +14,7 @@ import com.vanced.manager.ui.resources.managerString
import com.vanced.manager.ui.widget.list.RadiobuttonItem
@Composable
fun RadiobuttonDialogPreference(
fun SingleSelectDialogPreference(
preferenceTitle: String,
preferenceDescription: String,
isDialogVisible: Boolean,
@ -51,9 +51,10 @@ fun RadiobuttonDialogPreference(
val (title, key) = button
RadiobuttonItem(
text = title,
tag = key,
isSelected = currentSelectedKey == key,
onSelect = onItemClick
selected = currentSelectedKey == key,
onClick = {
onItemClick(key)
}
)
}
}

View File

@ -117,8 +117,8 @@ fun InstallPreferencesScreen(
CheckboxItem(
modifier = Modifier.fillMaxWidth(),
text = item.displayText(item.key),
isChecked = preference.contains(item.key),
onCheck = {
checked = preference.contains(item.key),
onCheckedChange = {
if (it) {
installationOption.addOption(item.key)
} else {
@ -134,11 +134,10 @@ fun InstallPreferencesScreen(
RadiobuttonItem(
modifier = Modifier.fillMaxWidth(),
text = item.displayText(item.key),
isSelected = preference == item.key,
onSelect = {
selected = preference == item.key,
onClick = {
installationOption.setOption(item.key)
},
tag = item.key
)
}
}

View File

@ -12,15 +12,15 @@ import com.vanced.manager.ui.component.text.ManagerText
@Composable
fun CheckboxItem(
text: String,
isChecked: Boolean,
onCheck: (Boolean) -> Unit,
checked: Boolean,
onCheckedChange: (Boolean) -> Unit,
modifier: Modifier = Modifier,
) {
val toggle = { onCheck(!isChecked) }
ManagerSelectableListItem(
modifier = modifier
.managerClickable(onClick = toggle),
.managerClickable(onClick = {
onCheckedChange(!checked)
}),
title = {
ManagerText(
text = text,
@ -30,10 +30,8 @@ fun CheckboxItem(
},
trailing = {
Checkbox(
checked = isChecked,
onCheckedChange = {
toggle()
}
checked = checked,
onCheckedChange = null
)
}
)

View File

@ -10,14 +10,12 @@ import com.vanced.manager.ui.component.modifier.managerClickable
import com.vanced.manager.ui.component.text.ManagerText
@Composable
fun <T> RadiobuttonItem(
fun RadiobuttonItem(
text: String,
tag: T,
isSelected: Boolean,
onSelect: (tag: T) -> Unit,
selected: Boolean,
onClick: () -> Unit,
modifier: Modifier = Modifier
) {
val onClick = { onSelect(tag) }
ManagerSelectableListItem(
modifier = modifier
.managerClickable(onClick = onClick),
@ -30,8 +28,8 @@ fun <T> RadiobuttonItem(
},
trailing = {
RadioButton(
selected = isSelected,
onClick = onClick
selected = selected,
onClick = null
)
}
)

View File

@ -4,14 +4,14 @@ import androidx.compose.runtime.*
import com.vanced.manager.R
import com.vanced.manager.core.preferences.RadioButtonPreference
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
@Composable
fun SettingsManagerVariantItem() {
var showDialog by remember { mutableStateOf(false) }
var selectedKey by remember { mutableStateOf(managerVariantPref) }
RadiobuttonDialogPreference(
SingleSelectDialogPreference(
preferenceTitle = managerString(
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.core.preferences.RadioButtonPreference
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
@Composable
fun ThemeSettingsItem() {
var showDialog by remember { mutableStateOf(false) }
var selectedKey by remember { mutableStateOf(managerThemePref) }
RadiobuttonDialogPreference(
SingleSelectDialogPreference(
preferenceTitle = managerString(stringId = R.string.settings_preference_theme_title),
preferenceDescription = managerThemePref,
isDialogVisible = showDialog,