Clean up preference extensions/items a bit

This commit is contained in:
arkon
2023-07-19 21:57:22 -04:00
parent 7a4680603d
commit cf14831fbe
24 changed files with 101 additions and 219 deletions

View File

@ -39,8 +39,11 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import tachiyomi.core.preference.Preference
import tachiyomi.core.preference.TriState
import tachiyomi.core.preference.toggle
import tachiyomi.presentation.core.theme.header
import tachiyomi.presentation.core.util.collectAsState
object SettingsItemsPaddings {
val Horizontal = 24.dp
@ -118,6 +121,19 @@ fun SortItem(
)
}
@Composable
fun CheckboxItem(
label: String,
pref: Preference<Boolean>,
) {
val checked by pref.collectAsState()
CheckboxItem(
label = label,
checked = checked,
onClick = { pref.toggle() },
)
}
@Composable
fun CheckboxItem(
label: String,

View File

@ -0,0 +1,13 @@
package tachiyomi.presentation.core.util
import androidx.compose.runtime.Composable
import androidx.compose.runtime.State
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.remember
import tachiyomi.core.preference.Preference
@Composable
fun <T> Preference<T>.collectAsState(): State<T> {
val flow = remember(this) { changes() }
return flow.collectAsState(initial = get())
}