mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-04-23 11:22:12 +00:00
Add: PrefsGroup list-based constructor
This commit is contained in:
parent
07e9eb83dc
commit
4b55c4f515
@ -13,11 +13,15 @@ import androidx.compose.material3.Surface
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.CompositionLocalProvider
|
||||
import androidx.compose.runtime.mutableStateListOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import com.machiav3lli.fdroid.content.Preferences
|
||||
import com.machiav3lli.fdroid.content.PrefsDependencies
|
||||
|
||||
@Composable
|
||||
fun PreferenceGroup(
|
||||
@ -37,6 +41,37 @@ fun PreferenceGroup(
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun PreferenceGroup(
|
||||
modifier: Modifier = Modifier,
|
||||
heading: String? = null,
|
||||
keys: List<Preferences.Key<*>>,
|
||||
onPrefDialog: (Any) -> Unit,
|
||||
) {
|
||||
val size = keys.size
|
||||
val enabledList = remember() {
|
||||
mutableStateListOf(
|
||||
*keys.filter { PrefsDependencies[it]?.let { Preferences[it] } ?: true }.toTypedArray()
|
||||
)
|
||||
}
|
||||
|
||||
PreferenceGroup(
|
||||
modifier = modifier,
|
||||
heading = heading
|
||||
) {
|
||||
keys.forEachIndexed { index, item ->
|
||||
PrefsBuilder(
|
||||
item,
|
||||
onPrefDialog,
|
||||
enabledList,
|
||||
index,
|
||||
size
|
||||
)
|
||||
if (index < size - 1) Spacer(modifier = Modifier.height(4.dp))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun PreferenceGroupHeading(
|
||||
heading: String? = null
|
||||
|
Loading…
x
Reference in New Issue
Block a user