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) private val _isCheckedOut = MutableStateFlow(false)
val isCheckedOut: StateFlow<Boolean> = _isCheckedOut.asStateFlow() val isCheckedOut: StateFlow<Boolean> = _isCheckedOut.asStateFlow()
private val _checkedOutTime = MutableStateFlow("")
val checkedOut: StateFlow<String> = _checkedOutTime.asStateFlow()
private val _errorMessage = MutableStateFlow<String?>(null) private val _errorMessage = MutableStateFlow<String?>(null)
val errorMessage: StateFlow<String?> = _errorMessage.asStateFlow() val errorMessage: StateFlow<String?> = _errorMessage.asStateFlow()
@@ -56,7 +60,8 @@ class HomeViewModel @Inject constructor(
_errorMessage.value = null _errorMessage.value = null
_isCheckedIn.value = false _isCheckedIn.value = false
_isCheckedOut.value = false _isCheckedOut.value = false
_userName.value =""
putQRvalueEmpty()
} }
fun stopScanning() { fun stopScanning() {
@@ -64,6 +69,7 @@ class HomeViewModel @Inject constructor(
_errorMessage.value = null _errorMessage.value = null
_isCheckedIn.value = false _isCheckedIn.value = false
_isCheckedOut.value = false _isCheckedOut.value = false
_checkedOutTime.value = ""
} }
fun setQRCodeValue(value: String) { fun setQRCodeValue(value: String) {
@@ -103,9 +109,12 @@ class HomeViewModel @Inject constructor(
attendanceRef.set(checkInData).addOnSuccessListener { attendanceRef.set(checkInData).addOnSuccessListener {
Log.d("Firestore", "Check-in successful") Log.d("Firestore", "Check-in successful")
viewModelScope.launch { viewModelScope.launch {
_qrCodeValue.value = ""
_isCheckedIn.value =true _isCheckedIn.value =true
} }
}.addOnFailureListener { e -> }.addOnFailureListener { e ->
postErrorMessage("Error adding check-in: ${e.message}") postErrorMessage("Error adding check-in: ${e.message}")
} }
@@ -146,6 +155,7 @@ class HomeViewModel @Inject constructor(
} }
} else if (checkOut != "NA") { } else if (checkOut != "NA") {
postErrorMessage("Already checked out for today.") postErrorMessage("Already checked out for today.")
_checkedOutTime.value = checkOut!!
} else { } else {
putCheckInAttendance(id) putCheckInAttendance(id)
} }
@@ -185,8 +195,6 @@ class HomeViewModel @Inject constructor(
} else { } else {
_isLoading.value = false _isLoading.value = false
postErrorMessage("Error fetching ID }") postErrorMessage("Error fetching ID }")
} }
}.addOnFailureListener { }.addOnFailureListener {
_isLoading.value = false _isLoading.value = false
@@ -234,6 +242,8 @@ class HomeViewModel @Inject constructor(
private fun putQRvalueEmpty() { private fun putQRvalueEmpty() {
viewModelScope.launch { viewModelScope.launch {
_qrCodeValue.value = "" _qrCodeValue.value = ""
_isLoading.value =false
_checkedOutTime.value = ""
} }
} }