VancedManager/app/src/main/java/com/vanced/manager/ui/component/preference/RadiobuttonDialogPreference.kt

61 lines
2.0 KiB
Kotlin

package com.vanced.manager.ui.component.preference
import androidx.compose.foundation.layout.heightIn
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.material3.TextButton
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import com.vanced.manager.R
import com.vanced.manager.core.preferences.RadioButtonPreference
import com.vanced.manager.ui.component.text.ManagerText
import com.vanced.manager.ui.resources.managerString
import com.vanced.manager.ui.widget.list.RadiobuttonItem
@Composable
fun RadiobuttonDialogPreference(
preferenceTitle: String,
preferenceDescription: String,
isDialogVisible: Boolean,
currentSelectedKey: String,
buttons: List<RadioButtonPreference>,
trailing: @Composable () -> Unit = {},
onPreferenceClick: () -> Unit,
onDismissRequest: () -> Unit,
onItemClick: (itemKey: String) -> Unit,
onSave: () -> Unit,
) {
DialogPreference(
preferenceTitle = preferenceTitle,
preferenceDescription = preferenceDescription,
trailing = trailing,
confirmButton = {
TextButton(onClick = onSave) {
ManagerText(managerString(R.string.dialog_button_save))
}
},
dismissButton = {
TextButton(onClick = onDismissRequest) {
ManagerText(managerString(R.string.dialog_button_cancel))
}
},
onDismissRequest = onDismissRequest,
isDialogVisible = isDialogVisible,
onPreferenceClick = onPreferenceClick
) {
LazyColumn(
modifier = Modifier.heightIn(max = 400.dp)
) {
items(buttons) { button ->
val (title, key) = button
RadiobuttonItem(
text = title,
tag = key,
isSelected = currentSelectedKey == key,
onSelect = onItemClick
)
}
}
}
}