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