From 760ed87acfa21c3df6fd6f0ad551a27b67462a2b Mon Sep 17 00:00:00 2001 From: machiav3lli Date: Fri, 16 Sep 2022 16:40:53 +0200 Subject: [PATCH] Add: Placeholders for Prefs Pages --- .../fdroid/ui/compose/utils/Modifier.kt | 9 +++ .../fdroid/ui/pages/PrefsOtherPage.kt | 69 ++++++++++++++++++ .../fdroid/ui/pages/PrefsPersonalPage.kt | 61 ++++++++++++++++ .../fdroid/ui/pages/PrefsUpdatesPage.kt | 70 +++++++++++++++++++ 4 files changed, 209 insertions(+) create mode 100644 src/main/kotlin/com/machiav3lli/fdroid/ui/compose/utils/Modifier.kt create mode 100644 src/main/kotlin/com/machiav3lli/fdroid/ui/pages/PrefsOtherPage.kt create mode 100644 src/main/kotlin/com/machiav3lli/fdroid/ui/pages/PrefsPersonalPage.kt create mode 100644 src/main/kotlin/com/machiav3lli/fdroid/ui/pages/PrefsUpdatesPage.kt diff --git a/src/main/kotlin/com/machiav3lli/fdroid/ui/compose/utils/Modifier.kt b/src/main/kotlin/com/machiav3lli/fdroid/ui/compose/utils/Modifier.kt new file mode 100644 index 00000000..dc4209ab --- /dev/null +++ b/src/main/kotlin/com/machiav3lli/fdroid/ui/compose/utils/Modifier.kt @@ -0,0 +1,9 @@ +package com.machiav3lli.fdroid.ui.compose.utils + +import androidx.compose.ui.Modifier + +inline fun Modifier.addIf( + condition: Boolean, + crossinline factory: Modifier.() -> Modifier +): Modifier = + if (condition) factory() else this diff --git a/src/main/kotlin/com/machiav3lli/fdroid/ui/pages/PrefsOtherPage.kt b/src/main/kotlin/com/machiav3lli/fdroid/ui/pages/PrefsOtherPage.kt new file mode 100644 index 00000000..20c17d79 --- /dev/null +++ b/src/main/kotlin/com/machiav3lli/fdroid/ui/pages/PrefsOtherPage.kt @@ -0,0 +1,69 @@ +package com.machiav3lli.fdroid.ui.pages + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Scaffold +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.unit.dp +import com.machiav3lli.fdroid.R +import com.machiav3lli.fdroid.ui.compose.components.prefs.PreferenceGroup +import com.machiav3lli.fdroid.ui.dialog.BaseDialog + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun PrefsOtherPage() { + val context = LocalContext.current + val openDialog = remember { mutableStateOf(false) } + var dialogPref by remember { mutableStateOf(null) } + val onPrefDialog = { pref: Any -> + dialogPref = pref + openDialog.value = true + } + //val proxyPrefs = listOf() + //val infoPrefs = listOf() + + Scaffold( + modifier = Modifier.fillMaxSize() + ) { paddingValues -> + LazyColumn( + modifier = Modifier + .fillMaxSize() + .padding(horizontal = 8.dp), + contentPadding = paddingValues, + verticalArrangement = Arrangement.spacedBy(8.dp) + ) { + item { + PreferenceGroup( + heading = stringResource(id = R.string.proxy) + ) { + // TODO + } + } + item { + PreferenceGroup( + heading = stringResource(id = R.string.credits) + ) { + // TODO + } + } + } + + if (openDialog.value) { + BaseDialog(openDialogCustom = openDialog) { + when (dialogPref) { + // TODO + } + } + } + } +} \ No newline at end of file diff --git a/src/main/kotlin/com/machiav3lli/fdroid/ui/pages/PrefsPersonalPage.kt b/src/main/kotlin/com/machiav3lli/fdroid/ui/pages/PrefsPersonalPage.kt new file mode 100644 index 00000000..2f3dd8d3 --- /dev/null +++ b/src/main/kotlin/com/machiav3lli/fdroid/ui/pages/PrefsPersonalPage.kt @@ -0,0 +1,61 @@ +package com.machiav3lli.fdroid.ui.pages + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Scaffold +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.unit.dp +import com.machiav3lli.fdroid.R +import com.machiav3lli.fdroid.ui.compose.components.prefs.PreferenceGroup +import com.machiav3lli.fdroid.ui.dialog.BaseDialog + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun PrefsPersonalPage() { + val context = LocalContext.current + val openDialog = remember { mutableStateOf(false) } + var dialogPref by remember { mutableStateOf(null) } + val onPrefDialog = { pref: Any -> + dialogPref = pref + openDialog.value = true + } + //val personalPrefs = listOf() + + Scaffold( + modifier = Modifier.fillMaxSize() + ) { paddingValues -> + LazyColumn( + modifier = Modifier + .fillMaxSize() + .padding(horizontal = 8.dp), + contentPadding = paddingValues, + verticalArrangement = Arrangement.spacedBy(8.dp) + ) { + item { + PreferenceGroup( + heading = stringResource(id = R.string.prefs_personalization) + ) { + // TODO + } + } + } + + if (openDialog.value) { + BaseDialog(openDialogCustom = openDialog) { + when (dialogPref) { + // TODO + } + } + } + } +} \ No newline at end of file diff --git a/src/main/kotlin/com/machiav3lli/fdroid/ui/pages/PrefsUpdatesPage.kt b/src/main/kotlin/com/machiav3lli/fdroid/ui/pages/PrefsUpdatesPage.kt new file mode 100644 index 00000000..1de42e9b --- /dev/null +++ b/src/main/kotlin/com/machiav3lli/fdroid/ui/pages/PrefsUpdatesPage.kt @@ -0,0 +1,70 @@ +package com.machiav3lli.fdroid.ui.pages + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Scaffold +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.unit.dp +import com.machiav3lli.fdroid.R +import com.machiav3lli.fdroid.ui.compose.components.prefs.PreferenceGroup +import com.machiav3lli.fdroid.ui.dialog.BaseDialog + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun PrefsUpdatesPage() { + val context = LocalContext.current + val openDialog = remember { mutableStateOf(false) } + var dialogPref by remember { mutableStateOf(null) } + val onPrefDialog = { pref: Any -> + dialogPref = pref + openDialog.value = true + } + //val syncPrefs = listOf() + //val downloadPrefs = listOf() + //val installationPrefs = listOf() + + Scaffold( + modifier = Modifier.fillMaxSize() + ) { paddingValues -> + LazyColumn( + modifier = Modifier + .fillMaxSize() + .padding(horizontal = 8.dp), + contentPadding = paddingValues, + verticalArrangement = Arrangement.spacedBy(8.dp) + ) { + item { + PreferenceGroup( + heading = stringResource(id = R.string.updates) + ) { + // TODO + } + } + item { + PreferenceGroup( + heading = stringResource(id = R.string.install_types) + ) { + // TODO + } + } + } + + if (openDialog.value) { + BaseDialog(openDialogCustom = openDialog) { + when (dialogPref) { + // TODO + } + } + } + } +} \ No newline at end of file