diff --git a/app/src/main/java/ru/nm17/narodmon/ui/elements/SettingsItem.kt b/app/src/main/java/ru/nm17/narodmon/ui/elements/SettingsItem.kt
new file mode 100644
index 0000000..daf382f
--- /dev/null
+++ b/app/src/main/java/ru/nm17/narodmon/ui/elements/SettingsItem.kt
@@ -0,0 +1,50 @@
+package ru.nm17.narodmon.ui.elements
+
+import androidx.annotation.StringRes
+import androidx.compose.foundation.clickable
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.size
+import androidx.compose.material3.Icon
+import androidx.compose.material3.Switch
+import androidx.compose.material3.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import ru.nm17.narodmon.R
+
+/**
+ * Кнопка, которая нужна для настроек.
+ * @param titleId Id заголовка кнопки
+ * @param leadingItem Заполнить, когда нужно вставить Composable перед заголовком(например [Icon], [FilterCheckbox] или [Switch]
+ */
+@Composable
+fun SettingsItem(
+ @StringRes titleId: Int,
+ leadingItem: @Composable (() -> Unit)? = null,
+ onClick: () -> Unit = {}
+) {
+ Row(modifier = Modifier.padding(16.dp)) {
+ if (leadingItem != null) {
+ leadingItem.invoke()
+ Spacer(modifier = Modifier.size(16.dp))
+ }
+ Column(modifier = Modifier
+ .fillMaxWidth()
+ .clickable { onClick.invoke() }) {
+ Text(text = stringResource(id = titleId))
+ }
+ }
+
+}
+
+@Preview(showBackground = true)
+@Composable
+fun PreviewSettingsItem() {
+ SettingsItem(R.string.about_app) {}
+}
\ No newline at end of file
diff --git a/app/src/main/java/ru/nm17/narodmon/ui/settings/SettingsScreen.kt b/app/src/main/java/ru/nm17/narodmon/ui/settings/SettingsScreen.kt
index ba6070e..fb75ba0 100644
--- a/app/src/main/java/ru/nm17/narodmon/ui/settings/SettingsScreen.kt
+++ b/app/src/main/java/ru/nm17/narodmon/ui/settings/SettingsScreen.kt
@@ -1,16 +1,37 @@
package ru.nm17.narodmon.ui.settings
-import androidx.compose.material3.Text
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
+import androidx.navigation.NavController
+import androidx.navigation.compose.rememberNavController
+import ru.nm17.narodmon.R
+import ru.nm17.narodmon.ui.elements.SettingsItem
+import ru.nm17.narodmon.ui.theme.NarodMonTheme
@Composable
-fun SettingsScreen() {
- Text(text = "todo")
+fun SettingsScreen(navController: NavController) {
+ LazyColumn(modifier = Modifier.fillMaxSize()) {
+ item {
+ SettingsItem(titleId = R.string.debug_menu) {
+ navController.navigate(Settings.Debug.route)
+ }
+ }
+ item {
+ SettingsItem(R.string.about_app) {
+ navController.navigate(Settings.AboutApp.route)
+ }
+ }
+
+ }
}
-@Preview
+@Preview(showBackground = true, showSystemUi = false)
@Composable
fun PreviewSettingsScreen() {
- SettingsScreen()
+ NarodMonTheme {
+ SettingsScreen(rememberNavController())
+ }
}
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 2eca6ee..9e74ffa 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -56,4 +56,6 @@
Сообщения
Настройки
Поиск датчиков
+ О приложении
+ Debug-меню
\ No newline at end of file