HemoCube new Changes

This commit is contained in:
smileomi18@gmail.com
2023-07-26 18:11:46 +05:30
parent ebf212d33a
commit a5db2e759c
5 changed files with 36 additions and 19 deletions

View File

@@ -84,7 +84,7 @@ class KitScanActivity : AppCompatActivity() {
val i = Intent(applicationContext, HemocubeActivity::class.java) val i = Intent(applicationContext, HemocubeActivity::class.java)
startActivity(i) startActivity(i)
} }
"Test" -> { Constants.DEVICE_TYPE_TEST_RIGHT -> {
val i = Intent(applicationContext, TestRightActivity::class.java) val i = Intent(applicationContext, TestRightActivity::class.java)
startActivity(i) startActivity(i)
} }

View File

@@ -69,12 +69,12 @@ class MainActivity : AppCompatActivity() {
DataHolder.deviceType.observe(this) { deviceType -> DataHolder.deviceType.observe(this) { deviceType ->
with(binding) { with(binding) {
cvItem1.visibility = if (deviceType == Constants.DEVICE_TYPE_HOMOCUBE) {
if (deviceType == Constants.DEVICE_TYPE_HOMOCUBE) View.VISIBLE else View.GONE binding.cvItem1.visibility = View.VISIBLE
cvItem2.visibility = binding.cvItem3.visibility = View.VISIBLE
if (deviceType == Constants.DEVICE_TYPE_TEST_RIGHT) View.VISIBLE else View.GONE binding.cvItem2.visibility = View.GONE
cvItem3.visibility = View.VISIBLE binding.cvItem4.visibility = View.GONE
cvItem4.visibility = View.VISIBLE }
DataHolder.usbConnected.value = true DataHolder.usbConnected.value = true
} }
} }

View File

@@ -3,12 +3,16 @@ package com.example.hpostesting.presentation.hemocube
import android.content.Context import android.content.Context
import android.content.SharedPreferences import android.content.SharedPreferences
import android.os.Bundle import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.Toast import android.widget.Toast
import androidx.lifecycle.ViewModel;
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import com.example.hpostesting.data.DataHolder import com.example.hpostesting.data.DataHolder
import com.example.hpostesting.presentation.UsbServiceListener import com.example.hpostesting.presentation.UsbServiceListener
import `in`.sminnovations.hpostesting.databinding.FragmentHemoCubeReferenceBinding import `in`.sminnovations.hpostesting.databinding.FragmentHemoCubeReferenceBinding
@@ -19,7 +23,7 @@ class HemoCubeFragment : Fragment() {
private var resultRatio: String? = null private var resultRatio: String? = null
private var kitSerial: String? = null private var kitSerial: String? = null
private lateinit var binding: FragmentHemoCubeReferenceBinding private lateinit var binding: FragmentHemoCubeReferenceBinding
private val viewModel: HemoCubeViewModel by viewModels() private val hemoCubeViewModel: HemoCubeViewModel by activityViewModels()
private lateinit var sharedPreference: SharedPreferences private lateinit var sharedPreference: SharedPreferences
private var isOnline = false private var isOnline = false
@@ -37,7 +41,7 @@ class HemoCubeFragment : Fragment() {
sharedPreference = sharedPreference =
requireContext().getSharedPreferences("PREFERENCE_NAME", Context.MODE_PRIVATE) requireContext().getSharedPreferences("PREFERENCE_NAME", Context.MODE_PRIVATE)
viewModel.fireBaseUpload.observe(viewLifecycleOwner) { hemoCubeViewModel.fireBaseUpload.observe(viewLifecycleOwner) {
if (it == "Success") { if (it == "Success") {
Toast.makeText( Toast.makeText(
requireContext(), requireContext(),
@@ -48,7 +52,7 @@ class HemoCubeFragment : Fragment() {
binding.progressBar.visibility = View.GONE binding.progressBar.visibility = View.GONE
} }
viewModel.networkStatusLiveData.observe(viewLifecycleOwner) { isNetworkAvailable -> hemoCubeViewModel.networkStatusLiveData.observe(viewLifecycleOwner) { isNetworkAvailable ->
apply { apply {
kitSerial = DataHolder.SelectTestType?.kitSerial kitSerial = DataHolder.SelectTestType?.kitSerial
testTime = DataHolder.SelectTestType?.testTime testTime = DataHolder.SelectTestType?.testTime
@@ -63,9 +67,17 @@ class HemoCubeFragment : Fragment() {
} }
binding.btnSubmit.setOnClickListener { binding.btnSubmit.setOnClickListener {
Toast.makeText(
requireContext(),
"Test Data uploaded",
Toast.LENGTH_SHORT
).show()
Log.e("Testdb", "success")
if (isOnline) { if (isOnline) {
resultRatio?.let { ratio -> resultRatio?.let { ratio ->
viewModel.uploadHemocubeResultToDatabase( Log.e("Testdb", "upload")
hemoCubeViewModel.uploadHemocubeResultToDatabase(
requireContext(), requireContext(),
isOnline, isOnline,
true, true,
@@ -77,7 +89,7 @@ class HemoCubeFragment : Fragment() {
binding.progressBar.visibility = View.VISIBLE binding.progressBar.visibility = View.VISIBLE
} else { } else {
resultRatio?.let { ratio -> resultRatio?.let { ratio ->
viewModel.uploadHemocubeResultToDatabase( hemoCubeViewModel.uploadHemocubeResultToDatabase(
requireContext(), requireContext(),
isOnline, isOnline,
true, true,
@@ -96,7 +108,7 @@ class HemoCubeFragment : Fragment() {
} }
private fun fetchHemoCubeResult() { private fun fetchHemoCubeResult() {
viewModel.progressBar.postValue(true) hemoCubeViewModel.progressBar.postValue(true)
val fullReadOutput = StringBuilder() val fullReadOutput = StringBuilder()
(activity as HemocubeActivity).mService.eventDrivenWriteHemoCube(object : (activity as HemocubeActivity).mService.eventDrivenWriteHemoCube(object :
UsbServiceListener { UsbServiceListener {
@@ -106,12 +118,12 @@ class HemoCubeFragment : Fragment() {
fullReadOutput.append(stringData) fullReadOutput.append(stringData)
binding.tvSubtitle4.text = fullReadOutput binding.tvSubtitle4.text = fullReadOutput
resultRatio = fullReadOutput.toString() resultRatio = fullReadOutput.toString()
viewModel.progressBar.postValue(false) hemoCubeViewModel.progressBar.postValue(false)
} }
} }
override fun onUsbError(e: Exception?) { override fun onUsbError(e: Exception?) {
viewModel.progressBar.postValue(false) hemoCubeViewModel.progressBar.postValue(false)
} }
}) })
} }

View File

@@ -1,6 +1,9 @@
package com.example.hpostesting.presentation.hemocube package com.example.hpostesting.presentation.hemocube
import android.content.Context import android.content.Context
import android.util.Log
import android.widget.Toast
import androidx.core.content.ContentProviderCompat.requireContext
import androidx.lifecycle.LiveData import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
@@ -17,7 +20,7 @@ import java.util.Calendar
import java.util.Locale import java.util.Locale
import javax.inject.Inject import javax.inject.Inject
@HiltViewModel @HiltViewModel
class HemoCubeViewModel@Inject constructor( class HemoCubeViewModel @Inject constructor(
private val hemoCubeDao: HemoCubeDao, private val hemoCubeDao: HemoCubeDao,
private val repository: DatabaseRepository, private val repository: DatabaseRepository,
context: Context context: Context
@@ -25,7 +28,7 @@ class HemoCubeViewModel@Inject constructor(
var isServiceConnected = false var isServiceConnected = false
val progressBar = MutableLiveData(false) val progressBar = MutableLiveData(false)
val testDetails = DataHolder.SelectTestType val testDetails = DataHolder.SelectTestType
val testDetailst = DataHolder.selectedTest val testDetailuser = DataHolder.selectedTest
private val _networkStatusLiveData = NetworkStatusLiveData(context) private val _networkStatusLiveData = NetworkStatusLiveData(context)
val networkStatusLiveData: LiveData<Boolean> val networkStatusLiveData: LiveData<Boolean>
get() = _networkStatusLiveData get() = _networkStatusLiveData
@@ -42,6 +45,7 @@ class HemoCubeViewModel@Inject constructor(
testDetails?.testStatus = testStatus testDetails?.testStatus = testStatus
if (isOnline) { if (isOnline) {
try { try {
Log.e("Testdb", "upload")
addResultTestToDb() addResultTestToDb()
} catch (_: Exception) { } catch (_: Exception) {
} }
@@ -54,7 +58,7 @@ class HemoCubeViewModel@Inject constructor(
} }
private fun addResultTestToDb() { private fun addResultTestToDb() {
testDetails?.resultRatio = DataHolder.hemocubeResult testDetails?.resultRatio = DataHolder.hemocubeResult
testDetailst?.location = DataHolder.location testDetailuser?.location = DataHolder.location
testDetails?.testTime = SimpleDateFormat( testDetails?.testTime = SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss", Locale.getDefault() "yyyy-MM-dd HH:mm:ss", Locale.getDefault()
).format(Calendar.getInstance().time) ).format(Calendar.getInstance().time)
@@ -64,6 +68,7 @@ class HemoCubeViewModel@Inject constructor(
).format(Calendar.getInstance().time) ).format(Calendar.getInstance().time)
when (repository.addTestToDatabase(testDetails)) { when (repository.addTestToDatabase(testDetails)) {
is Response.Success -> { is Response.Success -> {
Log.e("Testdb", "success")
fireBaseUpload.postValue("Success") fireBaseUpload.postValue("Success")
} }
else -> {} else -> {}

View File

@@ -51,7 +51,7 @@
android:id="@+id/tv_subtitle4" android:id="@+id/tv_subtitle4"
style="@style/title2" style="@style/title2"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:layout_marginHorizontal="24dp" android:layout_marginHorizontal="24dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:hint="Result" android:hint="Result"