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

This commit is contained in:
sathwikcs
2024-10-25 16:42:08 +05:30
parent de4a5c9f8d
commit de07673a29

View File

@@ -38,6 +38,10 @@ class HomeViewModel @Inject constructor(
private val _isCheckedOut = MutableStateFlow(false)
val isCheckedOut: StateFlow<Boolean> = _isCheckedOut.asStateFlow()
private val _checkedOutTime = MutableStateFlow("")
val checkedOut: StateFlow<String> = _checkedOutTime.asStateFlow()
private val _errorMessage = MutableStateFlow<String?>(null)
val errorMessage: StateFlow<String?> = _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 = ""
}
}