Clean up preference extensions/items a bit

(cherry picked from commit cf14831fbe6d3b6b07d0fe185194d27d6ac6ae17)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/more/settings/PreferenceItem.kt
#	app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt
#	app/src/main/java/eu/kanade/presentation/reader/settings/GeneralSettingsPage.kt
#	app/src/main/java/eu/kanade/presentation/reader/settings/ReadingModePage.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/HttpPageLoader.kt
This commit is contained in:
arkon
2023-07-19 21:57:22 -04:00
committed by Jobobby04
parent e9b15ce4a4
commit a447b011d0
33 changed files with 121 additions and 279 deletions
@@ -40,8 +40,11 @@ import androidx.compose.ui.graphics.painter.Painter
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
@@ -119,6 +122,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,
@@ -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())
}