From ece2cec4c0b2c2e332871ef056eff5ff04a1d785 Mon Sep 17 00:00:00 2001 From: "smileomi18@gmail.com" Date: Wed, 2 Aug 2023 16:33:46 +0530 Subject: [PATCH] hemocube alert Dialogue --- .../example/hpostesting/data/DataHolder.kt | 2 - .../hpostesting/data/dao/Converters.kt | 22 ++++- .../data/model/patient/HemoCubeTestData.kt | 8 +- .../presentation/hemocube/HemoCubeFragment.kt | 80 ++++++------------- 4 files changed, 54 insertions(+), 58 deletions(-) diff --git a/app/src/main/java/com/example/hpostesting/data/DataHolder.kt b/app/src/main/java/com/example/hpostesting/data/DataHolder.kt index c7703e7..2bca731 100644 --- a/app/src/main/java/com/example/hpostesting/data/DataHolder.kt +++ b/app/src/main/java/com/example/hpostesting/data/DataHolder.kt @@ -23,9 +23,7 @@ object DataHolder { val intensityReferenceArray = ArrayList() var selectedTest: UserData? = null var hemoCubeTestData: HemoCubeTestData? = null - var kitSerial: String = "" - var location: UserData.Location? = null var testExp: Boolean = true var hemocubeResult: Double? = null diff --git a/app/src/main/java/com/example/hpostesting/data/dao/Converters.kt b/app/src/main/java/com/example/hpostesting/data/dao/Converters.kt index db1c43e..68b71d3 100644 --- a/app/src/main/java/com/example/hpostesting/data/dao/Converters.kt +++ b/app/src/main/java/com/example/hpostesting/data/dao/Converters.kt @@ -1,6 +1,7 @@ package com.example.hpostesting.data.dao import androidx.room.TypeConverter +import com.example.hpostesting.data.model.patient.HemoCubeTestData import com.example.hpostesting.data.model.patient.UserData import com.google.gson.Gson @@ -15,7 +16,6 @@ class Converters { null } } - @TypeConverter fun toString(location: UserData.Location?): String? { return if (location != null) { @@ -24,4 +24,24 @@ class Converters { null } } + + @TypeConverter + fun fromLocation(value: String?): HemoCubeTestData.Location? { + return if (value != null) { + gson.fromJson(value, HemoCubeTestData.Location::class.java) + } else { + null + } + } + + + + @TypeConverter + fun toLocation(location: HemoCubeTestData.Location?): String? { + return if (location != null) { + gson.toJson(location) + } else { + null + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/example/hpostesting/data/model/patient/HemoCubeTestData.kt b/app/src/main/java/com/example/hpostesting/data/model/patient/HemoCubeTestData.kt index 6ff4c8e..f886574 100644 --- a/app/src/main/java/com/example/hpostesting/data/model/patient/HemoCubeTestData.kt +++ b/app/src/main/java/com/example/hpostesting/data/model/patient/HemoCubeTestData.kt @@ -20,8 +20,14 @@ data class HemoCubeTestData( var deviceSerialNumber: String = "", var kitSerial: String = "", var reportPath: String = "", + var locationhemo: Location? = null, var resultRatio: Double? = null, var resultData: String = "", var led1: Double? = null, var led2: Double? = null -) \ No newline at end of file +){ + data class Location( + var latitude: Double? = null, + var longitude: Double? = null +) +} diff --git a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeFragment.kt index 65dbfe8..08c3ab5 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeFragment.kt @@ -10,13 +10,14 @@ import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.widget.TextView import android.widget.Toast import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import com.example.hpostesting.data.DataHolder import com.example.hpostesting.data.model.patient.toHemoCubeTestData import com.example.hpostesting.presentation.UsbServiceListener +import com.example.hpostesting.presentation.utils.MyDialogListener +import com.example.hpostesting.presentation.utils.UIUtils import `in`.sminnovations.hpostesting.R import `in`.sminnovations.hpostesting.databinding.FragmentHemoCubeReferenceBinding @@ -76,8 +77,30 @@ class HemoCubeFragment : Fragment() { private fun setupButtonClickListeners() { binding.btnShowResult.setOnClickListener { -// readUsbData() - fetchHemoCubeResult() + UIUtils.createAlertDialog( + requireContext(), + "WARNING", + "Please check if you have placed the sample of this person", + getString(R.string.no), + "Yes", + object : MyDialogListener { + override fun onClickNegativeButton() {} + override fun onClickPositiveButton() { + UIUtils.createAlertDialog( + requireContext(), + getString(R.string.have_you_placed_sample), + getString(R.string.please_place_sample), + getString(R.string.no), + getString(R.string.yes_and_run), + object : MyDialogListener { + override fun onClickNegativeButton() {} + override fun onClickPositiveButton() { + fetchHemoCubeResult() + } + }) + } + }) + } binding.btnSubmit.setOnClickListener { @@ -164,20 +187,6 @@ class HemoCubeFragment : Fragment() { Log.d("greenBuffer", blueIntensity.toString()) Log.d("greenBuffer", blueBIntensity.toString()) } - - private fun displayValuesOnTextView(parsedData: Map) { - val fullReadOutput = StringBuilder() - val textView: TextView = requireView().findViewById(R.id.tv_subtitle4) - - val resultText = buildString { - for ((label, value) in parsedData) { - append("$label: $value\n") - } - } - fullReadOutput.append(resultText) - textView.text = fullReadOutput.toString() - } - private fun fetchHemoCubeResult() { if (DataHolder.hemoCubeTestData == null) { DataHolder.hemoCubeTestData = DataHolder.selectedTest?.toHemoCubeTestData() @@ -207,41 +216,4 @@ class HemoCubeFragment : Fragment() { } }) } - - private fun fetchHemoCubeResultNew() { - hemoCubeViewModel.progressBar.postValue(true) - val fullReadOutput = StringBuilder() - (activity as HemocubeActivity).mService.eventDrivenWriteHemoCube(object : - UsbServiceListener { - override fun onUsbRead(data: ByteArray?) { - data?.let { - val stringData = String(it) - fullReadOutput.append(stringData) - - // Split the data into lines - val lines = fullReadOutput.toString().split("\n") - - // Filter and get only the lines starting with "#" - val bufferLines = lines.filter { it.startsWith("#") } - - // Create a new text with the filtered lines and join them with line breaks - val newText = bufferLines.joinToString("\n") - - // Update the TextView with the new text - binding.tvSubtitle4.text = newText - - // Get the result data - val data = parseUsbData(fullReadOutput.toString()) - Log.d("Result", data.toString()) - - // Update the view model with progress bar state - hemoCubeViewModel.progressBar.postValue(false) - } - } - - override fun onUsbError(e: Exception?) { - hemoCubeViewModel.progressBar.postValue(false) - } - }) - } }