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:
@@ -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 = ""
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user