diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml
index b268ef3..dce8d9d 100644
--- a/.idea/deploymentTargetSelector.xml
+++ b/.idea/deploymentTargetSelector.xml
@@ -4,6 +4,14 @@
+
+
+
+
+
+
+
+
diff --git a/.idea/other.xml b/.idea/other.xml
index a76f118..56676a7 100644
--- a/.idea/other.xml
+++ b/.idea/other.xml
@@ -256,6 +256,17 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/java/in/sminnovations/smi_attendance_admin/MainActivity.kt b/app/src/main/java/in/sminnovations/smi_attendance_admin/MainActivity.kt
index bc6ca27..3d29a48 100644
--- a/app/src/main/java/in/sminnovations/smi_attendance_admin/MainActivity.kt
+++ b/app/src/main/java/in/sminnovations/smi_attendance_admin/MainActivity.kt
@@ -5,13 +5,6 @@ import android.view.WindowManager
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
-import androidx.compose.foundation.layout.fillMaxSize
-import androidx.compose.foundation.layout.padding
-import androidx.compose.material3.Scaffold
-import androidx.compose.material3.Text
-import androidx.compose.runtime.Composable
-import androidx.compose.ui.Modifier
-import androidx.compose.ui.tooling.preview.Preview
import dagger.hilt.android.AndroidEntryPoint
import `in`.sminnovations.smi_attendance_admin.ui.theme.SMIAdminAttendanceTheme
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 ade7c58..de97b9e 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
@@ -4,8 +4,10 @@ import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Scaffold
import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
import androidx.compose.ui.Modifier
import androidx.navigation.NavHostController
+import androidx.navigation.compose.currentBackStackEntryAsState
import androidx.navigation.compose.rememberNavController
import `in`.sminnovations.smi_attendance_admin.navigation.BottomNavigationBar
import `in`.sminnovations.smi_attendance_admin.navigation.Navigation
@@ -20,13 +22,18 @@ fun MainScreen(
Scaffold(
bottomBar = {
- BottomNavigationBar(navController, navItems)
+ val navBackStackEntry by navController.currentBackStackEntryAsState()
+ val currentRoute = navBackStackEntry?.destination?.route
+
+ // Show BottomNavigationBar only on certain screens
+ if (currentRoute != "FullScreenQRCode") {
+ BottomNavigationBar(navController, navItems)
+ }
},
content = { padding ->
Box(modifier = Modifier.padding(padding)) {
- Navigation(navController = navController, navItems,mainNavHostController =mainNavHostController)
+ 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 65b50f0..e1f8704 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
@@ -7,6 +7,7 @@ import androidx.navigation.compose.composable
import `in`.sminnovations.smi_attendance_admin.screens.home.ui.HomeScreen
import `in`.sminnovations.smi_attendance_admin.screens.settings.SettingsScreen
import `in`.sminnovations.smi_attendance_admin.navigation.data.BottomNavItem
+import `in`.sminnovations.smi_attendance_admin.screens.home.ui.FullScreenQRCodeScreen
@Composable
@@ -18,11 +19,14 @@ fun Navigation(
) {
NavHost(navController, startDestination = items[0].route) {
composable(items[0].route) {
- HomeScreen()
+ HomeScreen(navController)
}
composable(items[1].route) {
SettingsScreen(mainNavHostController = mainNavHostController)
}
+ composable("FullScreenQRCode") {
+ FullScreenQRCodeScreen(navController)
+ }
}
}
diff --git a/app/src/main/java/in/sminnovations/smi_attendance_admin/screens/home/ui/FullScreenQrCodeScreen.kt b/app/src/main/java/in/sminnovations/smi_attendance_admin/screens/home/ui/FullScreenQrCodeScreen.kt
new file mode 100644
index 0000000..78ad093
--- /dev/null
+++ b/app/src/main/java/in/sminnovations/smi_attendance_admin/screens/home/ui/FullScreenQrCodeScreen.kt
@@ -0,0 +1,48 @@
+package `in`.sminnovations.smi_attendance_admin.screens.home.ui
+
+import android.graphics.Bitmap
+import androidx.compose.foundation.Image
+import androidx.compose.foundation.background
+import androidx.compose.foundation.clickable
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.setValue
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.asImageBitmap
+import androidx.navigation.NavController
+
+@Composable
+fun FullScreenQRCodeScreen(navController: NavController) {
+ var qrCodeBitmap by remember { mutableStateOf(null) }
+
+ // Simulate QR code being passed or generated here
+ qrCodeBitmap = generateQRCode("SMI")
+
+ Box(
+ modifier = Modifier
+ .fillMaxSize()
+ .background(color = MaterialTheme.colorScheme.onBackground)
+ .clickable {
+ // Navigate back when clicked
+ //navController.popBackStack()
+ }
+ ) {
+ qrCodeBitmap?.let { bitmap ->
+ Image(
+ bitmap = bitmap.asImageBitmap(),
+ contentDescription = "Full Screen QR Code",
+ modifier = Modifier
+ .fillMaxSize()
+ .clickable {
+ // Navigate back when clicked
+ //navController.popBackStack()
+ }
+ )
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/in/sminnovations/smi_attendance_admin/screens/home/ui/HomeScreen.kt b/app/src/main/java/in/sminnovations/smi_attendance_admin/screens/home/ui/HomeScreen.kt
index aa9fe61..415a6a0 100644
--- a/app/src/main/java/in/sminnovations/smi_attendance_admin/screens/home/ui/HomeScreen.kt
+++ b/app/src/main/java/in/sminnovations/smi_attendance_admin/screens/home/ui/HomeScreen.kt
@@ -6,7 +6,6 @@ import android.graphics.Canvas
import android.graphics.Color
import android.graphics.Paint
import androidx.compose.foundation.Image
-import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
@@ -15,10 +14,8 @@ import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.material3.Button
-import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
-import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
@@ -26,24 +23,19 @@ import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
-import androidx.compose.ui.graphics.RectangleShape
import androidx.compose.ui.graphics.asImageBitmap
import androidx.compose.ui.unit.dp
-import androidx.compose.ui.window.Dialog
-import androidx.lifecycle.viewmodel.compose.viewModel
+import androidx.navigation.NavController
import com.google.accompanist.permissions.ExperimentalPermissionsApi
import com.google.accompanist.permissions.isGranted
import com.google.accompanist.permissions.rememberPermissionState
import com.google.zxing.BarcodeFormat
import com.journeyapps.barcodescanner.BarcodeEncoder
-import `in`.sminnovations.smi_attendance_admin.screens.home.viewModel.HomeViewModel
@OptIn(ExperimentalPermissionsApi::class)
@Composable
-fun HomeScreen(viewModel: HomeViewModel = viewModel()) {
- val isScanning by viewModel.isScanning.collectAsState()
- val qrCodeValue by viewModel.qrCodeValue.collectAsState()
+fun HomeScreen(navController: NavController) {
val cameraPermissionState = rememberPermissionState(Manifest.permission.CAMERA)
val locationPermissionState = rememberPermissionState(Manifest.permission.ACCESS_FINE_LOCATION)
@@ -56,14 +48,13 @@ fun HomeScreen(viewModel: HomeViewModel = viewModel()) {
Box(modifier = Modifier.fillMaxSize()) {
- QRCodeGeneratorScreen()
+ QRCodeGeneratorScreen(navController = navController)
}
}
@Composable
-fun QRCodeGeneratorScreen() {
+fun QRCodeGeneratorScreen(navController: NavController) {
var qrCodeBitmap by remember { mutableStateOf(null) }
var isButtonVisible by remember { mutableStateOf(true) }
- var isFullScreen by remember { mutableStateOf(false) }
Column(
modifier = Modifier
@@ -76,7 +67,7 @@ fun QRCodeGeneratorScreen() {
if (isButtonVisible) {
Button(
onClick = {
- val qrData = ""
+ val qrData = "SMI"
qrCodeBitmap = generateQRCode(qrData)
isButtonVisible = false // Hide the button once QR is generated
},
@@ -95,35 +86,11 @@ fun QRCodeGeneratorScreen() {
.size(250.dp)
.padding(16.dp)
.clickable {
- isFullScreen = true // Open full-screen mode on click
+ navController.navigate("FullScreenQRCode")
}
)
}
}
-
- // Full-Screen Dialog for QR Code
- if (isFullScreen) {
- Dialog(onDismissRequest = { isFullScreen = false }) {
- Box(
- modifier = Modifier
- .background(color = MaterialTheme.colorScheme.onBackground, shape = RectangleShape)
- .fillMaxSize()
- .clickable { isFullScreen = false } // Close full screen when clicked
- ) {
- qrCodeBitmap?.let { bitmap ->
- Image(
- bitmap = bitmap.asImageBitmap(),
- contentDescription = "Full Screen QR Code",
- modifier = Modifier
- .fillMaxSize() // Make the image fill the entire screen
- .clickable {
- isFullScreen = false // Close full-screen mode on click
- }
- )
- }
- }
- }
- }
}
// Function to generate QR Code bitmap with black background and white QR code
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 1009656..b4a51ba 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
@@ -51,7 +51,7 @@ fun TopComponents(
Spacer(modifier = Modifier.height(16.dp))
Text(
- text = "Sathwik C S",
+ text = "Account Name",
style = MaterialTheme.typography.titleMedium,
fontWeight = FontWeight.Bold,
fontSize = 20.sp,
@@ -70,7 +70,7 @@ fun TopComponents(
Spacer(modifier = Modifier.height(4.dp))
Text(
- text = "Android Developer",
+ text = "Designation",
style = MaterialTheme.typography.bodyMedium,
color = MaterialTheme.colorScheme.primary,
fontSize = 16.sp
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/AboutSettings.kt
similarity index 93%
rename from app/src/main/java/in/sminnovations/smi_attendance_admin/screens/settings/components/subSetting/AboutCard.kt
rename to app/src/main/java/in/sminnovations/smi_attendance_admin/screens/settings/components/subSetting/AboutSettings.kt
index 18cff30..baf8d0c 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/AboutSettings.kt
@@ -5,7 +5,6 @@ import android.content.Context
import android.widget.Toast
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.padding
-import androidx.compose.material3.Button
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedCard
import androidx.compose.material3.Text
@@ -25,7 +24,6 @@ import `in`.sminnovations.smi_attendance_admin.R
import `in`.sminnovations.smi_attendance_admin.screens.settings.data.SettingsData
import `in`.sminnovations.smi_attendance_admin.screens.settings.components.settingsComponents.ClickableCard
import `in`.sminnovations.smi_attendance_admin.screens.settings.components.settingsComponents.CombinedClickableCard
-import `in`.sminnovations.smi_attendance_admin.screens.settings.viewModel.SettingsViewModel
import kotlinx.coroutines.launch
@@ -56,9 +54,10 @@ fun AboutSettings(context: Context,)
OutlinedCard{
ClickableCard(
title = "Version",
- subtitle = "1.0.04",
+ subtitle = context.packageManager
+ .getPackageInfo(context.packageName, 0).versionName,
onClick = {
- clickCount++
+ // clickCount++
},
icon = ImageVector.vectorResource(id = R.drawable.round_info_24)