diff --git a/app/src/main/java/in/sminnovations/smi_attendance_admin/AppNavigation.kt b/app/src/main/java/in/sminnovations/smi_attendance_admin/AppNavigation.kt index 99fe862..db79a32 100644 --- a/app/src/main/java/in/sminnovations/smi_attendance_admin/AppNavigation.kt +++ b/app/src/main/java/in/sminnovations/smi_attendance_admin/AppNavigation.kt @@ -37,7 +37,7 @@ fun NavigationHost(navController: NavHostController) { } composable("main") { - MainScreen() + MainScreen(mainNavHostController = navController ) } } } diff --git a/app/src/main/java/in/sminnovations/smi_attendance_admin/MainScreen.kt b/app/src/main/java/in/sminnovations/smi_attendance_admin/MainScreen.kt index 59d6183..ade7c58 100644 --- a/app/src/main/java/in/sminnovations/smi_attendance_admin/MainScreen.kt +++ b/app/src/main/java/in/sminnovations/smi_attendance_admin/MainScreen.kt @@ -14,6 +14,7 @@ import `in`.sminnovations.smi_attendance_admin.navigation.data.navItems @Composable fun MainScreen( + mainNavHostController: NavHostController ) { val navController = rememberNavController() @@ -23,7 +24,7 @@ fun MainScreen( }, content = { padding -> Box(modifier = Modifier.padding(padding)) { - Navigation(navController = navController, navItems) + Navigation(navController = navController, navItems,mainNavHostController =mainNavHostController) } }, ) diff --git a/app/src/main/java/in/sminnovations/smi_attendance_admin/navigation/Navigation.kt b/app/src/main/java/in/sminnovations/smi_attendance_admin/navigation/Navigation.kt index 6c38e2e..65b50f0 100644 --- a/app/src/main/java/in/sminnovations/smi_attendance_admin/navigation/Navigation.kt +++ b/app/src/main/java/in/sminnovations/smi_attendance_admin/navigation/Navigation.kt @@ -11,15 +11,17 @@ import `in`.sminnovations.smi_attendance_admin.navigation.data.BottomNavItem @Composable fun Navigation( + navController: NavHostController, items: List, + mainNavHostController : NavHostController, ) { NavHost(navController, startDestination = items[0].route) { composable(items[0].route) { HomeScreen() } composable(items[1].route) { - SettingsScreen() + SettingsScreen(mainNavHostController = mainNavHostController) } } diff --git a/app/src/main/java/in/sminnovations/smi_attendance_admin/screens/settings/Settings.kt b/app/src/main/java/in/sminnovations/smi_attendance_admin/screens/settings/Settings.kt index 9014157..49baad9 100644 --- a/app/src/main/java/in/sminnovations/smi_attendance_admin/screens/settings/Settings.kt +++ b/app/src/main/java/in/sminnovations/smi_attendance_admin/screens/settings/Settings.kt @@ -16,13 +16,14 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp 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.settings.components.TopComponents import `in`.sminnovations.smi_attendance_admin.screens.settings.components.subSetting.AboutSettings import `in`.sminnovations.smi_attendance_admin.screens.settings.viewModel.SettingsViewModel @Composable -fun SettingsScreen(settingsViewModel: SettingsViewModel = hiltViewModel()) { +fun SettingsScreen(settingsViewModel: SettingsViewModel = hiltViewModel(), mainNavHostController :NavHostController,) { val context = LocalContext.current val scrollState = rememberScrollState() Column( @@ -31,14 +32,14 @@ fun SettingsScreen(settingsViewModel: SettingsViewModel = hiltViewModel()) { .fillMaxSize(), ) { Spacer(modifier = Modifier.height(20.dp)) - TopComponents() + TopComponents( mainNavHostController= mainNavHostController,settingsViewModel = settingsViewModel) Spacer(modifier = Modifier.height(20.dp)) OutlinedCard( modifier = Modifier .padding(10.dp) .wrapContentSize() ) { - AboutSettings(context = context,settingsViewModel = settingsViewModel) + AboutSettings(context = context) } diff --git a/app/src/main/java/in/sminnovations/smi_attendance_admin/screens/settings/components/TopComponents.kt b/app/src/main/java/in/sminnovations/smi_attendance_admin/screens/settings/components/TopComponents.kt index cc47fa9..1009656 100644 --- a/app/src/main/java/in/sminnovations/smi_attendance_admin/screens/settings/components/TopComponents.kt +++ b/app/src/main/java/in/sminnovations/smi_attendance_admin/screens/settings/components/TopComponents.kt @@ -10,6 +10,7 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Button import androidx.compose.material3.Icon import androidx.compose.material3.IconButton 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.unit.dp import androidx.compose.ui.unit.sp +import androidx.navigation.NavHostController import `in`.sminnovations.smi_attendance_admin.R +import `in`.sminnovations.smi_attendance_admin.screens.settings.viewModel.SettingsViewModel @Composable fun TopComponents( + mainNavHostController : NavHostController, + settingsViewModel : SettingsViewModel ) { Column( modifier = Modifier @@ -70,5 +75,17 @@ fun TopComponents( color = MaterialTheme.colorScheme.primary, 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") + } } } \ No newline at end of file diff --git a/app/src/main/java/in/sminnovations/smi_attendance_admin/screens/settings/components/subSetting/AboutCard.kt b/app/src/main/java/in/sminnovations/smi_attendance_admin/screens/settings/components/subSetting/AboutCard.kt index 1dfa536..18cff30 100644 --- a/app/src/main/java/in/sminnovations/smi_attendance_admin/screens/settings/components/subSetting/AboutCard.kt +++ b/app/src/main/java/in/sminnovations/smi_attendance_admin/screens/settings/components/subSetting/AboutCard.kt @@ -31,7 +31,7 @@ import kotlinx.coroutines.launch @SuppressLint("CoroutineCreationDuringComposition") @Composable -fun AboutSettings(context: Context, settingsViewModel : SettingsViewModel) +fun AboutSettings(context: Context,) { val scope = rememberCoroutineScope() val dataStore = SettingsData(context) @@ -72,16 +72,7 @@ fun AboutSettings(context: Context, settingsViewModel : SettingsViewModel) }, 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") - } + } }