Log out implemented

This commit is contained in:
sathwikcs
2024-10-18 12:45:58 +05:30
parent 2a571407fd
commit 39c6124165
6 changed files with 29 additions and 17 deletions

View File

@@ -37,7 +37,7 @@ fun NavigationHost(navController: NavHostController) {
} }
composable("main") { composable("main") {
MainScreen() MainScreen(mainNavHostController = navController )
} }
} }
} }

View File

@@ -14,6 +14,7 @@ import `in`.sminnovations.smi_attendance_admin.navigation.data.navItems
@Composable @Composable
fun MainScreen( fun MainScreen(
mainNavHostController: NavHostController
) { ) {
val navController = rememberNavController() val navController = rememberNavController()
@@ -23,7 +24,7 @@ fun MainScreen(
}, },
content = { padding -> content = { padding ->
Box(modifier = Modifier.padding(padding)) { Box(modifier = Modifier.padding(padding)) {
Navigation(navController = navController, navItems) Navigation(navController = navController, navItems,mainNavHostController =mainNavHostController)
} }
}, },
) )

View File

@@ -11,15 +11,17 @@ import `in`.sminnovations.smi_attendance_admin.navigation.data.BottomNavItem
@Composable @Composable
fun Navigation( fun Navigation(
navController: NavHostController, navController: NavHostController,
items: List<BottomNavItem>, items: List<BottomNavItem>,
mainNavHostController : NavHostController,
) { ) {
NavHost(navController, startDestination = items[0].route) { NavHost(navController, startDestination = items[0].route) {
composable(items[0].route) { composable(items[0].route) {
HomeScreen() HomeScreen()
} }
composable(items[1].route) { composable(items[1].route) {
SettingsScreen() SettingsScreen(mainNavHostController = mainNavHostController)
} }
} }

View File

@@ -16,13 +16,14 @@ import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavHostController
import `in`.sminnovations.smi_attendance_admin.screens.login.viewModel.LoginViewModel import `in`.sminnovations.smi_attendance_admin.screens.login.viewModel.LoginViewModel
import `in`.sminnovations.smi_attendance_admin.screens.settings.components.TopComponents import `in`.sminnovations.smi_attendance_admin.screens.settings.components.TopComponents
import `in`.sminnovations.smi_attendance_admin.screens.settings.components.subSetting.AboutSettings import `in`.sminnovations.smi_attendance_admin.screens.settings.components.subSetting.AboutSettings
import `in`.sminnovations.smi_attendance_admin.screens.settings.viewModel.SettingsViewModel import `in`.sminnovations.smi_attendance_admin.screens.settings.viewModel.SettingsViewModel
@Composable @Composable
fun SettingsScreen(settingsViewModel: SettingsViewModel = hiltViewModel()) { fun SettingsScreen(settingsViewModel: SettingsViewModel = hiltViewModel(), mainNavHostController :NavHostController,) {
val context = LocalContext.current val context = LocalContext.current
val scrollState = rememberScrollState() val scrollState = rememberScrollState()
Column( Column(
@@ -31,14 +32,14 @@ fun SettingsScreen(settingsViewModel: SettingsViewModel = hiltViewModel()) {
.fillMaxSize(), .fillMaxSize(),
) { ) {
Spacer(modifier = Modifier.height(20.dp)) Spacer(modifier = Modifier.height(20.dp))
TopComponents() TopComponents( mainNavHostController= mainNavHostController,settingsViewModel = settingsViewModel)
Spacer(modifier = Modifier.height(20.dp)) Spacer(modifier = Modifier.height(20.dp))
OutlinedCard( OutlinedCard(
modifier = Modifier modifier = Modifier
.padding(10.dp) .padding(10.dp)
.wrapContentSize() .wrapContentSize()
) { ) {
AboutSettings(context = context,settingsViewModel = settingsViewModel) AboutSettings(context = context)
} }

View File

@@ -10,6 +10,7 @@ import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.size
import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Button
import androidx.compose.material3.Icon import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton import androidx.compose.material3.IconButton
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
@@ -23,11 +24,15 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import androidx.navigation.NavHostController
import `in`.sminnovations.smi_attendance_admin.R import `in`.sminnovations.smi_attendance_admin.R
import `in`.sminnovations.smi_attendance_admin.screens.settings.viewModel.SettingsViewModel
@Composable @Composable
fun TopComponents( fun TopComponents(
mainNavHostController : NavHostController,
settingsViewModel : SettingsViewModel
) { ) {
Column( Column(
modifier = Modifier modifier = Modifier
@@ -70,5 +75,17 @@ fun TopComponents(
color = MaterialTheme.colorScheme.primary, color = MaterialTheme.colorScheme.primary,
fontSize = 16.sp fontSize = 16.sp
) )
Spacer(modifier = Modifier.height(8.dp))
Button(
onClick = {
settingsViewModel.logout()
mainNavHostController.navigate("login")
},
modifier = Modifier
.align(Alignment.CenterHorizontally)
.padding(top = 16.dp)
) {
Text(text = "Logout")
}
} }
} }

View File

@@ -31,7 +31,7 @@ import kotlinx.coroutines.launch
@SuppressLint("CoroutineCreationDuringComposition") @SuppressLint("CoroutineCreationDuringComposition")
@Composable @Composable
fun AboutSettings(context: Context, settingsViewModel : SettingsViewModel) fun AboutSettings(context: Context,)
{ {
val scope = rememberCoroutineScope() val scope = rememberCoroutineScope()
val dataStore = SettingsData(context) val dataStore = SettingsData(context)
@@ -72,16 +72,7 @@ fun AboutSettings(context: Context, settingsViewModel : SettingsViewModel)
}, },
icon = ImageVector.vectorResource(id = R.drawable.round_logo_dev_24) icon = ImageVector.vectorResource(id = R.drawable.round_logo_dev_24)
) )
Button(
onClick = {
settingsViewModel.logout() // Call your logout function from ViewModel
},
modifier = Modifier
.align(Alignment.CenterHorizontally)
.padding(top = 16.dp)
) {
Text(text = "Logout")
}
} }
} }