Fixed Navigation, Location, and updated user card and gitignore file

This commit is contained in:
mohamedkaif356
2023-08-07 15:02:16 +05:30
parent e5390df0f4
commit 85d9c6306d
7 changed files with 112 additions and 122 deletions

View File

@@ -56,6 +56,8 @@ class MainActivity : AppCompatActivity() {
locationResult.lastLocation?.let { location ->
DataHolder.location =
UserData.Location(location.latitude, location.longitude)
DataHolder.selectedTest?.location =
UserData.Location(location.latitude, location.longitude)
Log.i("Location", DataHolder.location.toString())
}
}

View File

@@ -10,7 +10,6 @@ import android.view.ViewGroup
import android.widget.Toast
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import androidx.navigation.fragment.findNavController
import com.example.hpostesting.data.DataHolder
import com.example.hpostesting.data.constant.Constants
import com.example.hpostesting.data.constant.HemoCubeCommands
@@ -18,6 +17,7 @@ import com.example.hpostesting.data.model.patient.DeviceData
import com.example.hpostesting.data.model.patient.toHemoCubeTestData
import com.example.hpostesting.presentation.KitScanActivity
import com.example.hpostesting.presentation.UsbServiceListener
import com.example.hpostesting.presentation.dashboard.DashboardActivity
import com.example.hpostesting.presentation.utils.MyDialogListener
import com.example.hpostesting.presentation.utils.UIUtils
import `in`.sminnovations.hpostesting.R
@@ -61,12 +61,14 @@ class HemoCubeFragment : Fragment() {
Toast.makeText(
requireContext(), "Test Results Uploaded Successfully", Toast.LENGTH_SHORT
).show()
findNavController().navigate(R.id.action_hemocubeFragment_to_homeFragment)
startActivity(Intent(requireActivity(), DashboardActivity::class.java))
}
binding.progressBar.visibility = View.GONE
}
hemoCubeViewModel.getDeviceData(sharedPreference.getString(Constants.USER_ID, "").toString())
hemoCubeViewModel.getDeviceData(
sharedPreference.getString(Constants.USER_ID, "").toString()
)
hemoCubeViewModel.deviceData.observe(viewLifecycleOwner) {
deviceData = it
@@ -99,8 +101,7 @@ class HemoCubeFragment : Fragment() {
listenToHemoCube()
startSample()
}
}
)
})
} else {
listenToHemoCube()
startBuffer()
@@ -108,8 +109,10 @@ class HemoCubeFragment : Fragment() {
}
private fun checkBufferValue(): Boolean {
return if (sharedPreference.getString(Constants.BUFFER_VALUE_1, "") != ""
&& sharedPreference.getString(Constants.BUFFER_VALUE_2, "") != ""
return if (sharedPreference.getString(
Constants.BUFFER_VALUE_1,
""
) != "" && sharedPreference.getString(Constants.BUFFER_VALUE_2, "") != ""
) {
sharedPreference.getString(Constants.BUFFER_VALUE_1, "")
?.toDouble()!! > 0.0 && sharedPreference.getString(Constants.BUFFER_VALUE_2, "")
@@ -176,8 +179,7 @@ class HemoCubeFragment : Fragment() {
listenToHemoCube()
startBuffer()
}
}
)
})
}
if (stringData.contains("ERROR 501")) {
@@ -195,8 +197,7 @@ class HemoCubeFragment : Fragment() {
listenToHemoCube()
startSample()
}
}
)
})
}
@@ -217,8 +218,7 @@ class HemoCubeFragment : Fragment() {
listenToHemoCube()
startSample()
}
}
)
})
}
}
@@ -233,11 +233,11 @@ class HemoCubeFragment : Fragment() {
if (stringData.contains("RESULT") || resultData.contains("REND")) {
// DEVICE RESPONSE FORMAT: RESULT SN <DEVICE_SERIAL_NUMBER> <GREEN_BUFFER_INTENSITY> <BLUE_BUFFER_INTENSITY> <GREEN_SAMPLE_INTENSITY> <BLUE_SAMPLE_INTENSITY> REND
// // For example, "RESULT SN 18291 1937.23 2828.11 28211.20 121829.12 REND"
var validString = ""
var results: List<String>
var validString: String
val results: List<String>
if (stringData.contains("RESULT")) {
validString = isValidResult(stringData)
if (validString.isNullOrEmpty()) {
if (validString.isEmpty()) {
results = resultData.split("\n")
validString = parseResult(results)
}
@@ -246,7 +246,8 @@ class HemoCubeFragment : Fragment() {
validString = parseResult(results)
}
if (!validString.isNullOrEmpty()) {
if (validString.isNotEmpty()) {
val result = validString.split(" ")
if (result.size == 8) {
val deviceSerialNo = result[2]
@@ -258,15 +259,21 @@ class HemoCubeFragment : Fragment() {
val led2Average = log10(led2Buffer?.div(led2Sample!!) ?: 0.0)
val deviceRatio = led1Average / led2Average
DataHolder.hemoCubeTestData?.deviceSerialNumber = deviceSerialNo
val kitCount = sharedPreference.getInt(Constants.KIT_COUNT, 0)?.toInt()
if (kitCount != null && kitCount < 35 && sharedPreference.getString(Constants.BUFFER_VALUE_1, "").isNullOrEmpty())
DataHolder.hemoCubeTestData?.led1Buffer = led1Buffer
else
DataHolder.hemoCubeTestData?.led1Buffer = sharedPreference.getString(Constants.BUFFER_VALUE_1, "")?.toDoubleOrNull()
if (kitCount != null && kitCount < 35 && sharedPreference.getString(Constants.BUFFER_VALUE_2, "").isNullOrEmpty())
DataHolder.hemoCubeTestData?.led2Buffer = led2Buffer
else
DataHolder.hemoCubeTestData?.led2Buffer = sharedPreference.getString(Constants.BUFFER_VALUE_2, "")?.toDoubleOrNull()
val kitCount = sharedPreference.getInt(Constants.KIT_COUNT, 0)
if (kitCount < 35 && sharedPreference.getString(
Constants.BUFFER_VALUE_1, ""
).isNullOrEmpty()
) DataHolder.hemoCubeTestData?.led1Buffer = led1Buffer
else DataHolder.hemoCubeTestData?.led1Buffer =
sharedPreference.getString(Constants.BUFFER_VALUE_1, "")
?.toDoubleOrNull()
if (kitCount < 35 && sharedPreference.getString(
Constants.BUFFER_VALUE_2, ""
).isNullOrEmpty()
) DataHolder.hemoCubeTestData?.led2Buffer = led2Buffer
else DataHolder.hemoCubeTestData?.led2Buffer =
sharedPreference.getString(Constants.BUFFER_VALUE_2, "")
?.toDoubleOrNull()
DataHolder.hemoCubeTestData?.led1Sample = led1Sample
DataHolder.hemoCubeTestData?.led2Sample = led2Sample
DataHolder.hemoCubeTestData?.led1Average = led1Average
@@ -275,8 +282,8 @@ class HemoCubeFragment : Fragment() {
DataHolder.hemoCubeTestData?.calculatedRatio =
calculateRatio(deviceRatio)
DataHolder.hemoCubeTestData?.resultData = resultData
resultRatio = deviceRatio?.toString()
DataHolder.hemoCubeTestData?.resultData = resultData
resultRatio = deviceRatio.toString()
if (!checkBufferValue()) {
with(sharedPreference.edit()) {
putString(Constants.BUFFER_VALUE_1, led1Buffer.toString())
@@ -317,7 +324,6 @@ class HemoCubeFragment : Fragment() {
}
}
}
hemoCubeViewModel.progressBar.postValue(false)
}
}
}
@@ -331,41 +337,39 @@ class HemoCubeFragment : Fragment() {
private fun startBuffer() {
hemoCubeViewModel.progressBar.postValue(true)
(activity as HemocubeActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.startBuffer,
(activity as HemocubeActivity).mService.sendAndListenToHemoCube(
HemoCubeCommands.startBuffer,
object : UsbServiceListener {
override fun onUsbRead(data: ByteArray?) {}
override fun onUsbError(e: Exception?) {
hemoCubeViewModel.progressBar.postValue(false)
}
}
)
})
}
private fun startSample() {
hemoCubeViewModel.progressBar.postValue(true)
val fullReadOutput = StringBuilder()
(activity as HemocubeActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.startSample,
(activity as HemocubeActivity).mService.sendAndListenToHemoCube(
HemoCubeCommands.startSample,
object : UsbServiceListener {
override fun onUsbRead(data: ByteArray?) {}
override fun onUsbError(e: Exception?) {
hemoCubeViewModel.progressBar.postValue(false)
}
}
)
})
}
private fun getResult() {
hemoCubeViewModel.progressBar.postValue(true)
(activity as HemocubeActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.getSample,
(activity as HemocubeActivity).mService.sendAndListenToHemoCube(
HemoCubeCommands.getSample,
object : UsbServiceListener {
override fun onUsbRead(data: ByteArray?) {}
override fun onUsbError(e: Exception?) {
hemoCubeViewModel.progressBar.postValue(false)
}
}
)
})
}
private fun calculateRatio(ratio: Double): Double {
@@ -377,8 +381,7 @@ class HemoCubeFragment : Fragment() {
private fun parseResult(frames: List<String>): String {
val lines = mutableListOf<String>()
for (frame in frames.reversed()) {
if (frame.contains("REND") || frame.contains("RESULT"))
lines += frame
if (frame.contains("REND") || frame.contains("RESULT")) lines += frame
if (frame.contains("RESULT")) {
break
}