From 0ca4083c16860b988dc1182268d7a022447cbc3c Mon Sep 17 00:00:00 2001 From: Mariya Date: Wed, 11 Oct 2023 12:32:07 +0530 Subject: [PATCH] Database upload completed --- .../HemoCubeBufferCheckFragment.kt | 37 +++++++++++++++++-- 1 file changed, 34 insertions(+), 3 deletions(-) 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 e8fb957..a8b010e 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,7 @@ package com.example.hpostesting.presentation.buffercheck import android.content.Context +import android.content.Intent import android.content.SharedPreferences import android.os.Bundle import android.view.LayoutInflater @@ -10,12 +11,14 @@ import android.widget.Toast import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.lifecycleScope import com.example.hpostesting.data.DataHolder import com.example.hpostesting.data.constant.Constants import com.example.hpostesting.data.constant.HemoCubeCommands import com.example.hpostesting.data.model.patient.DeviceData import com.example.hpostesting.data.model.patient.toHemoCubeTestData import com.example.hpostesting.presentation.UsbServiceListener +import com.example.hpostesting.presentation.dashboard.DashboardActivity import com.example.hpostesting.presentation.hemocube.HemoCubeViewModel import com.example.hpostesting.presentation.utils.MyDialogListener import com.example.hpostesting.presentation.utils.UIUtils @@ -23,6 +26,7 @@ import com.google.firebase.crashlytics.ktx.crashlytics import com.google.firebase.ktx.Firebase import `in`.sminnovations.hpostesting.R import `in`.sminnovations.hpostesting.databinding.FragmentHemoCubeReferenceBinding +import kotlinx.coroutines.launch import kotlin.math.log10 class HemoCubeBufferCheckFragment : Fragment() { @@ -32,6 +36,7 @@ class HemoCubeBufferCheckFragment : Fragment() { private lateinit var sharedPreferences: SharedPreferences private var currentDeviceData: DeviceData? = null private var resultData: String = "" + private var isOnline = false private val messages = MutableLiveData() private var isTestOngoing = false private var startListening = MutableLiveData(false) @@ -52,14 +57,34 @@ class HemoCubeBufferCheckFragment : Fragment() { private fun initViews() { binding.btnKit.visibility = View.GONE - binding.btnSubmit.visibility = View.GONE binding.etBloodGroup.visibility = View.GONE listenToHemoCube() startBufferProcess() + + binding.btnSubmit.setOnClickListener { + activity?.runOnUiThread { + binding.progressBar.visibility = View.VISIBLE + } + hemoCubeViewModel.uploadHemoCubeResultToDatabase( + isOnline, true, sharedPreferences.getString(Constants.KIT_NUMBER, "") + ) + } + binding.btnSubmit.isEnabled = false + binding.btnSubmit.isClickable = false } 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 } @@ -74,6 +99,7 @@ class HemoCubeBufferCheckFragment : Fragment() { Toast.LENGTH_SHORT ).show() } + isOnline = isNetworkAvailable } messages.observe(viewLifecycleOwner) { @@ -121,8 +147,13 @@ class HemoCubeBufferCheckFragment : Fragment() { stringData.contains("ERROR 500") -> showError500Dialog() stringData.contains("ERROR 501") -> showError501Dialog() stringData.contains("#Buffer Completed") -> showStartSampleDialog() - stringData.contains("#Sample Completed") -> fetchResult() - + 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