some work on settings page

This commit is contained in:
Owen LeJeune
2022-02-14 13:59:59 -05:00
parent 0f3fe7ea7c
commit 378b152008

View File

@@ -1,11 +1,20 @@
package com.owenlejeune.tvtime.ui.screens.tabs
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.AlertDialog
import androidx.compose.material3.Button
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.MutableState
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import com.owenlejeune.tvtime.preferences.AppPreferences
import com.owenlejeune.tvtime.ui.components.PaletteView
import com.owenlejeune.tvtime.ui.components.TopLevelSwitch
@@ -16,15 +25,52 @@ fun SettingsTab(preferences: AppPreferences = get(AppPreferences::class.java)) {
Column(modifier = Modifier.fillMaxSize()) {
val usePreferences = remember { mutableStateOf(preferences.usePreferences) }
TopLevelSwitch(
text = "Show Palette",
text = "Enable Preferences",
checkedState = usePreferences,
onCheckChanged = { isChecked ->
usePreferences.value = isChecked
preferences.usePreferences = isChecked
}
)
if (usePreferences.value) {
val shouldShowPalette = remember { mutableStateOf(false) }
Text(
text = "Show material palette",
color = MaterialTheme.colorScheme.onBackground,
modifier = Modifier
.padding(12.dp)
.clickable(
enabled = usePreferences.value,
onClick = {
shouldShowPalette.value = true
}
)
)
if (shouldShowPalette.value) {
PaletteDialog(shouldShowPalette)
}
}
}
@Composable
private fun PaletteDialog(showDialog: MutableState<Boolean>) {
AlertDialog(
modifier = Modifier.padding(12.dp),
title = {
Text(text = "Palette")
},
text = {
PaletteView()
},
dismissButton = {
Button(
modifier = Modifier.fillMaxWidth(),
onClick = { showDialog.value = false }
) {
Text(text = "Dismiss")
}
}
},
confirmButton = {},
onDismissRequest = { showDialog.value = false }
)
}