Screen titles added

This commit is contained in:
Fabio 2025-04-20 23:21:20 +02:00
parent 38624bcbc5
commit 774f07c080
7 changed files with 84 additions and 79 deletions

View File

@ -73,7 +73,7 @@ class MainActivity : ComponentActivity() {
composable("listview") { ListView(Modifier) } composable("listview") { ListView(Modifier) }
composable("settings") { SettingsScreen(navController = navController, Modifier)} composable("settings") { SettingsScreen(navController = navController, Modifier)}
composable("notifications") { NotificationsScreen(Modifier)} composable("notifications") { NotificationsScreen(Modifier)}
composable("settings_notifications") { SettingsNotificationsScreen(Modifier) } composable("settings_notifications") { SettingsNotificationsScreen(navController = navController, Modifier) }
} }
} }
} }

View File

@ -13,21 +13,15 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.drawBehind
import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.geometry.Size
import androidx.compose.ui.graphics.Brush
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.painterResource
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.Dp
import com.f1rq.lifemap.ui.theme.MainBG import com.f1rq.lifemap.ui.theme.MainBG
import com.f1rq.lifemap.ui.theme.InactiveNavColor import com.f1rq.lifemap.ui.theme.InactiveNavColor
import com.f1rq.lifemap.ui.theme.ActiveNavColor import com.f1rq.lifemap.ui.theme.ActiveNavColor
import com.f1rq.lifemap.ui.theme.PrimaryColor import com.f1rq.lifemap.ui.theme.PrimaryColor
import com.f1rq.lifemap.R.drawable.navbar_listview_button import com.f1rq.lifemap.R.drawable.navbar_listview_button
import com.f1rq.lifemap.R.drawable.navbar_mapview_button import com.f1rq.lifemap.R.drawable.navbar_mapview_button
import com.google.relay.compose.BoxScopeInstanceImpl.align
@Composable @Composable
fun NavBar( fun NavBar(

View File

@ -0,0 +1,22 @@
package com.f1rq.lifemap.components
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import com.f1rq.lifemap.ui.theme.MainTextColor
@Composable
fun ScreenTitle(
title: String,
modifier: Modifier = Modifier
) {
Text(
text = title,
style = MaterialTheme.typography.titleLarge.copy(color = MainTextColor),
modifier = modifier
.padding(vertical = 8.dp)
)
}

View File

@ -1,78 +1,46 @@
package com.f1rq.lifemap.screens package com.f1rq.lifemap.screens
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.outlined.List
import androidx.compose.material.icons.filled.MailOutline
import androidx.compose.material.icons.filled.Notifications
import androidx.compose.material.icons.outlined.Email import androidx.compose.material.icons.outlined.Email
import androidx.compose.material.icons.outlined.Notifications import androidx.compose.material.icons.outlined.Notifications
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.navigation.NavController import androidx.navigation.NavController
import com.f1rq.lifemap.components.SettingsLabel import com.f1rq.lifemap.components.SettingsLabel
import com.f1rq.lifemap.ui.theme.MainTextColor import com.f1rq.lifemap.components.ScreenTitle
import com.f1rq.lifemap.R.drawable.contact_icon
import com.f1rq.lifemap.R.drawable.feedback_icon
@Composable @Composable
fun SettingsScreen(navController: NavController, modifier: Modifier = Modifier) { fun SettingsScreen(navController: NavController, modifier: Modifier = Modifier) {
Box( Column(
modifier = Modifier modifier = Modifier
.fillMaxSize() .fillMaxSize()
.padding(horizontal = 16.dp, vertical = 16.dp),
verticalArrangement = Arrangement.spacedBy(16.dp),
) { ) {
Column ( ScreenTitle("Settings")
verticalArrangement = Arrangement.spacedBy(4.dp),
) {
Text(
text = "Settings",
style = MaterialTheme.typography.titleMedium,
fontSize = MaterialTheme.typography.titleLarge.fontSize,
fontFamily = MaterialTheme.typography.titleLarge.fontFamily,
color = MainTextColor,
modifier = Modifier
.padding(
top = 24.dp,
start = 24.dp
),
)
SettingsLabel(
text = "Notifications",
iconResource = Icons.Outlined.Notifications,
desc = "Notifications",
modifier = Modifier
.padding(
horizontal = 16.dp
),
onClick = { navController.navigate("settings_notifications") }
)
SettingsLabel( SettingsLabel(
text = "Contact", text = "Notifications",
iconResource = Icons.Outlined.Email, iconResource = Icons.Outlined.Notifications,
desc = "Contact us", desc = "Notifications",
modifier = Modifier onClick = { navController.navigate("settings_notifications") }
.padding( )
horizontal = 16.dp
)
)
SettingsLabel( SettingsLabel(
text = "Report a bug", text = "Contact",
iconResource = Icons.Outlined.Email, iconResource = Icons.Outlined.Email,
desc = "Report a bug", desc = "Contact us"
modifier = Modifier )
.padding(
horizontal = 16.dp SettingsLabel(
) text = "Report a bug",
) iconResource = Icons.Outlined.Email,
} desc = "Report a bug"
)
} }
} }

View File

@ -1,19 +1,50 @@
package com.f1rq.lifemap.screens.settingsScreens package com.f1rq.lifemap.screens.settingsScreens
import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.Text import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.outlined.KeyboardArrowLeft
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import androidx.navigation.NavController
import com.f1rq.lifemap.ui.theme.PrimaryColor
import com.f1rq.lifemap.components.ScreenTitle
@Composable @Composable
fun SettingsNotificationsScreen(modifier: Modifier = Modifier) { fun SettingsNotificationsScreen(navController: NavController, modifier: Modifier = Modifier) {
Box( Column(
modifier = Modifier modifier = Modifier
.fillMaxSize(), .fillMaxSize()
contentAlignment = Alignment.Center .padding(horizontal = 16.dp, vertical = 16.dp)
) { ) {
Text("Notifications settings") Row(
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.spacedBy(8.dp),
) {
IconButton(
onClick = { navController.navigate("settings") },
modifier = Modifier.size(40.dp)
) {
Icon(
imageVector = Icons.AutoMirrored.Outlined.KeyboardArrowLeft,
contentDescription = "Back",
tint = PrimaryColor,
modifier = Modifier.size(24.dp)
)
}
ScreenTitle(
title = "Notifications",
modifier = Modifier.padding(start = 0.dp)
)
}
} }
} }

View File

@ -1,5 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
<path android:fillColor="@android:color/white" android:pathData="M20,4L4,4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2zM20,18L4,18L4,8l8,5 8,-5v10zM12,11L4,6h16l-8,5z"/>
</vector>

View File

@ -1,5 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
<path android:fillColor="@android:color/white" android:pathData="M20,2L4,2c-1.1,0 -1.99,0.9 -1.99,2L2,22l4,-4h14c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2zM13,14h-2v-2h2v2zM13,10h-2L11,6h2v4z"/>
</vector>