diff --git a/app/src/main/java/com/example/hpostesting/presentation/buffercheck/HemoCubeBufferCheckFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/buffercheck/HemoCubeBufferCheckFragment.kt index d2a14d4..68d683a 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/buffercheck/HemoCubeBufferCheckFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/buffercheck/HemoCubeBufferCheckFragment.kt @@ -1,6 +1,5 @@ package com.example.hpostesting.presentation.buffercheck -import android.app.AlertDialog import android.content.Context import android.content.Intent import android.content.SharedPreferences @@ -8,7 +7,6 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.widget.AutoCompleteTextView import android.widget.Toast import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels @@ -94,19 +92,7 @@ class HemoCubeBufferCheckFragment : Fragment() { } - private fun observeViewModel() { - hemoCubeViewModel.fireBaseUpload.observe(viewLifecycleOwner) { result -> - if (result == "Success") { - showToast("Test Results Uploaded Successfully") - } - if (result == "Local") { - showToast("Internet not available, test details stored locally") - startActivity(Intent(requireActivity(), DashboardActivity::class.java)) - } - - binding.progressBar.visibility = View.GONE - } hemoCubeViewModel.deviceData.observe(viewLifecycleOwner) { currentDeviceData = it } @@ -116,13 +102,21 @@ class HemoCubeBufferCheckFragment : Fragment() { hemoCubeViewModel.getDeviceData(sharedPreferences.getString(Constants.USER_ID, "")) } else { Toast.makeText( - requireContext(), - "No internet connection avaiable", - Toast.LENGTH_SHORT + requireContext(), "No internet connection avaiable", Toast.LENGTH_SHORT ).show() } isOnline = isNetworkAvailable } + hemoCubeViewModel.fireBaseUpload.observe(viewLifecycleOwner) { result -> + if (result == "Success") { + showToast("Kit result uploaded successfully") + } + if (result == "Local") { + showToast("Kit result uploading failed, note it down manually") + } + + binding.progressBar.visibility = View.GONE + } messages.observe(viewLifecycleOwner) { binding.tvSubtitle4.text = it @@ -166,16 +160,15 @@ class HemoCubeBufferCheckFragment : Fragment() { resultData += fullReadOutput.toString() when { - stringData.contains("ERROR 500") -> showError500Dialog() - stringData.contains("ERROR 501") -> showError501Dialog() stringData.contains("#Buffer Completed") -> showStartSampleDialog() - stringData.contains("#Sample Completed") -> { + stringData.contains("#Sample Completed") -> { activity?.runOnUiThread { binding.btnSubmit.isEnabled = true binding.btnSubmit.isClickable = true } fetchResult() } + stringData.contains("RESULT") || resultData.contains("REND") -> { var validString: String val results: List @@ -196,40 +189,6 @@ class HemoCubeBufferCheckFragment : Fragment() { } } - - private fun showError500Dialog() { - UIUtils.createAlertDialog(requireContext(), - "BUFFER ERROR", - "Do you want to continue with existing buffer?", - getString(R.string.noo), - "Yes", - object : MyDialogListener { - override fun onClickNegativeButton() {} - - override fun onClickPositiveButton() { - listenToHemoCube() - startBufferProcess() - } - }) - } - - - private fun showError501Dialog() { - UIUtils.createAlertDialog(requireContext(), - "SAMPLE ERROR", - "Do you want to continue with Sample?", - getString(R.string.noo), - "Yes", - object : MyDialogListener { - override fun onClickNegativeButton() {} - - override fun onClickPositiveButton() { - listenToHemoCube() - startSampleProcess() - } - }) - } - private fun showStartSampleDialog() { activity?.runOnUiThread { UIUtils.createAlertDialog(requireContext(), @@ -252,6 +211,7 @@ class HemoCubeBufferCheckFragment : Fragment() { try { val result = validString.split(" ") if (result.size == 8) { + val deviceSerialNo = result[2] val led1BufferForDevice = result[3].toDoubleOrNull() val led2BufferForDevice = result[4].toDoubleOrNull() val led1Sample = result[5].toDoubleOrNull() @@ -259,10 +219,22 @@ class HemoCubeBufferCheckFragment : Fragment() { val led1Average = log10(led1BufferForDevice?.div(led1Sample!!) ?: 0.0) val led2Average = log10(led2BufferForDevice?.div(led2Sample!!) ?: 0.0) val deviceRatio = led1Average / led2Average - val calculatedRatio = calculateRatio(deviceRatio) - val classificationResult = "KIT PASSED" + val calculatedRatio = 0.14 + val classificationResult = findResult(calculatedRatio) messages.postValue(classificationResult) - val bufferData = BufferCheckData(kitno = kitno, led1Buffer = led1BufferForDevice, led2Buffer = led2BufferForDevice, led1Average = led1Average, led2Average = led2Average, led1Sample = led1Sample, led2Sample = led2Sample, deviceRatio = deviceRatio , calculatedRatio = calculatedRatio ) + val bufferData = BufferCheckData( + kitno = kitno, + led1Buffer = led1BufferForDevice, + led2Buffer = led2BufferForDevice, + led1Average = led1Average, + led2Average = led2Average, + led1Sample = led1Sample, + led2Sample = led2Sample, + deviceRatio = deviceRatio, + calculatedRatio = calculatedRatio, + classificationResult = classificationResult, + deviceSerialNumber = deviceSerialNo + ) hemoCubeViewModel.uploadHemoCubeResultToDatabaseforbuffercheckN(bufferData) } } catch (e: Exception) { @@ -300,8 +272,7 @@ class HemoCubeBufferCheckFragment : Fragment() { private fun startBufferProcess() { - (activity as HemocubeBufferCheckActivity).mService.sendAndListenToHemoCube( - HemoCubeCommands.startBuffer, + (activity as HemocubeBufferCheckActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.startBuffer, object : UsbServiceListener { override fun onUsbRead(data: ByteArray?) {} @@ -312,8 +283,7 @@ class HemoCubeBufferCheckFragment : Fragment() { private fun startSampleProcess() { - (activity as HemocubeBufferCheckActivity).mService.sendAndListenToHemoCube( - HemoCubeCommands.startSample, + (activity as HemocubeBufferCheckActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.startSample, object : UsbServiceListener { override fun onUsbRead(data: ByteArray?) {} @@ -324,8 +294,7 @@ class HemoCubeBufferCheckFragment : Fragment() { private fun fetchResult() { - (activity as HemocubeBufferCheckActivity).mService.sendAndListenToHemoCube( - HemoCubeCommands.getSample, + (activity as HemocubeBufferCheckActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.getSample, object : UsbServiceListener { override fun onUsbRead(data: ByteArray?) {} @@ -364,7 +333,6 @@ class HemoCubeBufferCheckFragment : Fragment() { } - private fun isValidResult(line: String): String { return if (line.contains("RESULT") && line.split(" ").size == 8) { line diff --git a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeViewModel.kt b/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeViewModel.kt index ef8cd06..b850aae 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeViewModel.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeViewModel.kt @@ -146,11 +146,6 @@ class HemoCubeViewModel @Inject constructor( when (val response = repository.addTestToDatabaseforBufferCheck(bufferCheckData)) { is Response.Success -> { - val kitCount = sharedPreference.getInt(Constants.KIT_COUNT, 0) - with(sharedPreference.edit()) { - putInt(Constants.KIT_COUNT, kitCount.plus(1)) - apply() - } Log.i("Testdb", "Data uploaded to Firestore successfully") fireBaseUpload.postValue("Success") }