From de07673a29298b0166a44bde8980a23669c180ea Mon Sep 17 00:00:00 2001 From: sathwikcs <85106054+sathwikcs@users.noreply.github.com> Date: Fri, 25 Oct 2024 16:42:08 +0530 Subject: [PATCH] fixed the issue where the checkIn automatically checks out people , added the personalised error message , now it shows the check out time if already checked Out --- .../screens/home/viewModel/homeVM.kt | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/in/sminnovations/attendanceapp/screens/home/viewModel/homeVM.kt b/app/src/main/java/in/sminnovations/attendanceapp/screens/home/viewModel/homeVM.kt index 92a9a72..3e23f6f 100644 --- a/app/src/main/java/in/sminnovations/attendanceapp/screens/home/viewModel/homeVM.kt +++ b/app/src/main/java/in/sminnovations/attendanceapp/screens/home/viewModel/homeVM.kt @@ -38,6 +38,10 @@ class HomeViewModel @Inject constructor( private val _isCheckedOut = MutableStateFlow(false) val isCheckedOut: StateFlow = _isCheckedOut.asStateFlow() + private val _checkedOutTime = MutableStateFlow("") + val checkedOut: StateFlow = _checkedOutTime.asStateFlow() + + private val _errorMessage = MutableStateFlow(null) val errorMessage: StateFlow = _errorMessage.asStateFlow() @@ -56,7 +60,8 @@ class HomeViewModel @Inject constructor( _errorMessage.value = null _isCheckedIn.value = false _isCheckedOut.value = false - _userName.value ="" + + putQRvalueEmpty() } fun stopScanning() { @@ -64,6 +69,7 @@ class HomeViewModel @Inject constructor( _errorMessage.value = null _isCheckedIn.value = false _isCheckedOut.value = false + _checkedOutTime.value = "" } fun setQRCodeValue(value: String) { @@ -103,9 +109,12 @@ class HomeViewModel @Inject constructor( attendanceRef.set(checkInData).addOnSuccessListener { Log.d("Firestore", "Check-in successful") + viewModelScope.launch { + _qrCodeValue.value = "" _isCheckedIn.value =true } + }.addOnFailureListener { e -> postErrorMessage("Error adding check-in: ${e.message}") } @@ -146,6 +155,7 @@ class HomeViewModel @Inject constructor( } } else if (checkOut != "NA") { postErrorMessage("Already checked out for today.") + _checkedOutTime.value = checkOut!! } else { putCheckInAttendance(id) } @@ -185,8 +195,6 @@ class HomeViewModel @Inject constructor( } else { _isLoading.value = false postErrorMessage("Error fetching ID }") - - } }.addOnFailureListener { _isLoading.value = false @@ -234,6 +242,8 @@ class HomeViewModel @Inject constructor( private fun putQRvalueEmpty() { viewModelScope.launch { _qrCodeValue.value = "" + _isLoading.value =false + _checkedOutTime.value = "" } }