diff --git a/app/build.gradle b/app/build.gradle index 72188f7..1dc9f3d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,8 +20,8 @@ android { applicationId "in.sminnovations.hpostesting.server" minSdk 21 targetSdk 34 - versionCode 132 - versionName "2.1.130.2" + versionCode 133 + versionName "2.1.131" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } @@ -76,7 +76,6 @@ dependencies { implementation platform('com.google.firebase:firebase-bom:32.1.0') implementation("com.google.firebase:firebase-perf-ktx") implementation("com.google.firebase:firebase-crashlytics-ktx") - implementation("com.google.firebase:firebase-config-ktx") implementation("com.google.firebase:firebase-analytics-ktx") implementation 'com.google.firebase:firebase-firestore-ktx' implementation 'com.google.firebase:firebase-auth-ktx' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 91b6fb9..71eaae9 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,7 +44,7 @@ android:theme="@style/Theme.HPOSTesting" tools:targetApi="31"> @@ -62,7 +62,7 @@ when (deviceType) { Constants.DEVICE_TYPE_HEMOCUBE -> { - val i = Intent(applicationContext, HemocubeActivity::class.java) + val i = Intent(applicationContext, TrueHemeTestActivity::class.java) startActivity(i) } @@ -387,7 +383,7 @@ class KitScanActivity : AppCompatActivity(), IDcsSdkApiDelegate { } Constants.DEVICE_TYPE_TRUEHEME -> { - val i = Intent(applicationContext, HemocubeActivity::class.java) + val i = Intent(applicationContext, TrueHemeTestActivity::class.java) startActivity(i) } } diff --git a/app/src/main/java/com/example/hpostesting/presentation/MainActivity.kt b/app/src/main/java/com/example/hpostesting/presentation/MainActivity.kt index dd4d298..d662c68 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/MainActivity.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/MainActivity.kt @@ -35,7 +35,7 @@ import com.example.hpostesting.data.constant.Constants import com.example.hpostesting.data.constant.DataHolder import com.example.hpostesting.data.constant.LanguageManager import com.example.hpostesting.data.model.test.TestType -import com.example.hpostesting.presentation.dashboard.DashboardActivity +import com.example.hpostesting.presentation.main_base.DashboardActivity import com.google.android.gms.location.FusedLocationProviderClient import com.google.android.gms.location.LocationCallback import com.google.android.gms.location.LocationRequest diff --git a/app/src/main/java/com/example/hpostesting/presentation/SplashActivity.kt b/app/src/main/java/com/example/hpostesting/presentation/SplashActivity.kt index 4a5bb1a..5540efd 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/SplashActivity.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/SplashActivity.kt @@ -28,7 +28,7 @@ import androidx.appcompat.app.AppCompatActivity import androidx.core.content.ContextCompat import com.example.hpostesting.data.constant.DataHolder import com.example.hpostesting.data.constant.LanguageManager -import com.example.hpostesting.presentation.dashboard.DashboardActivity +import com.example.hpostesting.presentation.main_base.DashboardActivity import com.example.hpostesting.util.MyUtils import `in`.sminnovations.hpostesting.R import `in`.sminnovations.hpostesting.databinding.ActivitySplashBinding diff --git a/app/src/main/java/com/example/hpostesting/presentation/adapter/UserListAdapter.kt b/app/src/main/java/com/example/hpostesting/presentation/adapter/UserListAdapter.kt index 334d777..90b6f9e 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/adapter/UserListAdapter.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/adapter/UserListAdapter.kt @@ -29,7 +29,7 @@ import androidx.recyclerview.widget.RecyclerView import com.bumptech.glide.Glide import com.example.hpostesting.data.constant.DataHolder import com.example.hpostesting.data.model.patient.UserData -import com.example.hpostesting.presentation.hemocube.HemoCubeViewModel +import com.example.hpostesting.presentation.trueheme_test.TrueHemeTestViewModel import com.firebase.ui.firestore.FirestoreRecyclerAdapter import com.firebase.ui.firestore.FirestoreRecyclerOptions import com.google.firebase.firestore.FirebaseFirestore @@ -42,7 +42,7 @@ import java.util.Locale class UserListAdapter( private val context: Context, - private val hemoCubeViewModel: HemoCubeViewModel, + private val trueHemeTestViewModel: TrueHemeTestViewModel, options: FirestoreRecyclerOptions, private val view: View, private val batLevel: Int, diff --git a/app/src/main/java/com/example/hpostesting/presentation/assurance/AssuranceControlsFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/assurance/AssuranceControlsFragment.kt index 135acac..36bf979 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/assurance/AssuranceControlsFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/assurance/AssuranceControlsFragment.kt @@ -31,7 +31,7 @@ import androidx.fragment.app.Fragment import com.example.hpostesting.data.constant.DataHolder import com.example.hpostesting.data.constant.Constants import com.example.hpostesting.data.model.patient.UserData -import com.example.hpostesting.presentation.hemocube.HemocubeActivity +import com.example.hpostesting.presentation.trueheme_test.TrueHemeTestActivity import `in`.sminnovations.hpostesting.databinding.FragmentAssuranceControlsBinding import java.time.Instant @@ -259,7 +259,7 @@ class AssuranceControlsFragment : Fragment() { apply() } - val i = Intent(requireContext(), HemocubeActivity::class.java) + val i = Intent(requireContext(), TrueHemeTestActivity::class.java) startActivity(i) } } 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 d29e373..f3f8ab4 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 @@ -29,8 +29,8 @@ import com.example.hpostesting.data.constant.HemoCubeCommands import com.example.hpostesting.data.model.patient.BufferCheckData import com.example.hpostesting.data.model.patient.DeviceData import com.example.hpostesting.presentation.utils.UsbServiceListener -import com.example.hpostesting.presentation.dashboard.DashboardActivity -import com.example.hpostesting.presentation.hemocube.HemoCubeViewModel +import com.example.hpostesting.presentation.main_base.DashboardActivity +import com.example.hpostesting.presentation.trueheme_test.TrueHemeTestViewModel import com.google.firebase.crashlytics.ktx.crashlytics import com.google.firebase.ktx.Firebase import `in`.sminnovations.hpostesting.R @@ -44,7 +44,7 @@ import kotlin.math.log10 class HemoCubeBufferCheckFragment : Fragment() { private lateinit var binding: FragmentHemoCubeReferenceBinding - private val hemoCubeViewModel: HemoCubeViewModel by activityViewModels() + private val trueHemeTestViewModel: TrueHemeTestViewModel by activityViewModels() private lateinit var sharedPreferences: SharedPreferences private var currentDeviceData: DeviceData? = null private var resultData: String = "" @@ -123,13 +123,13 @@ class HemoCubeBufferCheckFragment : Fragment() { } private fun observeViewModel() { - hemoCubeViewModel.deviceData.observe(viewLifecycleOwner) { + trueHemeTestViewModel.deviceData.observe(viewLifecycleOwner) { currentDeviceData = it } - hemoCubeViewModel.networkStatusLiveData.observe(viewLifecycleOwner) { isNetworkAvailable -> + trueHemeTestViewModel.networkStatusLiveData.observe(viewLifecycleOwner) { isNetworkAvailable -> if (isNetworkAvailable) { - hemoCubeViewModel.getDeviceData(sharedPreferences.getString(Constants.USER_ID, "")) + trueHemeTestViewModel.getDeviceData(sharedPreferences.getString(Constants.USER_ID, "")) } else { Toast.makeText( requireContext(), R.string.internt_not, Toast.LENGTH_SHORT @@ -137,7 +137,7 @@ class HemoCubeBufferCheckFragment : Fragment() { } isOnline = isNetworkAvailable } - hemoCubeViewModel.fireBaseUpload.observe(viewLifecycleOwner) { result -> + trueHemeTestViewModel.fireBaseUpload.observe(viewLifecycleOwner) { result -> if (result == "Success") { showToast(R.string.kit_uploaded) } @@ -152,11 +152,11 @@ class HemoCubeBufferCheckFragment : Fragment() { binding.progressBar.visibility = View.GONE } - hemoCubeViewModel.messages.observe(viewLifecycleOwner) { + trueHemeTestViewModel.messages.observe(viewLifecycleOwner) { binding.tvSubtitle4.text = it } - hemoCubeViewModel.deviceMessages.observe(viewLifecycleOwner) { + trueHemeTestViewModel.deviceMessages.observe(viewLifecycleOwner) { binding.tvDeviceMessages.text = it } } @@ -192,7 +192,7 @@ class HemoCubeBufferCheckFragment : Fragment() { } resultData += stringData - hemoCubeViewModel.deviceMessages.postValue(resultData) + trueHemeTestViewModel.deviceMessages.postValue(resultData) when { stringData.contains("SN") -> { @@ -209,11 +209,11 @@ class HemoCubeBufferCheckFragment : Fragment() { binding.tvSubtitle4.visibility = View.VISIBLE binding.btnPlacebuffer.visibility = View.VISIBLE } - hemoCubeViewModel.messages.postValue("Start") + trueHemeTestViewModel.messages.postValue("Start") } stringData.contains("#BS") -> { - hemoCubeViewModel.messages.postValue("Buffer Started") + trueHemeTestViewModel.messages.postValue("Buffer Started") } stringData.contains("#BC") -> { @@ -232,7 +232,7 @@ class HemoCubeBufferCheckFragment : Fragment() { } stringData.contains("#SC") -> { - hemoCubeViewModel.messages.postValue("Sample Completed \nGathering data") + trueHemeTestViewModel.messages.postValue("Sample Completed \nGathering data") fetchResult() } @@ -351,7 +351,7 @@ class HemoCubeBufferCheckFragment : Fragment() { } val prdClassification = absorbanceBasedClassification(_predictedDenovixRatio) - hemoCubeViewModel.messages.postValue(prdClassification) + trueHemeTestViewModel.messages.postValue(prdClassification) val bufferData = BufferCheckData( _id = UUID.randomUUID().toString(), @@ -385,15 +385,15 @@ class HemoCubeBufferCheckFragment : Fragment() { testTime = SimpleDateFormat( "yyyy-MM-dd HH:mm:ss", Locale.getDefault() ).format(Calendar.getInstance().time), - batteryLevel = hemoCubeViewModel.getBatteryLevel().toString(), - batteryCapacity = hemoCubeViewModel.getBatteryCapacity(requireContext()).toString(), - batteryMaxCapacity = hemoCubeViewModel.getBatteryMaxCapacity(requireContext()) + batteryLevel = trueHemeTestViewModel.getBatteryLevel().toString(), + batteryCapacity = trueHemeTestViewModel.getBatteryCapacity(requireContext()).toString(), + batteryMaxCapacity = trueHemeTestViewModel.getBatteryMaxCapacity(requireContext()) .toString(), - batteryTemperature = hemoCubeViewModel.getBatteryTemperature().toString(), - batteryVoltage = hemoCubeViewModel.getBatteryVoltage(requireContext()).toString() + batteryTemperature = trueHemeTestViewModel.getBatteryTemperature().toString(), + batteryVoltage = trueHemeTestViewModel.getBatteryVoltage(requireContext()).toString() ) - hemoCubeViewModel.uploadHemoCubeResultToDatabaseForBufferCheck(isOnline, bufferData) + trueHemeTestViewModel.uploadHemoCubeResultToDatabaseForBufferCheck(isOnline, bufferData) } catch (e: Exception) { Toast.makeText( requireContext(), "Error while processing device data", Toast.LENGTH_SHORT @@ -404,7 +404,7 @@ class HemoCubeBufferCheckFragment : Fragment() { private fun findResult(calculatedRatio: Double?): String { try { - hemoCubeViewModel.messages.postValue("result classification") + trueHemeTestViewModel.messages.postValue("result classification") if (calculatedRatio != null) { if (calculatedRatio < 0.05) return "Inconclusive. Very low Absorbance - Repeat test with Higher Blood Volume" if (calculatedRatio in 0.05..0.155) return "Normal" @@ -426,7 +426,7 @@ class HemoCubeBufferCheckFragment : Fragment() { private fun absorbanceBasedClassification(predictedDenovixRatio: Double?): String { try { - hemoCubeViewModel.messages.postValue("result classification") + trueHemeTestViewModel.messages.postValue("result classification") if (predictedDenovixRatio != null) { if (predictedDenovixRatio in 0.0..0.16) return "Kit Passed" if (predictedDenovixRatio in 0.16..0.165) return "Kit Passed" @@ -482,20 +482,20 @@ class HemoCubeBufferCheckFragment : Fragment() { } private fun getDeviceInfo() { - hemoCubeViewModel.progressBar.postValue(true) + trueHemeTestViewModel.progressBar.postValue(true) (activity as HemocubeBufferCheckActivity).mService.sendAndListenToHemoCube( HemoCubeCommands.DEVICE_CONFIGURATION_COMMAND, object : UsbServiceListener { override fun onUsbRead(data: ByteArray?) { data?.let { val stringData = String(it) - hemoCubeViewModel.messages.postValue(stringData) + trueHemeTestViewModel.messages.postValue(stringData) binding.tvSubtitle4.text = stringData } } override fun onUsbError(e: Exception?) { - hemoCubeViewModel.progressBar.postValue(false) + trueHemeTestViewModel.progressBar.postValue(false) } }) } diff --git a/app/src/main/java/com/example/hpostesting/presentation/buffercheck/HemocubeBufferCheckActivity.kt b/app/src/main/java/com/example/hpostesting/presentation/buffercheck/HemocubeBufferCheckActivity.kt index f25e8ef..1a8ba40 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/buffercheck/HemocubeBufferCheckActivity.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/buffercheck/HemocubeBufferCheckActivity.kt @@ -36,7 +36,7 @@ import androidx.core.view.get import com.example.hpostesting.data.constant.DataHolder import com.example.hpostesting.data.constant.Constants import com.example.hpostesting.data.constant.LanguageManager -import com.example.hpostesting.presentation.hemocube.HemoCubeViewModel +import com.example.hpostesting.presentation.trueheme_test.TrueHemeTestViewModel import com.example.hpostesting.util.UsbService import com.hoho.android.usbserial.driver.UsbSerialDriver import com.hoho.android.usbserial.driver.UsbSerialProber @@ -47,7 +47,7 @@ import `in`.sminnovations.hpostesting.databinding.ActivityHemocubeBinding @AndroidEntryPoint open class HemocubeBufferCheckActivity : AppCompatActivity() { private lateinit var binding: ActivityHemocubeBinding - private val viewModel by viewModels() + private val viewModel by viewModels() private var myMenu: Menu? = null private lateinit var mDriver: UsbSerialDriver diff --git a/app/src/main/java/com/example/hpostesting/presentation/calibration/CalibrationFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/calibration/CalibrationFragment.kt index 479d2cf..f5d3eb6 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/calibration/CalibrationFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/calibration/CalibrationFragment.kt @@ -31,7 +31,7 @@ import com.example.hpostesting.data.constant.HemoCubeCommands import com.example.hpostesting.data.model.calibration.CalibrationData import com.example.hpostesting.data.model.patient.DeviceData import com.example.hpostesting.presentation.utils.UsbServiceListener -import com.example.hpostesting.presentation.dashboard.DashboardActivity +import com.example.hpostesting.presentation.main_base.DashboardActivity import com.google.firebase.crashlytics.ktx.crashlytics import com.google.firebase.ktx.Firebase import `in`.sminnovations.hpostesting.databinding.FragmentCalibrationBinding diff --git a/app/src/main/java/com/example/hpostesting/presentation/dashboard/ItemClickListener.kt b/app/src/main/java/com/example/hpostesting/presentation/dashboard/ItemClickListener.kt deleted file mode 100644 index 0847b24..0000000 --- a/app/src/main/java/com/example/hpostesting/presentation/dashboard/ItemClickListener.kt +++ /dev/null @@ -1,18 +0,0 @@ -/* - * // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved. - * // Notice: All information contained herein is, and remains - * // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers, - * // if any. The intellectual and technical concepts contained - * // herein are proprietary to ShanMukha Innovations Pvt. Ltd. - * // and its suppliers and may be covered by Indian and Foreign Patents, - * // patents in process, and are protected by trade secret or copyright law. - * // Dissemination of this information or reproduction of this material - * // is strictly forbidden unless prior written permission is obtained - * // from ShanMukha Innovations Pvt. Ltd. - */ - -package com.example.hpostesting.presentation.dashboard - -interface ItemClickListener { - fun onClick(pos: Int) -} diff --git a/app/src/main/java/com/example/hpostesting/presentation/dashboard/ui/gallery/GalleryViewModel.kt b/app/src/main/java/com/example/hpostesting/presentation/dashboard/ui/gallery/GalleryViewModel.kt deleted file mode 100644 index 0cf19d6..0000000 --- a/app/src/main/java/com/example/hpostesting/presentation/dashboard/ui/gallery/GalleryViewModel.kt +++ /dev/null @@ -1,26 +0,0 @@ -/* - * // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved. - * // Notice: All information contained herein is, and remains - * // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers, - * // if any. The intellectual and technical concepts contained - * // herein are proprietary to ShanMukha Innovations Pvt. Ltd. - * // and its suppliers and may be covered by Indian and Foreign Patents, - * // patents in process, and are protected by trade secret or copyright law. - * // Dissemination of this information or reproduction of this material - * // is strictly forbidden unless prior written permission is obtained - * // from ShanMukha Innovations Pvt. Ltd. - */ - -package com.example.hpostesting.presentation.dashboard.ui.gallery - -import androidx.lifecycle.LiveData -import androidx.lifecycle.MutableLiveData -import androidx.lifecycle.ViewModel - -class mGalleryViewModel : ViewModel() { - - private val _text = MutableLiveData().apply { - value = "This is gallery Fragment" - } - val text: LiveData = _text -} \ No newline at end of file diff --git a/app/src/main/java/com/example/hpostesting/presentation/dashboard/ui/slideshow/SlideshowViewModel.kt b/app/src/main/java/com/example/hpostesting/presentation/dashboard/ui/slideshow/SlideshowViewModel.kt deleted file mode 100644 index db686b6..0000000 --- a/app/src/main/java/com/example/hpostesting/presentation/dashboard/ui/slideshow/SlideshowViewModel.kt +++ /dev/null @@ -1,26 +0,0 @@ -/* - * // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved. - * // Notice: All information contained herein is, and remains - * // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers, - * // if any. The intellectual and technical concepts contained - * // herein are proprietary to ShanMukha Innovations Pvt. Ltd. - * // and its suppliers and may be covered by Indian and Foreign Patents, - * // patents in process, and are protected by trade secret or copyright law. - * // Dissemination of this information or reproduction of this material - * // is strictly forbidden unless prior written permission is obtained - * // from ShanMukha Innovations Pvt. Ltd. - */ - -package com.example.hpostesting.presentation.dashboard.ui.slideshow - -import androidx.lifecycle.LiveData -import androidx.lifecycle.MutableLiveData -import androidx.lifecycle.ViewModel - -class SlideshowViewModel : ViewModel() { - - private val _text = MutableLiveData().apply { - value = "This is slideshow Fragment" - } - val text: LiveData = _text -} \ No newline at end of file diff --git a/app/src/main/java/com/example/hpostesting/presentation/deviceinfo/DeviceFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/deviceinfo/DeviceFragment.kt index e67a9a8..c37dc04 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/deviceinfo/DeviceFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/deviceinfo/DeviceFragment.kt @@ -26,14 +26,14 @@ import androidx.lifecycle.MutableLiveData import com.example.hpostesting.data.constant.Constants import com.example.hpostesting.data.constant.HemoCubeCommands import com.example.hpostesting.presentation.utils.UsbServiceListener -import com.example.hpostesting.presentation.hemocube.HemoCubeViewModel +import com.example.hpostesting.presentation.trueheme_test.TrueHemeTestViewModel import com.google.firebase.crashlytics.ktx.crashlytics import com.google.firebase.ktx.Firebase import `in`.sminnovations.hpostesting.databinding.FragmentDeviceBinding class DeviceFragment : Fragment() { private lateinit var binding: FragmentDeviceBinding - private val deviceViewModel: HemoCubeViewModel by activityViewModels() + private val deviceViewModel: TrueHemeTestViewModel by activityViewModels() private lateinit var sharedPreferences: SharedPreferences private var deviceId = "" private var startListening = MutableLiveData(false) diff --git a/app/src/main/java/com/example/hpostesting/presentation/deviceprovision/DeviceProvisionFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/deviceprovision/DeviceProvisionFragment.kt index 684977e..a3dfc69 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/deviceprovision/DeviceProvisionFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/deviceprovision/DeviceProvisionFragment.kt @@ -17,7 +17,6 @@ import android.content.Context import android.content.Intent import android.content.SharedPreferences import android.os.Bundle -import android.os.Environment import android.provider.Settings import android.util.Log import android.view.LayoutInflater @@ -34,13 +33,11 @@ import com.example.hpostesting.data.model.deviceprovision.DeviceProvisionRequest import com.example.hpostesting.data.model.patient.DeviceData import com.example.hpostesting.encryption.Encryption import com.example.hpostesting.presentation.utils.UsbServiceListener -import com.example.hpostesting.presentation.dashboard.DashboardActivity -import com.google.android.gms.ads.identifier.AdvertisingIdClient +import com.example.hpostesting.presentation.main_base.DashboardActivity import com.google.firebase.crashlytics.ktx.crashlytics import com.google.firebase.ktx.Firebase import `in`.sminnovations.hpostesting.databinding.FragmentDeviceProvisionBinding import java.io.File -import java.io.FileOutputStream class DeviceProvisionFragment : Fragment() { private var resultData: String = "" diff --git a/app/src/main/java/com/example/hpostesting/presentation/dashboard/AboutFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/main_base/AboutFragment.kt similarity index 64% rename from app/src/main/java/com/example/hpostesting/presentation/dashboard/AboutFragment.kt rename to app/src/main/java/com/example/hpostesting/presentation/main_base/AboutFragment.kt index 86819cb..4decc2b 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/dashboard/AboutFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/main_base/AboutFragment.kt @@ -11,29 +11,14 @@ * // from ShanMukha Innovations Pvt. Ltd. */ -package com.example.hpostesting.presentation.dashboard +package com.example.hpostesting.presentation.main_base -import android.content.Context -import android.content.SharedPreferences -import android.os.BatteryManager import android.os.Bundle -import android.util.Log import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import androidx.fragment.app.activityViewModels -import com.example.hpostesting.data.constant.Constants -import com.example.hpostesting.data.constant.DataHolder -import com.example.hpostesting.data.model.patient.HemoCubeTestData -import com.example.hpostesting.presentation.adapter.OfflineUserListAdapter -import com.example.hpostesting.presentation.adapter.UserListAdapter -import com.example.hpostesting.presentation.hemocube.HemoCubeViewModel -import com.example.hpostesting.presentation.testRight.TestRightViewModel -import `in`.sminnovations.hpostesting.R import `in`.sminnovations.hpostesting.databinding.FragmentAboutBinding -import `in`.sminnovations.hpostesting.databinding.FragmentActivitiesBinding -import `in`.sminnovations.hpostesting.databinding.FragmentHomeBinding class AboutFragment : Fragment() { private lateinit var binding: FragmentAboutBinding diff --git a/app/src/main/java/com/example/hpostesting/presentation/dashboard/ActivitiesFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/main_base/ActivitiesFragment.kt similarity index 89% rename from app/src/main/java/com/example/hpostesting/presentation/dashboard/ActivitiesFragment.kt rename to app/src/main/java/com/example/hpostesting/presentation/main_base/ActivitiesFragment.kt index ef26f40..ad6eb99 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/dashboard/ActivitiesFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/main_base/ActivitiesFragment.kt @@ -11,7 +11,7 @@ * // from ShanMukha Innovations Pvt. Ltd. */ -package com.example.hpostesting.presentation.dashboard +package com.example.hpostesting.presentation.main_base import android.content.Context import android.os.BatteryManager @@ -23,7 +23,7 @@ import android.view.ViewGroup import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import com.example.hpostesting.presentation.adapter.OfflineUserListAdapter -import com.example.hpostesting.presentation.hemocube.HemoCubeViewModel +import com.example.hpostesting.presentation.trueheme_test.TrueHemeTestViewModel import `in`.sminnovations.hpostesting.databinding.FragmentActivitiesBinding import java.text.SimpleDateFormat import java.util.Calendar @@ -32,7 +32,7 @@ import java.util.Locale class ActivitiesFragment : Fragment() { private lateinit var binding: FragmentActivitiesBinding - private val hemoCubeViewModel: HemoCubeViewModel by activityViewModels() + private val trueHemeTestViewModel: TrueHemeTestViewModel by activityViewModels() private lateinit var adapter: OfflineUserListAdapter override fun onCreateView( @@ -46,12 +46,12 @@ class ActivitiesFragment : Fragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - hemoCubeViewModel.allPendingUserToUpload.observe(viewLifecycleOwner) { userData -> + trueHemeTestViewModel.allPendingUserToUpload.observe(viewLifecycleOwner) { userData -> if (userData.isNotEmpty()) { userData.forEach { user -> if((isBetween15And30Minutes(user.incubationTime) > 30 || isBetween15And30Minutes(user.incubationTime) < 0 ) && user.testStatus == false){ - hemoCubeViewModel.deleteByStatus() + trueHemeTestViewModel.deleteByStatus() } } diff --git a/app/src/main/java/com/example/hpostesting/presentation/dashboard/AppVersionTapManage.kt b/app/src/main/java/com/example/hpostesting/presentation/main_base/AppVersionTapManage.kt similarity index 85% rename from app/src/main/java/com/example/hpostesting/presentation/dashboard/AppVersionTapManage.kt rename to app/src/main/java/com/example/hpostesting/presentation/main_base/AppVersionTapManage.kt index 661c2f8..d97019f 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/dashboard/AppVersionTapManage.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/main_base/AppVersionTapManage.kt @@ -1,4 +1,4 @@ -package com.example.hpostesting.presentation.dashboard +package com.example.hpostesting.presentation.main_base class AppVersionTapManager { diff --git a/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/main_base/HomeFragment.kt similarity index 96% rename from app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt rename to app/src/main/java/com/example/hpostesting/presentation/main_base/HomeFragment.kt index ed6afd6..b15b72d 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/main_base/HomeFragment.kt @@ -11,7 +11,7 @@ * // from ShanMukha Innovations Pvt. Ltd. */ -package com.example.hpostesting.presentation.dashboard +package com.example.hpostesting.presentation.main_base import android.annotation.SuppressLint import android.app.AlertDialog @@ -30,8 +30,6 @@ import android.net.Uri import android.os.BatteryManager import android.os.Build import android.os.Bundle -import android.os.Environment -import android.provider.ContactsContract.Data import android.provider.Settings import android.util.Base64 import android.util.Log @@ -45,7 +43,6 @@ import androidx.core.content.FileProvider import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.lifecycle.lifecycleScope -import androidx.navigation.findNavController import androidx.navigation.fragment.findNavController import com.example.hpostesting.data.constant.Constants import com.example.hpostesting.data.constant.DataHolder @@ -62,7 +59,7 @@ import com.example.hpostesting.presentation.KitScanActivity import com.example.hpostesting.presentation.adapter.OfflineUserListAdapter import com.example.hpostesting.presentation.adapter.UserListAdapter import com.example.hpostesting.presentation.assurance.AssuranceControlsActivity -import com.example.hpostesting.presentation.hemocube.HemoCubeViewModel +import com.example.hpostesting.presentation.trueheme_test.TrueHemeTestViewModel import com.example.hpostesting.presentation.testRight.TestRightViewModel import com.example.hpostesting.presentation.utils.DeviceCommunicationHandler import com.example.hpostesting.presentation.utils.UsbServiceListener @@ -103,12 +100,12 @@ class HomeFragment : Fragment() { private var downloadId: Long = 0 private lateinit var binding: FragmentHomeBinding private val viewModel: TestRightViewModel by activityViewModels() - private val hemoCubeViewModel: HemoCubeViewModel by activityViewModels() + private val trueHemeTestViewModel: TrueHemeTestViewModel by activityViewModels() private lateinit var rvAdapter: UserListAdapter private var batLevel: Int = 0 // Initialize with a default value, or obtain the actual battery level private lateinit var adapter: OfflineUserListAdapter - private val homeViewModel: HemoCubeViewModel by activityViewModels() + private val homeViewModel: TrueHemeTestViewModel by activityViewModels() private var isTokenAvailable by Delegates.notNull() private var natsToken: String = "" private var deviceId: String = "" @@ -142,7 +139,7 @@ class HomeFragment : Fragment() { deleteIncompleteRegistrations(userData) } // getLocationIP() - hemoCubeViewModel.allUserData.observe(viewLifecycleOwner) { userData -> + trueHemeTestViewModel.allUserData.observe(viewLifecycleOwner) { userData -> deleteHemoCubeIncompleteRegistrations(userData) if (userData.isNotEmpty()) { val userList = mutableListOf() @@ -173,12 +170,12 @@ class HomeFragment : Fragment() { // } - hemoCubeViewModel.fireBaseBulkUpload.observe(viewLifecycleOwner) { result -> + trueHemeTestViewModel.fireBaseBulkUpload.observe(viewLifecycleOwner) { result -> if (result == "Success") { Toast.makeText( requireContext(), R.string.test_upload, Toast.LENGTH_SHORT ).show() - hemoCubeViewModel.fireBaseBulkUpload.postValue("Done") + trueHemeTestViewModel.fireBaseBulkUpload.postValue("Done") } if (result == "Error") { Toast.makeText(requireContext(), R.string.test_upload_failed, Toast.LENGTH_SHORT) @@ -196,7 +193,7 @@ class HomeFragment : Fragment() { // binding.uploadData.setOnClickListener { //// showUploadDialog(requireContext()) // } - hemoCubeViewModel.allUserData.observe(viewLifecycleOwner) { userData -> + trueHemeTestViewModel.allUserData.observe(viewLifecycleOwner) { userData -> // if (sharedPreference.getString(Constants.USER_ID, "").toString() == "ADMIN") { // // }else{ @@ -291,7 +288,7 @@ class HomeFragment : Fragment() { @RequiresApi(Build.VERSION_CODES.P) private fun checkNetworkStatus() { - hemoCubeViewModel.networkStatusLiveData.observe(viewLifecycleOwner) { isConnected -> + trueHemeTestViewModel.networkStatusLiveData.observe(viewLifecycleOwner) { isConnected -> // Toast.makeText(requireContext(),"connected"+isConnected+wasConnected, Toast.LENGTH_SHORT).show() if(isConnected){ binding.tvTitleNoInternet.text = "Please enter the user id and select blood group to start the test." @@ -381,10 +378,10 @@ class HomeFragment : Fragment() { }*/ if(Constants.MOLBIO_INTEGRATION){ - hemoCubeViewModel.sendDataToMolbio() + trueHemeTestViewModel.sendDataToMolbio() } if(Constants.FIREBASE_INTEGRATION) { - hemoCubeViewModel.sendDataToFirebase() + trueHemeTestViewModel.sendDataToFirebase() } } else { @@ -437,7 +434,7 @@ class HomeFragment : Fragment() { // hemoCubeViewModel.login(createLoginRequestData(userID, password)) //hemoCubeViewModel.startPeriodicCheckUpdate() }else{ - hemoCubeViewModel.checkUpdate(createCheckUpdateRequestData()) + trueHemeTestViewModel.checkUpdate(createCheckUpdateRequestData()) } //isTokenAvailable = true // hemoCubeViewModel.startPeriodicCheckUpdate() @@ -463,7 +460,7 @@ class HomeFragment : Fragment() { callLogin(userID, password) //hemoCubeViewModel.login(createLoginRequestData(userID, password)) }else{ - hemoCubeViewModel.checkUpdate(createCheckUpdateRequestData()) + trueHemeTestViewModel.checkUpdate(createCheckUpdateRequestData()) } } } else { @@ -474,7 +471,7 @@ class HomeFragment : Fragment() { ).show() } - hemoCubeViewModel.loginResponse.observe(viewLifecycleOwner) { response -> + trueHemeTestViewModel.loginResponse.observe(viewLifecycleOwner) { response -> when (response) { is Result.Success -> { updateTokens(response) @@ -505,14 +502,14 @@ class HomeFragment : Fragment() { } } - hemoCubeViewModel.resultUpload.observe(viewLifecycleOwner) { + trueHemeTestViewModel.resultUpload.observe(viewLifecycleOwner) { when (it) { is Result.Success -> { Log.d("success,", "uploded") it.data.data?.forEach { id -> id.rawData?.let { it1 -> - hemoCubeViewModel.updateMolbioFlag( + trueHemeTestViewModel.updateMolbioFlag( it1._id ) } @@ -539,7 +536,7 @@ class HomeFragment : Fragment() { } } - hemoCubeViewModel.uploadLogs.observe(viewLifecycleOwner) { response -> + trueHemeTestViewModel.uploadLogs.observe(viewLifecycleOwner) { response -> when (response) { is Result.Success -> { // Toast.makeText( @@ -569,7 +566,7 @@ class HomeFragment : Fragment() { } } - hemoCubeViewModel.checkUpdate.observe(viewLifecycleOwner) { response -> + trueHemeTestViewModel.checkUpdate.observe(viewLifecycleOwner) { response -> when (response) { is Result.Success -> { val updatedversion = response.data.data?.version.toString() @@ -595,7 +592,7 @@ class HomeFragment : Fragment() { Log.d("versionnow", currentversion.toString()) Log.d("versionnow", updatedversion.toString()) if (updatedversion > currentversion.toString()) { - hemoCubeViewModel.deviceUpdate(createDeviceUpdateRequestData()) + trueHemeTestViewModel.deviceUpdate(createDeviceUpdateRequestData()) Toast.makeText( activity, "new version ${response.data.data?.version} Available", @@ -631,7 +628,7 @@ class HomeFragment : Fragment() { } } - hemoCubeViewModel.downloadcertificate.observe(viewLifecycleOwner) { response -> + trueHemeTestViewModel.downloadcertificate.observe(viewLifecycleOwner) { response -> when (response) { is Result.Success -> { val url = response.data @@ -818,7 +815,7 @@ class HomeFragment : Fragment() { lifecycleScope.launch { // Add user first, ensuring it's done before fetching the user withContext(Dispatchers.IO) { - hemoCubeViewModel.addUser( + trueHemeTestViewModel.addUser( HemoCubeTestData( _id = userId, age = age, @@ -832,7 +829,7 @@ class HomeFragment : Fragment() { // Now fetch the user after the addUser operation is complete val user = withContext(Dispatchers.IO) { - hemoCubeViewModel.hemoCubeDao.getUserByID(userId) + trueHemeTestViewModel.hemoCubeDao.getUserByID(userId) } user?.let { @@ -954,7 +951,7 @@ class HomeFragment : Fragment() { rvAdapter = view?.let { UserListAdapter( requireContext(), - hemoCubeViewModel, + trueHemeTestViewModel, recyclerViewOptions, it, batLevel, @@ -1023,7 +1020,7 @@ class HomeFragment : Fragment() { rvAdapter = view?.let { UserListAdapter( requireContext(), - hemoCubeViewModel, + trueHemeTestViewModel, recyclerViewOptions, it, batLevel, @@ -1099,7 +1096,7 @@ class HomeFragment : Fragment() { } private fun checkUnprocessedCSVData() { - hemoCubeViewModel.allUserData.observe(viewLifecycleOwner) { userDataList -> + trueHemeTestViewModel.allUserData.observe(viewLifecycleOwner) { userDataList -> if (sharedPreference.getString(Constants.USER_ID, "").toString() == "ADMIN") { val downloadDataVisibility = if (userDataList.any { !it.isCSVCreated && it.testStatus == true }) View.VISIBLE else View.GONE @@ -1220,7 +1217,7 @@ class HomeFragment : Fragment() { private fun downloadLocalDBData(dialog: DialogInterface) { var csvDownloaded = false - hemoCubeViewModel.allUserData.observe(viewLifecycleOwner) { userDataList -> + trueHemeTestViewModel.allUserData.observe(viewLifecycleOwner) { userDataList -> // // userDataList.forEach { userData -> @@ -1259,7 +1256,7 @@ class HomeFragment : Fragment() { if (downloadList.isNotEmpty()) { // Call ViewModel function to create CSV with filtered data - hemoCubeViewModel.createCSV(downloadList, requireContext()) + trueHemeTestViewModel.createCSV(downloadList, requireContext()) csvDownloaded = true Toast.makeText( requireContext(), @@ -1291,19 +1288,19 @@ class HomeFragment : Fragment() { private fun deleteHemoCubeIncompleteRegistrations(userDataList: List) { userDataList.forEach { userData -> if (userData._id.isEmpty()) { - hemoCubeViewModel.deleteById(userData._id) + trueHemeTestViewModel.deleteById(userData._id) } } } override fun onDestroyView() { super.onDestroyView() - hemoCubeViewModel.networkStatusLiveData.removeObservers(viewLifecycleOwner) - hemoCubeViewModel.allKitTestData.removeObservers(viewLifecycleOwner) - hemoCubeViewModel.allUserData.removeObservers(viewLifecycleOwner) - hemoCubeViewModel.uploadLogs.removeObservers(viewLifecycleOwner) - hemoCubeViewModel.checkUpdate.removeObservers(viewLifecycleOwner) - hemoCubeViewModel.downloadcertificate.removeObservers(viewLifecycleOwner) + trueHemeTestViewModel.networkStatusLiveData.removeObservers(viewLifecycleOwner) + trueHemeTestViewModel.allKitTestData.removeObservers(viewLifecycleOwner) + trueHemeTestViewModel.allUserData.removeObservers(viewLifecycleOwner) + trueHemeTestViewModel.uploadLogs.removeObservers(viewLifecycleOwner) + trueHemeTestViewModel.checkUpdate.removeObservers(viewLifecycleOwner) + trueHemeTestViewModel.downloadcertificate.removeObservers(viewLifecycleOwner) } private fun downloadCsv() { @@ -1679,10 +1676,10 @@ class HomeFragment : Fragment() { apply() } } - hemoCubeViewModel.login(createLoginRequestData(userID, password)) + trueHemeTestViewModel.login(createLoginRequestData(userID, password)) } }else{ - hemoCubeViewModel.login(createLoginRequestData(userID, password)) + trueHemeTestViewModel.login(createLoginRequestData(userID, password)) } } private fun timeDifference(createdAt: String): Long { diff --git a/app/src/main/java/com/example/hpostesting/presentation/dashboard/DashboardActivity.kt b/app/src/main/java/com/example/hpostesting/presentation/main_base/MainBaseActivity.kt similarity index 62% rename from app/src/main/java/com/example/hpostesting/presentation/dashboard/DashboardActivity.kt rename to app/src/main/java/com/example/hpostesting/presentation/main_base/MainBaseActivity.kt index 0ed1103..a9949ef 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/dashboard/DashboardActivity.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/main_base/MainBaseActivity.kt @@ -11,7 +11,7 @@ * // from ShanMukha Innovations Pvt. Ltd. */ -package com.example.hpostesting.presentation.dashboard +package com.example.hpostesting.presentation.main_base import android.annotation.SuppressLint import android.content.Context @@ -23,7 +23,6 @@ import android.os.Build import android.os.Bundle import android.util.Log import android.view.Menu -import android.widget.Toast import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity import androidx.core.content.FileProvider @@ -38,14 +37,10 @@ import com.example.hpostesting.data.constant.LanguageManager import com.example.hpostesting.data.model.updates.DeviceUpdateRequest import com.example.hpostesting.data.repository.DatabaseRepository import com.example.hpostesting.firebase.FirebaseManager -import com.example.hpostesting.presentation.hemocube.HemoCubeViewModel +import com.example.hpostesting.presentation.trueheme_test.TrueHemeTestViewModel import com.example.hpostesting.presentation.jig.JigActivity import com.example.hpostesting.presentation.utils.NatsManager import com.google.android.material.navigation.NavigationView -import com.google.firebase.ktx.Firebase -import com.google.firebase.remoteconfig.FirebaseRemoteConfig -import com.google.firebase.remoteconfig.ktx.remoteConfig -import com.google.firebase.remoteconfig.ktx.remoteConfigSettings import dagger.hilt.android.AndroidEntryPoint import `in`.sminnovations.hpostesting.BuildConfig import `in`.sminnovations.hpostesting.R @@ -67,7 +62,6 @@ open interface IDataCollector: NatsMessageCallback { class DashboardActivity : AppCompatActivity(), IDataCollector { @Inject lateinit var databaseRepository: DatabaseRepository - private val remoteConfig: FirebaseRemoteConfig = Firebase.remoteConfig val TAG = "DashboardActivity" private var isRegistered = false private lateinit var appBarConfiguration: AppBarConfiguration @@ -78,7 +72,7 @@ class DashboardActivity : AppCompatActivity(), IDataCollector { private var downloadId: Long = 0 // TODO: Remove hemocube viewmodel - private val hemocubeViewModel: HemoCubeViewModel by viewModels() + private val hemocubeViewModel: TrueHemeTestViewModel by viewModels() override fun attachBaseContext(newBase: Context?) { val languageCode = LanguageManager.getSavedLanguage(newBase!!) @@ -122,90 +116,6 @@ class DashboardActivity : AppCompatActivity(), IDataCollector { nats.sub("server.hpos.${deviceId}.ping") nats.pub("server.hpos.${deviceId}.ping", "THIS IS A TEST MSG") - val configSettings = remoteConfigSettings { - minimumFetchIntervalInSeconds = 3600 - } - remoteConfig.setConfigSettingsAsync(configSettings) - remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults) - - remoteConfig.fetchAndActivate() - .addOnCompleteListener(this) { task -> - if (task.isSuccessful) { - val normalMin2mm = remoteConfig.getDouble("normalMin2mm") - val normalMax2mm = remoteConfig.getDouble("normalMax2mm") - val negativeBorderlineMin2mm = remoteConfig.getDouble("negativeBorderlineMin2mm") - val negativeBorderlineMax2mm = remoteConfig.getDouble("negativeBorderlineMax2mm") - val positiveForSickleCellMin2mm = remoteConfig.getDouble("positiveForSickleCellMin2mm") - val positiveForSickleCellMax2mm = remoteConfig.getDouble("positiveForSickleCellMax2mm") - val sickleCellTraitMin2mm = remoteConfig.getDouble("sickleCellTraitMin2mm") - val sickleCellTraitMax2mm = remoteConfig.getDouble("sickleCellTraitMax2mm") - val sickleCellDiseaseMin2mm = remoteConfig.getDouble("sickleCellDiseaseMin2mm") - val sickleCellDiseaseMax2mm = remoteConfig.getDouble("sickleCellDiseaseMax2mm") - val positiveBoderLine2mm1 = remoteConfig.getDouble("positiveBoderLine2mm1") - val positiveBoderLine2mm2 = remoteConfig.getDouble("positiveBoderLine2mm2") - val negativeBoderLine2mm1 = remoteConfig.getDouble("negativeBoderLine2mm1") - val negativeBoderLine2mm2 = remoteConfig.getDouble("negativeBoderLine2mm2") - - val normalMin10mm = remoteConfig.getDouble("normalMin10mm") - val normalMax10mm = remoteConfig.getDouble("normalMax10mm") - val negativeBorderlineMin10mm = remoteConfig.getDouble("negativeBorderlineMin10mm") - val negativeBorderlineMax10mm = remoteConfig.getDouble("negativeBorderlineMax10mm") - val positiveForSickleCellMin10mm = remoteConfig.getDouble("positiveForSickleCellMin10mm") - val positiveForSickleCellMax10mm = remoteConfig.getDouble("positiveForSickleCellMax10mm") - val sickleCellTraitMin10mm = remoteConfig.getDouble("sickleCellTraitMin10mm") - val sickleCellTraitMax10mm = remoteConfig.getDouble("sickleCellTraitMax10mm") - val sickleCellDiseaseMin10mm = remoteConfig.getDouble("sickleCellDiseaseMin10mm") - val sickleCellDiseaseMax10mm = remoteConfig.getDouble("sickleCellDiseaseMax10mm") - val positiveBoderLine10mm1 = remoteConfig.getDouble("positiveBoderLine10mm1") - val positiveBoderLine10mm2 = remoteConfig.getDouble("positiveBoderLine10mm2") - val negativeBoderLine10mm1 = remoteConfig.getDouble("negativeBoderLine10mm1") - val negativeBoderLine10mm2 = remoteConfig.getDouble("negativeBoderLine10mm2") - - val bufferMinLed1 = remoteConfig.getDouble("bufferMinLed1") - val bufferMaxLed1 = remoteConfig.getDouble("bufferMaxLed1") - val bufferMinLed2 = remoteConfig.getDouble("bufferMinLed2") - val bufferMaxLed2 = remoteConfig.getDouble("bufferMaxLed2") - with(sharedPreferences.edit()) { - putString("bufferMinLed1", bufferMinLed1.toString()) - putString("bufferMaxLed1", bufferMaxLed1.toString()) - putString("bufferMinLed2", bufferMinLed2.toString()) - putString("bufferMaxLed2", bufferMaxLed2.toString())//buffer - putString("normalMin2mm", normalMin2mm.toString())//2mm - putString("normalMax2mm", normalMax2mm.toString()) - putString("negativeBorderlineMin2mm", negativeBorderlineMin2mm.toString()) - putString("negativeBorderlineMax2mm", negativeBorderlineMax2mm.toString()) - putString("positiveForSickleCellMin2mm", positiveForSickleCellMin2mm.toString()) - putString("positiveForSickleCellMax2mm", positiveForSickleCellMax2mm.toString()) - putString("sickleCellTraitMin2mm", sickleCellTraitMin2mm.toString()) - putString("sickleCellTraitMax2mm", sickleCellTraitMax2mm.toString()) - putString("sickleCellDiseaseMin2mm", sickleCellDiseaseMin2mm.toString()) - putString("sickleCellDiseaseMax2mm", sickleCellDiseaseMax2mm.toString()) - putString("positiveBoderLine2mm1", positiveBoderLine2mm1.toString()) - putString("positiveBoderLine2mm2", positiveBoderLine2mm2.toString()) - putString("negativeBoderLine2mm1", negativeBoderLine2mm1.toString()) - putString("negativeBoderLine2mm2", negativeBoderLine2mm2.toString())//2mm - putString("normalMin10mm", normalMin10mm.toString())//10mm - putString("normalMax10mm", normalMax10mm.toString()) - putString("negativeBorderlineMin10mm", negativeBorderlineMin10mm.toString()) - putString("negativeBorderlineMax10mm", negativeBorderlineMax10mm.toString()) - putString("positiveForSickleCellMin10mm", positiveForSickleCellMin10mm.toString()) - putString("positiveForSickleCellMax10mm", positiveForSickleCellMax10mm.toString()) - putString("sickleCellTraitMin10mm", sickleCellTraitMin10mm.toString()) - putString("sickleCellTraitMax10mm", sickleCellTraitMax10mm.toString()) - putString("sickleCellDiseaseMin10mm", sickleCellDiseaseMin10mm.toString()) - putString("sickleCellDiseaseMax10mm", sickleCellDiseaseMax10mm.toString()) - putString("positiveBoderLine10mm1", positiveBoderLine10mm1.toString()) - putString("positiveBoderLine10mm2", positiveBoderLine10mm2.toString()) - putString("negativeBoderLine10mm1", negativeBoderLine10mm1.toString()) - putString("negativeBoderLine10mm2", negativeBoderLine10mm2.toString())//10mm - apply() - } - Log.d(TAG, "Config params updated") - } else { - Log.d(TAG, "Config params Fetch failed") - } - } - hemocubeViewModel.deviceUpdate.observe(this) { Log.d("DashboardLogs",it.toString()) diff --git a/app/src/main/java/com/example/hpostesting/presentation/dashboard/GalleryFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/main_base/PanelFragment.kt similarity index 95% rename from app/src/main/java/com/example/hpostesting/presentation/dashboard/GalleryFragment.kt rename to app/src/main/java/com/example/hpostesting/presentation/main_base/PanelFragment.kt index a4dd620..cafaedb 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/dashboard/GalleryFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/main_base/PanelFragment.kt @@ -11,7 +11,7 @@ * // from ShanMukha Innovations Pvt. Ltd. */ -package com.example.hpostesting.presentation.dashboard +package com.example.hpostesting.presentation.main_base import android.annotation.SuppressLint import android.content.ComponentName @@ -28,16 +28,16 @@ import com.example.hpostesting.data.constant.Constants import com.example.hpostesting.presentation.autodac.AutoDacActivity import com.example.hpostesting.presentation.buffercheck.HemocubeBufferCheckActivity import com.example.hpostesting.presentation.calibration.CalibrationActivity -import com.example.hpostesting.presentation.dashboard.ui.PasswordResetActivity +import com.example.hpostesting.presentation.main_base.ui.PasswordResetActivity import com.example.hpostesting.presentation.deviceinfo.DeviceActivity import com.example.hpostesting.presentation.deviceprovision.DeviceProvisionActivity import com.example.hpostesting.presentation.diagnostics.DiagnosticsActivity -import com.example.hpostesting.presentation.hemocube.HemoCubeViewModel +import com.example.hpostesting.presentation.trueheme_test.TrueHemeTestViewModel import com.example.hpostesting.presentation.usb_teminal.UsbTerminalActivity import `in`.sminnovations.hpostesting.databinding.FragmentGalleryBinding -class GalleryFragment : Fragment() { +class PanelFragment : Fragment() { private var _binding: FragmentGalleryBinding? = null private lateinit var sharedPreferences: SharedPreferences @@ -49,7 +49,7 @@ class GalleryFragment : Fragment() { private lateinit var sharedPreference: SharedPreferences - private val hemoCubeViewModel: HemoCubeViewModel by activityViewModels() + private val trueHemeTestViewModel: TrueHemeTestViewModel by activityViewModels() @SuppressLint("SetTextI18n") override fun onCreateView( diff --git a/app/src/main/java/com/example/hpostesting/presentation/dashboard/SlideshowFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/main_base/SettingsFragment.kt similarity index 98% rename from app/src/main/java/com/example/hpostesting/presentation/dashboard/SlideshowFragment.kt rename to app/src/main/java/com/example/hpostesting/presentation/main_base/SettingsFragment.kt index 6c5eebe..2d1c09f 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/dashboard/SlideshowFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/main_base/SettingsFragment.kt @@ -11,7 +11,7 @@ * // from ShanMukha Innovations Pvt. Ltd. */ -package com.example.hpostesting.presentation.dashboard +package com.example.hpostesting.presentation.main_base import android.app.AlertDialog import android.content.Context @@ -60,8 +60,6 @@ class SlideshowFragment : Fragment() { binding.nameEditText.setText(sharedPreferences.getString(Constants.LABNAME, "")) selectedItem = sharedPreferences.getString(Constants.CUVETTE_SIZE, "10mm").toString() - val time = sharedPreferences.getString(Constants.LAST_UPDATED, "NA").toString() - binding.lastUpdated.text = "Last updated config: $time" binding.btnGo.setOnClickListener { var labname = binding.nameEditText.text.toString() DataHolder.hemoCubeTestData?.apply { diff --git a/app/src/main/java/com/example/hpostesting/presentation/dashboard/UpdateValuesActivity.kt b/app/src/main/java/com/example/hpostesting/presentation/main_base/UpdateValuesActivity.kt similarity index 89% rename from app/src/main/java/com/example/hpostesting/presentation/dashboard/UpdateValuesActivity.kt rename to app/src/main/java/com/example/hpostesting/presentation/main_base/UpdateValuesActivity.kt index fe961ab..8b6f5fb 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/dashboard/UpdateValuesActivity.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/main_base/UpdateValuesActivity.kt @@ -11,18 +11,13 @@ * // from ShanMukha Innovations Pvt. Ltd. */ -package com.example.hpostesting.presentation.dashboard +package com.example.hpostesting.presentation.main_base import android.content.Context import android.content.SharedPreferences import android.os.Bundle -import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity -import androidx.core.view.ViewCompat -import androidx.core.view.WindowInsetsCompat import com.example.hpostesting.data.constant.Constants -import `in`.sminnovations.hpostesting.R -import `in`.sminnovations.hpostesting.databinding.ActivityDashboardBinding import `in`.sminnovations.hpostesting.databinding.ActivityUpdateValuesBinding class UpdateValuesActivity : AppCompatActivity() { diff --git a/app/src/main/java/com/example/hpostesting/presentation/dashboard/ui/LoginFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/main_base/ui/LoginFragment.kt similarity index 99% rename from app/src/main/java/com/example/hpostesting/presentation/dashboard/ui/LoginFragment.kt rename to app/src/main/java/com/example/hpostesting/presentation/main_base/ui/LoginFragment.kt index 8a4b10a..7cd09f5 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/dashboard/ui/LoginFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/main_base/ui/LoginFragment.kt @@ -11,7 +11,7 @@ * // from ShanMukha Innovations Pvt. Ltd. */ -package com.example.hpostesting.presentation.dashboard.ui +package com.example.hpostesting.presentation.main_base.ui import com.example.hpostesting.util.SecureStorage import android.accounts.Account diff --git a/app/src/main/java/com/example/hpostesting/presentation/dashboard/ui/PasswordResetActivity.kt b/app/src/main/java/com/example/hpostesting/presentation/main_base/ui/PasswordResetActivity.kt similarity index 96% rename from app/src/main/java/com/example/hpostesting/presentation/dashboard/ui/PasswordResetActivity.kt rename to app/src/main/java/com/example/hpostesting/presentation/main_base/ui/PasswordResetActivity.kt index d7f65b0..277d661 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/dashboard/ui/PasswordResetActivity.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/main_base/ui/PasswordResetActivity.kt @@ -1,4 +1,4 @@ -package com.example.hpostesting.presentation.dashboard.ui +package com.example.hpostesting.presentation.main_base.ui import com.example.hpostesting.util.SecureStorage import android.os.Bundle diff --git a/app/src/main/java/com/example/hpostesting/presentation/testRight/TestRightResults.kt b/app/src/main/java/com/example/hpostesting/presentation/testRight/TestRightResults.kt index c151881..d833196 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/testRight/TestRightResults.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/testRight/TestRightResults.kt @@ -13,7 +13,7 @@ package com.example.hpostesting.presentation.testRight -import com.example.hpostesting.presentation.dashboard.DashboardActivity +import com.example.hpostesting.presentation.main_base.DashboardActivity import android.content.Context import android.content.Intent import android.content.SharedPreferences diff --git a/app/src/main/java/com/example/hpostesting/presentation/trueheme/TrueHemeActivity.kt b/app/src/main/java/com/example/hpostesting/presentation/trueheme/TrueHemeActivity.kt index 44055c2..4e0c831 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/trueheme/TrueHemeActivity.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/trueheme/TrueHemeActivity.kt @@ -36,8 +36,8 @@ import androidx.core.view.get import com.example.hpostesting.data.constant.DataHolder import com.example.hpostesting.data.constant.Constants import com.example.hpostesting.data.constant.LanguageManager -import com.example.hpostesting.presentation.hemocube.HemoCubeFragment -import com.example.hpostesting.presentation.hemocube.HemoCubeViewModel +import com.example.hpostesting.presentation.trueheme_test.TrueHemeTestFragment +import com.example.hpostesting.presentation.trueheme_test.TrueHemeTestViewModel import com.example.hpostesting.util.UsbService import com.hoho.android.usbserial.driver.UsbSerialDriver import com.hoho.android.usbserial.driver.UsbSerialProber @@ -48,7 +48,7 @@ import `in`.sminnovations.hpostesting.databinding.ActivityHemocubeBinding @AndroidEntryPoint class TrueHemeActivity : AppCompatActivity() { private lateinit var binding: ActivityHemocubeBinding - private val viewModel by viewModels() + private val viewModel by viewModels() private var myMenu: Menu? = null private lateinit var mDriver: UsbSerialDriver @@ -177,14 +177,14 @@ class TrueHemeActivity : AppCompatActivity() { private fun moveToNext() { if (supportFragmentManager.isDestroyed) return - supportFragmentManager.beginTransaction().replace(binding.fghemocube.id, HemoCubeFragment()) + supportFragmentManager.beginTransaction().replace(binding.fghemocube.id, TrueHemeTestFragment()) .commit() } override fun onBackPressed() { val fragment = supportFragmentManager.findFragmentById(R.id.fghemocube) - if (fragment is HemoCubeFragment) { + if (fragment is TrueHemeTestFragment) { fragment.handleBackButtonPress() } else { super.onBackPressed() diff --git a/app/src/main/java/com/example/hpostesting/presentation/trueheme/TrueHemeFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/trueheme/TrueHemeFragment.kt index c0bca53..00e2591 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/trueheme/TrueHemeFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/trueheme/TrueHemeFragment.kt @@ -36,8 +36,8 @@ import com.example.hpostesting.data.model.TestState import com.example.hpostesting.data.model.patient.DeviceData import com.example.hpostesting.data.model.patient.toHemoCubeTestData import com.example.hpostesting.presentation.utils.UsbServiceListener -import com.example.hpostesting.presentation.dashboard.DashboardActivity -import com.example.hpostesting.presentation.hemocube.HemocubeActivity +import com.example.hpostesting.presentation.main_base.DashboardActivity +import com.example.hpostesting.presentation.trueheme_test.TrueHemeTestActivity import com.example.hpostesting.presentation.utils.MyDialogListener import com.example.hpostesting.presentation.utils.UIUtils import com.google.firebase.crashlytics.ktx.crashlytics @@ -336,7 +336,7 @@ class TrueHemeFragment : Fragment() { startListening.postValue(true) try { - (activity as HemocubeActivity).mService.listenToHemoCube(object : UsbServiceListener { + (activity as TrueHemeTestActivity).mService.listenToHemoCube(object : UsbServiceListener { override fun onUsbRead(data: ByteArray?) { data?.let { val stringData = String(it) @@ -357,7 +357,7 @@ class TrueHemeFragment : Fragment() { private fun getDeviceInfo() { hemoCubeViewModel.progressBar.postValue(true) - (activity as HemocubeActivity).mService.sendAndListenToHemoCube( + (activity as TrueHemeTestActivity).mService.sendAndListenToHemoCube( HemoCubeCommands.DEVICE_CONFIGURATION_COMMAND, object : UsbServiceListener { override fun onUsbRead(data: ByteArray?) { @@ -1067,7 +1067,7 @@ class TrueHemeFragment : Fragment() { binding.btnPlacebuffer.visibility = View.GONE } - (activity as HemocubeActivity).mService.sendAndListenToHemoCube( + (activity as TrueHemeTestActivity).mService.sendAndListenToHemoCube( HemoCubeCommands.START_BUFFER_COMMAND, object : UsbServiceListener { override fun onUsbRead(data: ByteArray?) {} @@ -1081,7 +1081,7 @@ class TrueHemeFragment : Fragment() { private fun startSampleProcess() { hemoCubeViewModel.progressBar.postValue(true) - (activity as HemocubeActivity).mService.sendAndListenToHemoCube( + (activity as TrueHemeTestActivity).mService.sendAndListenToHemoCube( HemoCubeCommands.START_SAMPLE, object : UsbServiceListener { override fun onUsbRead(data: ByteArray?) {} @@ -1095,7 +1095,7 @@ class TrueHemeFragment : Fragment() { private fun sendFirstGainCommand() { hemoCubeViewModel.progressBar.postValue(true) - (activity as HemocubeActivity).mService.sendAndListenToHemoCube( + (activity as TrueHemeTestActivity).mService.sendAndListenToHemoCube( HemoCubeCommands.FIRST_GAIN_COMMAND, object : UsbServiceListener { override fun onUsbRead(data: ByteArray?) {} @@ -1109,7 +1109,7 @@ class TrueHemeFragment : Fragment() { private fun sendSecondGainCommand() { hemoCubeViewModel.progressBar.postValue(true) - (activity as HemocubeActivity).mService.sendAndListenToHemoCube( + (activity as TrueHemeTestActivity).mService.sendAndListenToHemoCube( HemoCubeCommands.SECOND_GAIN_COMMAND, object : UsbServiceListener { override fun onUsbRead(data: ByteArray?) {} @@ -1123,7 +1123,7 @@ class TrueHemeFragment : Fragment() { private fun sendThirdGainCommand() { hemoCubeViewModel.progressBar.postValue(true) - (activity as HemocubeActivity).mService.sendAndListenToHemoCube( + (activity as TrueHemeTestActivity).mService.sendAndListenToHemoCube( HemoCubeCommands.THIRD_GAIN_COMMAND, object : UsbServiceListener { override fun onUsbRead(data: ByteArray?) {} @@ -1137,7 +1137,7 @@ class TrueHemeFragment : Fragment() { private fun sendForthGainCommand() { hemoCubeViewModel.progressBar.postValue(true) - (activity as HemocubeActivity).mService.sendAndListenToHemoCube( + (activity as TrueHemeTestActivity).mService.sendAndListenToHemoCube( HemoCubeCommands.FORTH_GAIN_COMMAND, object : UsbServiceListener { override fun onUsbRead(data: ByteArray?) {} @@ -1151,7 +1151,7 @@ class TrueHemeFragment : Fragment() { private fun fetchResult() { hemoCubeViewModel.progressBar.postValue(true) - (activity as HemocubeActivity).mService.sendAndListenToHemoCube( + (activity as TrueHemeTestActivity).mService.sendAndListenToHemoCube( HemoCubeCommands.PRINT_COMMAND, object : UsbServiceListener { override fun onUsbRead(data: ByteArray?) {} @@ -1170,7 +1170,7 @@ class TrueHemeFragment : Fragment() { private fun reconnect() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - (activity as HemocubeActivity).reconnectDevice() + (activity as TrueHemeTestActivity).reconnectDevice() } } } \ No newline at end of file diff --git a/app/src/main/java/com/example/hpostesting/presentation/hemocube/DigitalCardActivity.kt b/app/src/main/java/com/example/hpostesting/presentation/trueheme_test/DigitalCardActivity.kt similarity index 96% rename from app/src/main/java/com/example/hpostesting/presentation/hemocube/DigitalCardActivity.kt rename to app/src/main/java/com/example/hpostesting/presentation/trueheme_test/DigitalCardActivity.kt index 21f214d..cc8ccec 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/hemocube/DigitalCardActivity.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/trueheme_test/DigitalCardActivity.kt @@ -11,7 +11,7 @@ * // from ShanMukha Innovations Pvt. Ltd. */ -package com.example.hpostesting.presentation.hemocube +package com.example.hpostesting.presentation.trueheme_test import android.content.Context import android.os.Bundle diff --git a/app/src/main/java/com/example/hpostesting/presentation/hemocube/DigitalCardFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/trueheme_test/DigitalCardFragment.kt similarity index 96% rename from app/src/main/java/com/example/hpostesting/presentation/hemocube/DigitalCardFragment.kt rename to app/src/main/java/com/example/hpostesting/presentation/trueheme_test/DigitalCardFragment.kt index 0a0dacd..4972a49 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/hemocube/DigitalCardFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/trueheme_test/DigitalCardFragment.kt @@ -11,7 +11,7 @@ * // from ShanMukha Innovations Pvt. Ltd. */ -package com.example.hpostesting.presentation.hemocube +package com.example.hpostesting.presentation.trueheme_test import android.annotation.SuppressLint import android.content.Context @@ -33,7 +33,7 @@ import java.util.Locale class DigitalCardFragment : Fragment() { private lateinit var binding: FragmentDigitalCardBinding - private val hemoCubeViewModel: HemoCubeViewModel by activityViewModels() + private val trueHemeTestViewModel: TrueHemeTestViewModel by activityViewModels() private lateinit var sharedPreferences: SharedPreferences private val testDetails = DataHolder.selectedTest?.toHemoCubeTestData() diff --git a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemocubeActivity.kt b/app/src/main/java/com/example/hpostesting/presentation/trueheme_test/TrueHemeTestActivity.kt similarity index 52% rename from app/src/main/java/com/example/hpostesting/presentation/hemocube/HemocubeActivity.kt rename to app/src/main/java/com/example/hpostesting/presentation/trueheme_test/TrueHemeTestActivity.kt index 8cde0d2..146a874 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemocubeActivity.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/trueheme_test/TrueHemeTestActivity.kt @@ -11,7 +11,7 @@ * // from ShanMukha Innovations Pvt. Ltd. */ -package com.example.hpostesting.presentation.hemocube +package com.example.hpostesting.presentation.trueheme_test import android.annotation.SuppressLint import android.app.PendingIntent @@ -25,7 +25,6 @@ import android.content.SharedPreferences import android.hardware.usb.UsbDevice import android.hardware.usb.UsbDeviceConnection import android.hardware.usb.UsbManager -import android.icu.text.SimpleDateFormat import android.os.Build import android.os.Bundle import android.os.IBinder @@ -37,27 +36,20 @@ import androidx.annotation.RequiresApi import androidx.appcompat.app.AppCompatActivity import androidx.core.content.ContextCompat import androidx.core.view.get -import com.example.hpostesting.data.constant.DataHolder import com.example.hpostesting.data.constant.Constants +import com.example.hpostesting.data.constant.DataHolder import com.example.hpostesting.data.constant.LanguageManager import com.example.hpostesting.util.UsbService -import com.google.firebase.ktx.Firebase -import com.google.firebase.remoteconfig.FirebaseRemoteConfig -import com.google.firebase.remoteconfig.ktx.remoteConfig -import com.google.firebase.remoteconfig.ktx.remoteConfigSettings import com.hoho.android.usbserial.driver.UsbSerialDriver import com.hoho.android.usbserial.driver.UsbSerialProber import dagger.hilt.android.AndroidEntryPoint import `in`.sminnovations.hpostesting.R import `in`.sminnovations.hpostesting.databinding.ActivityHemocubeBinding -import java.util.Calendar -import java.util.Locale @AndroidEntryPoint -open class HemocubeActivity : AppCompatActivity() { - private val remoteConfig: FirebaseRemoteConfig = Firebase.remoteConfig +open class TrueHemeTestActivity : AppCompatActivity() { private lateinit var binding: ActivityHemocubeBinding - private val viewModel by viewModels() + private val viewModel by viewModels() private var myMenu: Menu? = null lateinit var sharedPreferences: SharedPreferences private lateinit var mDriver: UsbSerialDriver @@ -117,95 +109,6 @@ open class HemocubeActivity : AppCompatActivity() { supportActionBar?.setDisplayHomeAsUpEnabled(true) setupListener() connectUsb(false) - val configSettings = remoteConfigSettings { - minimumFetchIntervalInSeconds = 10//3600 - } - sharedPreferences = this.getSharedPreferences("HEMOCUBE", Context.MODE_PRIVATE) - remoteConfig.setConfigSettingsAsync(configSettings) - remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults) - - remoteConfig.fetchAndActivate() - .addOnCompleteListener(this) { task -> - if (task.isSuccessful) { - val normalMin2mm = remoteConfig.getDouble("normalMin2mm") - val normalMax2mm = remoteConfig.getDouble("normalMax2mm") - val negativeBorderlineMin2mm = remoteConfig.getDouble("negativeBorderlineMin2mm") - val negativeBorderlineMax2mm = remoteConfig.getDouble("negativeBorderlineMax2mm") - val positiveForSickleCellMin2mm = remoteConfig.getDouble("positiveForSickleCellMin2mm") - val positiveForSickleCellMax2mm = remoteConfig.getDouble("positiveForSickleCellMax2mm") - val sickleCellTraitMin2mm = remoteConfig.getDouble("sickleCellTraitMin2mm") - val sickleCellTraitMax2mm = remoteConfig.getDouble("sickleCellTraitMax2mm") - val sickleCellDiseaseMin2mm = remoteConfig.getDouble("sickleCellDiseaseMin2mm") - val sickleCellDiseaseMax2mm = remoteConfig.getDouble("sickleCellDiseaseMax2mm") - val positiveBoderLine2mm1 = remoteConfig.getDouble("positiveBoderLine2mm1") - val positiveBoderLine2mm2 = remoteConfig.getDouble("positiveBoderLine2mm2") - val negativeBoderLine2mm1 = remoteConfig.getDouble("negativeBoderLine2mm1") - val negativeBoderLine2mm2 = remoteConfig.getDouble("negativeBoderLine2mm2") - - val normalMin10mm = remoteConfig.getDouble("normalMin10mm") - val normalMax10mm = remoteConfig.getDouble("normalMax10mm") - val negativeBorderlineMin10mm = remoteConfig.getDouble("negativeBorderlineMin10mm") - val negativeBorderlineMax10mm = remoteConfig.getDouble("negativeBorderlineMax10mm") - val positiveForSickleCellMin10mm = remoteConfig.getDouble("positiveForSickleCellMin10mm") - val positiveForSickleCellMax10mm = remoteConfig.getDouble("positiveForSickleCellMax10mm") - val sickleCellTraitMin10mm = remoteConfig.getDouble("sickleCellTraitMin10mm") - val sickleCellTraitMax10mm = remoteConfig.getDouble("sickleCellTraitMax10mm") - val sickleCellDiseaseMin10mm = remoteConfig.getDouble("sickleCellDiseaseMin10mm") - val sickleCellDiseaseMax10mm = remoteConfig.getDouble("sickleCellDiseaseMax10mm") - val positiveBoderLine10mm1 = remoteConfig.getDouble("positiveBoderLine10mm1") - val positiveBoderLine10mm2 = remoteConfig.getDouble("positiveBoderLine10mm2") - val negativeBoderLine10mm1 = remoteConfig.getDouble("negativeBoderLine10mm1") - val negativeBoderLine10mm2 = remoteConfig.getDouble("negativeBoderLine10mm2") - - val bufferMinLed1 = remoteConfig.getDouble("bufferMinLed1") - val bufferMaxLed1 = remoteConfig.getDouble("bufferMaxLed1") - val bufferMinLed2 = remoteConfig.getDouble("bufferMinLed2") - val bufferMaxLed2 = remoteConfig.getDouble("bufferMaxLed2") - val time = SimpleDateFormat( - "yyyy-MM-dd HH:mm:ss", Locale.getDefault() - ).format(Calendar.getInstance().time).toString() - with(sharedPreferences.edit()) { - putString(Constants.LAST_UPDATED, time) - putString("bufferMinLed1", bufferMinLed1.toString()) - putString("bufferMaxLed1", bufferMaxLed1.toString()) - putString("bufferMinLed2", bufferMinLed2.toString()) - putString("bufferMaxLed2", bufferMaxLed2.toString())//buffer - putString("normalMin2mm", normalMin2mm.toString())//2mm - putString("normalMax2mm", normalMax2mm.toString()) - putString("negativeBorderlineMin2mm", negativeBorderlineMin2mm.toString()) - putString("negativeBorderlineMax2mm", negativeBorderlineMax2mm.toString()) - putString("positiveForSickleCellMin2mm", positiveForSickleCellMin2mm.toString()) - putString("positiveForSickleCellMax2mm", positiveForSickleCellMax2mm.toString()) - putString("sickleCellTraitMin2mm", sickleCellTraitMin2mm.toString()) - putString("sickleCellTraitMax2mm", sickleCellTraitMax2mm.toString()) - putString("sickleCellDiseaseMin2mm", sickleCellDiseaseMin2mm.toString()) - putString("sickleCellDiseaseMax2mm", sickleCellDiseaseMax2mm.toString()) - putString("positiveBoderLine2mm1", positiveBoderLine2mm1.toString()) - putString("positiveBoderLine2mm2", positiveBoderLine2mm2.toString()) - putString("negativeBoderLine2mm1", negativeBoderLine2mm1.toString()) - putString("negativeBoderLine2mm2", negativeBoderLine2mm2.toString())//2mm - putString("normalMin10mm", normalMin10mm.toString())//10mm - putString("normalMax10mm", normalMax10mm.toString()) - putString("negativeBorderlineMin10mm", negativeBorderlineMin10mm.toString()) - putString("negativeBorderlineMax10mm", negativeBorderlineMax10mm.toString()) - putString("positiveForSickleCellMin10mm", positiveForSickleCellMin10mm.toString()) - putString("positiveForSickleCellMax10mm", positiveForSickleCellMax10mm.toString()) - putString("sickleCellTraitMin10mm", sickleCellTraitMin10mm.toString()) - putString("sickleCellTraitMax10mm", sickleCellTraitMax10mm.toString()) - putString("sickleCellDiseaseMin10mm", sickleCellDiseaseMin10mm.toString()) - putString("sickleCellDiseaseMax10mm", sickleCellDiseaseMax10mm.toString()) - putString("positiveBoderLine10mm1", positiveBoderLine10mm1.toString()) - putString("positiveBoderLine10mm2", positiveBoderLine10mm2.toString()) - putString("negativeBoderLine10mm1", negativeBoderLine10mm1.toString()) - putString("negativeBoderLine10mm2", negativeBoderLine10mm2.toString())//10mm - apply() - } - Toast.makeText(this@HemocubeActivity, "Config params updated", Toast.LENGTH_SHORT).show() - Log.d(TAG, "Config params updated") - } else { - Log.d(TAG, "Config params Fetch failed") - } - } } private fun setupListener() { @@ -289,7 +192,7 @@ open class HemocubeActivity : AppCompatActivity() { private fun moveToNext() { if (supportFragmentManager.isDestroyed) return - supportFragmentManager.beginTransaction().replace(binding.fghemocube.id, HemoCubeFragment()) + supportFragmentManager.beginTransaction().replace(binding.fghemocube.id, TrueHemeTestFragment()) .commit() } @@ -304,7 +207,7 @@ open class HemocubeActivity : AppCompatActivity() { // } override fun onBackPressed() { val fragment = supportFragmentManager.findFragmentById(R.id.fghemocube) - if (fragment is HemoCubeFragment) { + if (fragment is TrueHemeTestFragment) { if (fragment.handleBackButtonPress()) { // If the fragment handled the back press, return to avoid calling super.onBackPressed return diff --git a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/trueheme_test/TrueHemeTestFragment.kt similarity index 83% rename from app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeFragment.kt rename to app/src/main/java/com/example/hpostesting/presentation/trueheme_test/TrueHemeTestFragment.kt index 97183f6..cc02916 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/trueheme_test/TrueHemeTestFragment.kt @@ -11,7 +11,7 @@ * // from ShanMukha Innovations Pvt. Ltd. */ -package com.example.hpostesting.presentation.hemocube +package com.example.hpostesting.presentation.trueheme_test import android.annotation.SuppressLint import android.content.Context @@ -38,8 +38,7 @@ import com.example.hpostesting.data.model.TestState import com.example.hpostesting.data.model.patient.DeviceData import com.example.hpostesting.data.model.patient.toHemoCubeTestData import com.example.hpostesting.presentation.utils.UsbServiceListener -import com.example.hpostesting.presentation.dashboard.DashboardActivity -import com.example.hpostesting.presentation.deviceinfo.DeviceActivity +import com.example.hpostesting.presentation.main_base.DashboardActivity import com.example.hpostesting.presentation.utils.MyDialogListener import com.example.hpostesting.presentation.utils.UIUtils import com.google.firebase.crashlytics.ktx.crashlytics @@ -49,28 +48,29 @@ import `in`.sminnovations.hpostesting.databinding.FragmentHemoCubeReferenceBindi import kotlin.math.abs import kotlin.math.log10 import kotlin.random.Random - +//This is TrueHemeTestFragment, where actual tests are done first buffer check and then sample check +//and finally on submit test data to database if online or store in offline database @Suppress("MemberVisibilityCanBePrivate") -class HemoCubeFragment : Fragment() { - private var positiveBoderLine10mm1=Constants.positiveBoderLine10mm1 - private var positiveBoderLine10mm2=Constants.positiveBoderLine10mm2 - private var negativeBoderLine10mm1=Constants.negativeBoderLine10mm1 - private var negativeBoderLine10mm2=Constants.negativeBoderLine10mm2 +class TrueHemeTestFragment : Fragment() { + private var positiveBoderLine10mm1=Constants.positiveBoderLineMetricCheck10mmMin + private var positiveBoderLine10mm2=Constants.positiveBoderLineMetricCheck10mmMax + private var negativeBoderLine10mm1=Constants.negativeBoderLineMetricCheck10mmMin + private var negativeBoderLine10mm2=Constants.negativeBoderLineMetricCheck10mmMax private var normalMin10mm=Constants.normalMin10mm private var normalMax10mm=Constants.normalMax10mm private var negativeBorderlineMin10mm=Constants.negativeBorderlineMin10mm private var negativeBorderlineMax10mm=Constants.negativeBorderlineMax10mm private var sickleCellTraitMin10mm=Constants.sickleCellTraitMin10mm private var sickleCellTraitMax10mm=Constants.sickleCellTraitMax10mm - private var positiveForSickleCellMin10mm=Constants.positiveForSickleCellMin10mm - private var positiveForSickleCellMax10mm=Constants.positiveForSickleCellMax10mm + private var positiveForSickleCellMin10mm=Constants.positiveBoderlineMin10mm + private var positiveForSickleCellMax10mm=Constants.positiveBoderlineMax10mm private var sickleCellDiseaseMin10mm=Constants.sickleCellDiseaseMin10mm private var sickleCellDiseaseMax10mm=Constants.sickleCellDiseaseMax10mm - private var positiveBoderLine2mm1=Constants.positiveBoderLine2mm1 - private var positiveBoderLine2mm2=Constants.positiveBoderLine2mm2 - private var negativeBoderLine2mm1=Constants.negativeBoderLine2mm1 - private var negativeBoderLine2mm2=Constants.negativeBoderLine2mm2 + private var positiveBoderLine2mm1=Constants.positiveBoderLineMetricCheck2mmMin + private var positiveBoderLine2mm2=Constants.positiveBoderLineMetricCheck2mmMax + private var negativeBoderLine2mm1=Constants.negativeBoderLineMetricCheck2mmMin + private var negativeBoderLine2mm2=Constants.negativeBoderLineMetricCheck2mmMax private var normalMin2mm=Constants.normalMin2mm private var normalMax2mm=Constants.normalMax2mm private var negativeBorderlineMin2mm=Constants.negativeBorderlineMin2mm @@ -83,7 +83,7 @@ class HemoCubeFragment : Fragment() { private var sickleCellDiseaseMax2mm=Constants.sickleCellDiseaseMax2mm private var temperature="" - private var cuvetteSize = "10mm" + private var cuvetteSizeSP = "10mm" private var checkCuvette = false private var checkRefreshCuvette = false private var checkCuvetteSam = false @@ -92,7 +92,7 @@ class HemoCubeFragment : Fragment() { private var sampleClick = false private var refreshClick = false private lateinit var binding: FragmentHemoCubeReferenceBinding - private val hemoCubeViewModel: HemoCubeViewModel by activityViewModels() + private val trueHemeTestViewModel: TrueHemeTestViewModel by activityViewModels() private lateinit var sharedPreferences: SharedPreferences private val testDetails = DataHolder.selectedTest?.toHemoCubeTestData() private var isOnline = false @@ -133,36 +133,7 @@ class HemoCubeFragment : Fragment() { sharedPreferences = requireContext().getSharedPreferences("HEMOCUBE", Context.MODE_PRIVATE) - cuvetteSize = sharedPreferences.getString(Constants.CUVETTE_SIZE,"10mm").toString() - positiveBoderLine10mm1 = sharedPreferences.getString("positiveBoderLine10mm1", Constants.positiveBoderLine10mm1.toString())?.toDoubleOrNull() ?: Constants.positiveBoderLine10mm1 - positiveBoderLine10mm2 = sharedPreferences.getString("positiveBoderLine10mm2", Constants.positiveBoderLine10mm2.toString())?.toDoubleOrNull() ?: Constants.positiveBoderLine10mm2 - negativeBoderLine10mm1 = sharedPreferences.getString("negativeBoderLine10mm1", Constants.negativeBoderLine10mm1.toString())?.toDoubleOrNull() ?: Constants.negativeBoderLine10mm1 - negativeBoderLine10mm2 = sharedPreferences.getString("negativeBoderLine10mm2", Constants.negativeBoderLine10mm2.toString())?.toDoubleOrNull() ?: Constants.negativeBoderLine10mm2 - normalMin10mm = sharedPreferences.getString("normalMin10mm", Constants.normalMin10mm.toString())?.toDoubleOrNull() ?: Constants.normalMin10mm - normalMax10mm = sharedPreferences.getString("normalMax10mm", Constants.normalMax10mm.toString())?.toDoubleOrNull() ?: Constants.normalMax10mm - negativeBorderlineMin10mm = sharedPreferences.getString("negativeBorderlineMin10mm", Constants.negativeBorderlineMin10mm.toString())?.toDoubleOrNull() ?: Constants.negativeBorderlineMin10mm - negativeBorderlineMax10mm = sharedPreferences.getString("negativeBorderlineMax10mm", Constants.negativeBorderlineMax10mm.toString())?.toDoubleOrNull() ?: Constants.negativeBorderlineMax10mm - sickleCellTraitMin10mm = sharedPreferences.getString("sickleCellTraitMin10mm", Constants.sickleCellTraitMin10mm.toString())?.toDoubleOrNull() ?: Constants.sickleCellTraitMin10mm - sickleCellTraitMax10mm = sharedPreferences.getString("sickleCellTraitMax10mm", Constants.sickleCellTraitMax10mm.toString())?.toDoubleOrNull() ?: Constants.sickleCellTraitMax10mm - positiveForSickleCellMin10mm = sharedPreferences.getString("positiveForSickleCellMin10mm", Constants.positiveForSickleCellMin10mm.toString())?.toDoubleOrNull() ?: Constants.positiveForSickleCellMin10mm - positiveForSickleCellMax10mm = sharedPreferences.getString("positiveForSickleCellMax10mm", Constants.positiveForSickleCellMax10mm.toString())?.toDoubleOrNull() ?: Constants.positiveForSickleCellMax10mm - sickleCellDiseaseMin10mm = sharedPreferences.getString("sickleCellDiseaseMin10mm", Constants.sickleCellDiseaseMin10mm.toString())?.toDoubleOrNull() ?: Constants.sickleCellDiseaseMin10mm - sickleCellDiseaseMax10mm = sharedPreferences.getString("sickleCellDiseaseMax10mm", Constants.sickleCellDiseaseMax10mm.toString())?.toDoubleOrNull() ?: Constants.sickleCellDiseaseMax10mm - - positiveBoderLine2mm1 = sharedPreferences.getString("positiveBoderLine2mm1", Constants.positiveBoderLine2mm1.toString())?.toDoubleOrNull() ?: Constants.positiveBoderLine2mm1 - positiveBoderLine2mm2 = sharedPreferences.getString("positiveBoderLine2mm2", Constants.positiveBoderLine2mm2.toString())?.toDoubleOrNull() ?: Constants.positiveBoderLine2mm2 - negativeBoderLine2mm1 = sharedPreferences.getString("negativeBoderLine2mm1", Constants.negativeBoderLine2mm1.toString())?.toDoubleOrNull() ?: Constants.negativeBoderLine2mm1 - negativeBoderLine2mm2 = sharedPreferences.getString("negativeBoderLine2mm2", Constants.negativeBoderLine2mm2.toString())?.toDoubleOrNull() ?: Constants.negativeBoderLine2mm2 - normalMin2mm = sharedPreferences.getString("normalMin2mm", Constants.normalMin2mm.toString())?.toDoubleOrNull() ?: Constants.normalMin2mm - normalMax2mm = sharedPreferences.getString("normalMax2mm", Constants.normalMax2mm.toString())?.toDoubleOrNull() ?: Constants.normalMax2mm - negativeBorderlineMin2mm = sharedPreferences.getString("negativeBorderlineMin2mm", Constants.negativeBorderlineMin2mm.toString())?.toDoubleOrNull() ?: Constants.negativeBorderlineMin2mm - negativeBorderlineMax2mm = sharedPreferences.getString("negativeBorderlineMax2mm", Constants.negativeBorderlineMax2mm.toString())?.toDoubleOrNull() ?: Constants.negativeBorderlineMax2mm - sickleCellTraitMin2mm = sharedPreferences.getString("sickleCellTraitMin2mm", Constants.sickleCellTraitMin2mm.toString())?.toDoubleOrNull() ?: Constants.sickleCellTraitMin2mm - sickleCellTraitMax2mm = sharedPreferences.getString("sickleCellTraitMax2mm", Constants.sickleCellTraitMax2mm.toString())?.toDoubleOrNull() ?: Constants.sickleCellTraitMax2mm - positiveForSickleCellMin2mm = sharedPreferences.getString("positiveForSickleCellMin2mm", Constants.positiveForSickleCellMin2mm.toString())?.toDoubleOrNull() ?: Constants.positiveForSickleCellMin2mm - positiveForSickleCellMax2mm = sharedPreferences.getString("positiveForSickleCellMax2mm", Constants.positiveForSickleCellMax2mm.toString())?.toDoubleOrNull() ?: Constants.positiveForSickleCellMax2mm - sickleCellDiseaseMin2mm = sharedPreferences.getString("sickleCellDiseaseMin2mm", Constants.sickleCellDiseaseMin2mm.toString())?.toDoubleOrNull() ?: Constants.sickleCellDiseaseMin2mm - sickleCellDiseaseMax2mm = sharedPreferences.getString("sickleCellDiseaseMax2mm", Constants.sickleCellDiseaseMax2mm.toString())?.toDoubleOrNull() ?: Constants.sickleCellDiseaseMax2mm + cuvetteSizeSP = sharedPreferences.getString(Constants.CUVETTE_SIZE,"10mm").toString() testState = TestState( testDetails = DataHolder.selectedTest?.toHemoCubeTestData(), @@ -214,7 +185,7 @@ class HemoCubeFragment : Fragment() { binding.progressBar.visibility = View.VISIBLE binding.btnSubmit.visibility = View.GONE } - hemoCubeViewModel.uploadHemoCubeResultToDatabase( + trueHemeTestViewModel.uploadHemoCubeResultToDatabase( isOnline, true, sharedPreferences.getString(Constants.KIT_NUMBER, ""),quickCapture ) }else{ @@ -236,7 +207,7 @@ class HemoCubeFragment : Fragment() { binding.tvSubtitle4.text = "Config" if (isBufferValueAvailable()){ - hemoCubeViewModel.messages.postValue("Ready to test") + trueHemeTestViewModel.messages.postValue("Ready to test") isUsingExistingBuffer = true binding.btnPlaceRefreshbuffer.visibility = View.VISIBLE binding.btnPlacebuffer.visibility = View.GONE @@ -247,7 +218,7 @@ class HemoCubeFragment : Fragment() { binding.btnSamplestart.isClickable = true binding.btnSamplestart.isEnabled = true }else{ - hemoCubeViewModel.messages.postValue("Fresh Kit - Please take Buffer Blank reading") + trueHemeTestViewModel.messages.postValue("Fresh Kit - Please take Buffer Blank reading") binding.btnPlacebuffer.visibility = View.VISIBLE binding.btnPlaceRefreshbuffer.visibility = View.GONE binding.btnPlacebuffer.apply { @@ -331,24 +302,24 @@ class HemoCubeFragment : Fragment() { } private fun observeViewModel() { - hemoCubeViewModel.fireBaseUpload.observe(viewLifecycleOwner) { result -> + trueHemeTestViewModel.fireBaseUpload.observe(viewLifecycleOwner) { result -> if (result == "Success") { uploadedToCloud = true var accessToken = sharedPreferences.getString(Constants.ACCESS_TOKEN, "").toString() showToast(R.string.test_upload) if (Constants.MOLBIO_INTEGRATION) { - hemoCubeViewModel.resultUpload.observe(viewLifecycleOwner) { + trueHemeTestViewModel.resultUpload.observe(viewLifecycleOwner) { when (it) { is Result.Success -> { uploadedToMolbio = true it.data.data?.get(0)?.rawData?.let { it1 -> - hemoCubeViewModel.updateMolbioFlag( + trueHemeTestViewModel.updateMolbioFlag( it1._id ) } handleReadingFinish() - hemoCubeViewModel.uploadLogs() - hemoCubeViewModel.downloadClientCertificate() + trueHemeTestViewModel.uploadLogs() + trueHemeTestViewModel.downloadClientCertificate() } is Result.Error -> { @@ -385,13 +356,13 @@ class HemoCubeFragment : Fragment() { binding.progressBar.visibility = View.GONE } - hemoCubeViewModel.getDeviceData(sharedPreferences.getString(Constants.USER_ID, "")) + trueHemeTestViewModel.getDeviceData(sharedPreferences.getString(Constants.USER_ID, "")) - hemoCubeViewModel.deviceData.observe(viewLifecycleOwner) { + trueHemeTestViewModel.deviceData.observe(viewLifecycleOwner) { currentDeviceData = it } - hemoCubeViewModel.networkStatusLiveData.observe(viewLifecycleOwner) { isNetworkAvailable -> + trueHemeTestViewModel.networkStatusLiveData.observe(viewLifecycleOwner) { isNetworkAvailable -> apply { DataHolder.hemoCubeTestData?.let { currentDeviceData?.coefficients?.let { coefficients -> @@ -404,11 +375,11 @@ class HemoCubeFragment : Fragment() { } } - hemoCubeViewModel.messages.observe(viewLifecycleOwner) { + trueHemeTestViewModel.messages.observe(viewLifecycleOwner) { binding.tvSubtitle4.text = it } - hemoCubeViewModel.deviceMessages.observe(viewLifecycleOwner) { + trueHemeTestViewModel.deviceMessages.observe(viewLifecycleOwner) { binding.tvDeviceMessages.text = it } } @@ -416,7 +387,7 @@ class HemoCubeFragment : Fragment() { private fun handleReadingFinish() { if (allReadingsComplete(repeatReadingCount, readingsPerSample) && uploadedToCloud) { if (validationError) { - hemoCubeViewModel.messages.postValue("Error") + trueHemeTestViewModel.messages.postValue("Error") return } activity?.runOnUiThread { @@ -427,7 +398,7 @@ class HemoCubeFragment : Fragment() { startActivity(i) } } else { - hemoCubeViewModel.messages.postValue("Reading $repeatReadingCount completed") + trueHemeTestViewModel.messages.postValue("Reading $repeatReadingCount completed") resetTest() startSampleProcess() } @@ -509,13 +480,13 @@ class HemoCubeFragment : Fragment() { private fun listenToHemoCube() { DataHolder.hemoCubeTestData = DataHolder.selectedTest?.toHemoCubeTestData() - hemoCubeViewModel.progressBar.postValue(true) + trueHemeTestViewModel.progressBar.postValue(true) val fullReadOutput = StringBuilder() startListening.postValue(true) try { - (activity as HemocubeActivity).mService.listenToHemoCube(object : UsbServiceListener { + (activity as TrueHemeTestActivity).mService.listenToHemoCube(object : UsbServiceListener { override fun onUsbRead(data: ByteArray?) { data?.let { val stringData = String(it) @@ -525,7 +496,7 @@ class HemoCubeFragment : Fragment() { } override fun onUsbError(e: Exception?) { - hemoCubeViewModel.progressBar.postValue(false) + trueHemeTestViewModel.progressBar.postValue(false) } }) } catch (e: Exception) { @@ -535,34 +506,34 @@ class HemoCubeFragment : Fragment() { } private fun getDeviceInfo() { - hemoCubeViewModel.progressBar.postValue(true) - (activity as HemocubeActivity).mService.sendAndListenToHemoCube( + trueHemeTestViewModel.progressBar.postValue(true) + (activity as TrueHemeTestActivity).mService.sendAndListenToHemoCube( HemoCubeCommands.DEVICE_CONFIGURATION_COMMAND, object : UsbServiceListener { override fun onUsbRead(data: ByteArray?) { data?.let { val stringData = String(it) - hemoCubeViewModel.messages.postValue(stringData) + trueHemeTestViewModel.messages.postValue(stringData) binding.tvSubtitle4.text = stringData } } override fun onUsbError(e: Exception?) { - hemoCubeViewModel.progressBar.postValue(false) + trueHemeTestViewModel.progressBar.postValue(false) } }) } private fun loadDACValues() { - hemoCubeViewModel.progressBar.postValue(true) - (activity as HemocubeActivity).mService.sendAndListenToHemoCube( + trueHemeTestViewModel.progressBar.postValue(true) + (activity as TrueHemeTestActivity).mService.sendAndListenToHemoCube( HemoCubeCommands.LOAD_DAC_VALUES, object : UsbServiceListener { override fun onUsbRead(data: ByteArray?) { } override fun onUsbError(e: Exception?) { - hemoCubeViewModel.progressBar.postValue(false) + trueHemeTestViewModel.progressBar.postValue(false) } }) } @@ -574,7 +545,7 @@ class HemoCubeFragment : Fragment() { resultData += stringData currentResultData += stringData - hemoCubeViewModel.deviceMessages.postValue(currentResultData) + trueHemeTestViewModel.deviceMessages.postValue(currentResultData) Log.e("testStatus",this.testStatusCode.toString()) when { resultData.contains("SNE") && this.testStatusCode < TestStatus.CONFIG_COMPLETED.code -> { @@ -589,13 +560,13 @@ class HemoCubeFragment : Fragment() { (resultData.contains("#LS") && this.testStatusCode < TestStatus.FIRST_EMPTY_AIR_READING_STARTED.code) -> { // air reading 1 this.testStatusCode = TestStatus.FIRST_EMPTY_AIR_READING_STARTED.code - hemoCubeViewModel.messages.postValue("Air reading started") + trueHemeTestViewModel.messages.postValue("Air reading started") } (resultData.contains("#LC") && this.testStatusCode < TestStatus.FIRST_EMPTY_AIR_READING_COMPLETED.code) -> { // air reading 1, send command to print this.testStatusCode = TestStatus.FIRST_EMPTY_AIR_READING_COMPLETED.code - hemoCubeViewModel.messages.postValue("Air reading completed") + trueHemeTestViewModel.messages.postValue("Air reading completed") fetchResult() } //#EC for v0 and v1 and #RC for v2 @@ -621,7 +592,7 @@ class HemoCubeFragment : Fragment() { //hemoCubeViewModel.messages.postValue("Ready to test \n Temperature : $temperature") } resultData.contains("#CIN") && sampleClick && this.testStatusCode < TestStatus.CUVETTE_PRESENTS.code -> { - hemoCubeViewModel.messages.postValue(getString(R.string.cuvette_present)) + trueHemeTestViewModel.messages.postValue(getString(R.string.cuvette_present)) this.testStatusCode = TestStatus.CUVETTE_PRESENTS.code activity?.runOnUiThread { checkCuvetteSam = true @@ -633,7 +604,7 @@ class HemoCubeFragment : Fragment() { } } resultData.contains("#AIN") && sampleClick && this.testStatusCode <= TestStatus.CUVETTE_ABSENTS.code -> { - hemoCubeViewModel.messages.postValue(getString(R.string.cuvette_absent)) + trueHemeTestViewModel.messages.postValue(getString(R.string.cuvette_absent)) this.testStatusCode = TestStatus.CUVETTE_ABSENTS.code activity?.runOnUiThread { binding.testing.visibility = View.GONE @@ -641,7 +612,7 @@ class HemoCubeFragment : Fragment() { showRetryButtonForCuvette() } resultData.contains("#CIN") && refreshClick && this.testStatusCode < TestStatus.CUVETTE_PRESENTR.code -> { - hemoCubeViewModel.messages.postValue(getString(R.string.cuvette_present)) + trueHemeTestViewModel.messages.postValue(getString(R.string.cuvette_present)) this.testStatusCode = TestStatus.CUVETTE_PRESENTR.code activity?.runOnUiThread { checkRefreshCuvette = true @@ -655,7 +626,7 @@ class HemoCubeFragment : Fragment() { } } resultData.contains("#AIN") && refreshClick && this.testStatusCode <= TestStatus.CUVETTE_ABSENTR.code -> { - hemoCubeViewModel.messages.postValue(getString(R.string.cuvette_absent)) + trueHemeTestViewModel.messages.postValue(getString(R.string.cuvette_absent)) this.testStatusCode = TestStatus.CUVETTE_ABSENTR.code activity?.runOnUiThread { binding.testing.visibility = View.GONE @@ -665,7 +636,7 @@ class HemoCubeFragment : Fragment() { showRetryButtonForCuvette() } resultData.contains("#CIN") && this.testStatusCode < TestStatus.CUVETTE_PRESENT.code -> { - hemoCubeViewModel.messages.postValue(getString(R.string.cuvette_present)) + trueHemeTestViewModel.messages.postValue(getString(R.string.cuvette_present)) this.testStatusCode = TestStatus.CUVETTE_PRESENT.code activity?.runOnUiThread { checkCuvette = true @@ -678,7 +649,7 @@ class HemoCubeFragment : Fragment() { } } resultData.contains("#AIN") && this.testStatusCode <= TestStatus.CUVETTE_ABSENT.code -> { - hemoCubeViewModel.messages.postValue(getString(R.string.cuvette_absent)) + trueHemeTestViewModel.messages.postValue(getString(R.string.cuvette_absent)) this.testStatusCode = TestStatus.CUVETTE_ABSENT.code activity?.runOnUiThread { binding.testing.visibility = View.GONE @@ -688,14 +659,14 @@ class HemoCubeFragment : Fragment() { showRetryButtonForCuvette() } resultData.contains("#CIN") && this.submitClick && this.testStatusCode < TestStatus.CUVETTE_PRESENTT.code -> { - hemoCubeViewModel.messages.postValue(getString(R.string.cuvette_presentt)) + trueHemeTestViewModel.messages.postValue(getString(R.string.cuvette_presentt)) this.testStatusCode = TestStatus.CUVETTE_PRESENTT.code activity?.runOnUiThread { binding.testing.visibility = View.GONE } } resultData.contains("#AIN") && this.submitClick && this.testStatusCode <= TestStatus.CUVETTE_ABSENTT.code -> { - hemoCubeViewModel.messages.postValue(getString(R.string.cuvette_absentt)) + trueHemeTestViewModel.messages.postValue(getString(R.string.cuvette_absentt)) this.testStatusCode = TestStatus.CUVETTE_ABSENTT.code activity?.runOnUiThread { checkSubmit = true @@ -704,7 +675,7 @@ class HemoCubeFragment : Fragment() { } resultData.contains("#BS") && this.testStatusCode < TestStatus.BUFFER_STARTED.code -> { - hemoCubeViewModel.messages.postValue(getString(R.string.buffer_started)) + trueHemeTestViewModel.messages.postValue(getString(R.string.buffer_started)) this.testStatusCode = TestStatus.BUFFER_STARTED.code activity?.runOnUiThread { binding.btnPlacebuffer.visibility = View.GONE @@ -738,7 +709,7 @@ class HemoCubeFragment : Fragment() { } resultData.contains("REND") && this.testStatusCode < TestStatus.BUFFER_PRINT_COMPLETED.code -> { resultData = resultData.replace("REND","Buffer print complete"+ generateTwoDigitRandomNumber()) - hemoCubeViewModel.deviceMessages.postValue(resultData) + trueHemeTestViewModel.deviceMessages.postValue(resultData) if(handleBufferCompleted()){ this.testStatusCode = TestStatus.TEMPERATURE_CHECK.code activity?.runOnUiThread { @@ -780,7 +751,7 @@ class HemoCubeFragment : Fragment() { binding.testing.visibility = View.GONE binding.btnSamplestart.visibility = View.GONE } - hemoCubeViewModel.messages.postValue( + trueHemeTestViewModel.messages.postValue( getString(R.string.sample_completed) + "\n" + getString(R.string.gathering_data) ) currentResultData = "" @@ -791,60 +762,60 @@ class HemoCubeFragment : Fragment() { activity?.runOnUiThread { binding.testing.visibility = View.GONE } - hemoCubeViewModel.messages.postValue( + trueHemeTestViewModel.messages.postValue( getString(R.string.power_bank) ) } currentResultData.contains("#SS2") && this.testStatusCode < TestStatus.FIRST_GAIN_STARTED.code -> { this.testStatusCode = TestStatus.FIRST_GAIN_STARTED.code - hemoCubeViewModel.messages.postValue("1.3X Gain Started") + trueHemeTestViewModel.messages.postValue("1.3X Gain Started") } currentResultData.contains("#SC2") && this.testStatusCode < TestStatus.FIRST_GAIN_COMPLETED.code -> { this.testStatusCode = TestStatus.FIRST_GAIN_COMPLETED.code - hemoCubeViewModel.messages.postValue("1.3X Gain Completed") + trueHemeTestViewModel.messages.postValue("1.3X Gain Completed") fetchResult() } currentResultData.contains("#SS3") && this.testStatusCode < TestStatus.SECOND_GAIN_STARTED.code -> { this.testStatusCode = TestStatus.SECOND_GAIN_STARTED.code - hemoCubeViewModel.messages.postValue("2X Gain Started") + trueHemeTestViewModel.messages.postValue("2X Gain Started") } currentResultData.contains("#SC3") && this.testStatusCode < TestStatus.SECOND_GAIN_COMPLETED.code -> { this.testStatusCode = TestStatus.SECOND_GAIN_COMPLETED.code - hemoCubeViewModel.messages.postValue("2X Gain Completed") + trueHemeTestViewModel.messages.postValue("2X Gain Completed") fetchResult() } currentResultData.contains("#SS5") && this.testStatusCode < TestStatus.FORTH_GAIN_STARTED.code -> { this.testStatusCode = TestStatus.FORTH_GAIN_STARTED.code - hemoCubeViewModel.messages.postValue("7.6X Gain Started") + trueHemeTestViewModel.messages.postValue("7.6X Gain Started") } currentResultData.contains("#SC5") && this.testStatusCode < TestStatus.FORTH_GAIN_COMPLETED.code -> { this.testStatusCode = TestStatus.FORTH_GAIN_COMPLETED.code - hemoCubeViewModel.messages.postValue("7.6X Gain Completed") + trueHemeTestViewModel.messages.postValue("7.6X Gain Completed") fetchResult() } (resultData.contains("#LS") && this.testStatusCode < TestStatus.SECOND_EMPTY_AIR_READING_STARTED.code) -> { // air reading 2 this.testStatusCode = TestStatus.SECOND_EMPTY_AIR_READING_STARTED.code - hemoCubeViewModel.messages.postValue("Air reading started") + trueHemeTestViewModel.messages.postValue("Air reading started") } (resultData.contains("#LC") && this.testStatusCode < TestStatus.SECOND_EMPTY_AIR_READING_COMPLETED.code) -> { // air reading 2, print values this.testStatusCode = TestStatus.SECOND_EMPTY_AIR_READING_COMPLETED.code - hemoCubeViewModel.messages.postValue("Air reading completed") + trueHemeTestViewModel.messages.postValue("Air reading completed") fetchResult() } resultData.contains("REND") && this.testStatusCode < TestStatus.SAMPLE_PRINT_COMPLETED.code -> { resultData = resultData.replace("REND","Sample print complete"+ generateTwoDigitRandomNumber()) - hemoCubeViewModel.deviceMessages.postValue(resultData) + trueHemeTestViewModel.deviceMessages.postValue(resultData) handleSampleCompleted() } @@ -852,7 +823,7 @@ class HemoCubeFragment : Fragment() { && this.testStatusCode >= TestStatus.FIRST_EMPTY_AIR_READING_COMPLETED.code && this.testStatusCode < TestStatus.FIRST_EMPTY_AIR_READING_PRINT_COMPLETED.code -> { this.testStatusCode = TestStatus.FIRST_GAIN_PRINT_COMPLETED.code - hemoCubeViewModel.messages.postValue("First air reading completed") + trueHemeTestViewModel.messages.postValue("First air reading completed") val resultLines = currentResultData.split("\\s+(?=LB|LS)".toRegex()) DataHolder.hemoCubeTestData?.apply { @@ -870,7 +841,7 @@ class HemoCubeFragment : Fragment() { && this.testStatusCode >= TestStatus.SECOND_EMPTY_AIR_READING_COMPLETED.code && this.testStatusCode < TestStatus.SECOND_EMPTY_AIR_PRINT_COMPLETED.code -> { this.testStatusCode = TestStatus.SECOND_EMPTY_AIR_PRINT_COMPLETED.code - hemoCubeViewModel.messages.postValue("Second air reading completed") + trueHemeTestViewModel.messages.postValue("Second air reading completed") val resultLines = currentResultData.split("\\s+(?=LB|LS)".toRegex()) DataHolder.hemoCubeTestData?.apply { @@ -888,7 +859,7 @@ class HemoCubeFragment : Fragment() { && this.testStatusCode >= TestStatus.FIRST_GAIN_COMPLETED.code && this.testStatusCode < TestStatus.FIRST_GAIN_PRINT_COMPLETED.code -> { this.testStatusCode = TestStatus.FIRST_GAIN_PRINT_COMPLETED.code - hemoCubeViewModel.messages.postValue("1.3X gain data gathered") + trueHemeTestViewModel.messages.postValue("1.3X gain data gathered") val resultLines = currentResultData.split("\\s+(?=LB|LS)".toRegex()) DataHolder.hemoCubeTestData?.apply { @@ -907,7 +878,7 @@ class HemoCubeFragment : Fragment() { && this.testStatusCode >= TestStatus.FIRST_GAIN_PRINT_COMPLETED.code && this.testStatusCode < TestStatus.SECOND_GAIN_PRINT_COMPLETED.code -> { this.testStatusCode = TestStatus.SECOND_GAIN_PRINT_COMPLETED.code - hemoCubeViewModel.messages.postValue("2X gain data gathered") + trueHemeTestViewModel.messages.postValue("2X gain data gathered") val resultLines = currentResultData.split("\\s+(?=LB|LS)".toRegex()) DataHolder.hemoCubeTestData?.apply { @@ -926,7 +897,7 @@ class HemoCubeFragment : Fragment() { && this.testStatusCode >= TestStatus.SECOND_GAIN_PRINT_COMPLETED.code && this.testStatusCode < TestStatus.FORTH_GAIN_PRINT_COMPLETED.code -> { this.testStatusCode = TestStatus.FORTH_GAIN_PRINT_COMPLETED.code - hemoCubeViewModel.messages.postValue("7.6X gain data gathered") + trueHemeTestViewModel.messages.postValue("7.6X gain data gathered") val resultLines = currentResultData.split("\\s+(?=LB|LS)".toRegex()) DataHolder.hemoCubeTestData?.apply { @@ -952,16 +923,16 @@ class HemoCubeFragment : Fragment() { val lb2Value = lb2Match!!.groupValues[1].toFloat() // val led1Min = sharedPreferences.getString("bufferMinLed1", "21000.00")?.toDouble() - val led1Min = sharedPreferences.getString("bufferMinLed1", Constants.bufferMinLed1.toString())?.toDoubleOrNull() ?: Constants.bufferMinLed1 - val led1Max = sharedPreferences.getString("bufferMaxLed1", Constants.bufferMaxLed1.toString())?.toDoubleOrNull() ?: Constants.bufferMaxLed1 + val led1Min = Constants.bufferMinLed1 + val led1Max = Constants.bufferMaxLed1 - val led2Min = sharedPreferences.getString("bufferMinLed2", Constants.bufferMinLed2.toString())?.toDoubleOrNull() ?: Constants.bufferMinLed2 - val led2Max = sharedPreferences.getString("bufferMaxLed2", Constants.bufferMaxLed2.toString())?.toDoubleOrNull() ?: Constants.bufferMaxLed2 + val led2Min = Constants.bufferMinLed2 + val led2Max = Constants.bufferMaxLed2 val isLb1InRange = lb1Value in led1Min..led1Max val isLb2InRange = lb2Value in led2Min..led2Max if(!isLb1InRange || !isLb2InRange){ - hemoCubeViewModel.messages.postValue("Buffer Reading Out of Range - Please Take Buffer/Blank Reading. If problem persists, Calibrate device") + trueHemeTestViewModel.messages.postValue("Buffer Reading Out of Range - Please Take Buffer/Blank Reading. If problem persists, Calibrate device") return true } @@ -993,7 +964,7 @@ class HemoCubeFragment : Fragment() { binding.ivCheck.visibility = View.VISIBLE } } else { - hemoCubeViewModel.uploadHemoCubeResultToDatabase( + trueHemeTestViewModel.uploadHemoCubeResultToDatabase( isOnline, true, sharedPreferences.getString(Constants.KIT_NUMBER, ""),false ) } @@ -1002,7 +973,7 @@ class HemoCubeFragment : Fragment() { fun handleSampleCompleted() { this.testStatusCode = TestStatus.SAMPLE_PRINT_COMPLETED.code - hemoCubeViewModel.messages.postValue( + trueHemeTestViewModel.messages.postValue( getString(R.string.data_collected_processing_data) ) @@ -1047,7 +1018,7 @@ class HemoCubeFragment : Fragment() { if (!hardwareId.isNullOrBlank()) { updateDeviceId(hardwareId) } else { - hemoCubeViewModel.messages.postValue("Config error") + trueHemeTestViewModel.messages.postValue("Config error") } if (!Constants.DEVICE_CONFIGURATION.containsKey(deviceHardwareId)) { @@ -1094,7 +1065,7 @@ class HemoCubeFragment : Fragment() { // } // hemoCubeViewModel.messages.postValue(getString(R.string.start)) } else { - hemoCubeViewModel.messages.postValue("Config error") + trueHemeTestViewModel.messages.postValue("Config error") } if (!Constants.DEVICE_CONFIGURATION.containsKey(deviceHardwareId)) { @@ -1144,7 +1115,7 @@ class HemoCubeFragment : Fragment() { private fun processResult() { try { - hemoCubeViewModel.messages.postValue(getString(R.string.processing_result)) + trueHemeTestViewModel.messages.postValue(getString(R.string.processing_result)) val deviceLog = resultData val pInfo = requireActivity().packageManager.getPackageInfo( @@ -1163,7 +1134,7 @@ class HemoCubeFragment : Fragment() { // Toast.makeText(requireContext(),"count: ${DataHolder.sampleReadCounter}",Toast.LENGTH_LONG).show() // } if(led1Average < 0 || led2Average < 0){ - hemoCubeViewModel.messages.postValue("Negative Absorbance - Repeat test with reading Buffer first and sample second") + trueHemeTestViewModel.messages.postValue("Negative Absorbance - Repeat test with reading Buffer first and sample second") this.testStatusCode = TestStatus.BUFFER_PRINT_COMPLETED.code binding.testing.visibility = View.GONE binding.btnPlacebuffer.visibility = View.GONE @@ -1187,7 +1158,7 @@ class HemoCubeFragment : Fragment() { val min10mmLed2 = getDoubleFromPreferences(Constants.ABS10LED2MMLL, Constants.min10mmLed2) val max10mmLed2 = getDoubleFromPreferences(Constants.ABS10LED2MMUL, Constants.max10mmLed2) if(led1Average < 0 || led2Average < 0){ - hemoCubeViewModel.messages.postValue("Negative Absorbance - Repeat test with reading Buffer first and sample second") + trueHemeTestViewModel.messages.postValue("Negative Absorbance - Repeat test with reading Buffer first and sample second") this.testStatusCode = TestStatus.BUFFER_PRINT_COMPLETED.code binding.testing.visibility = View.GONE binding.btnPlaceRefreshbuffer.visibility = View.GONE @@ -1197,11 +1168,11 @@ class HemoCubeFragment : Fragment() { binding.btnSamplestart.isEnabled = true return }else{ - if(cuvetteSize == "10mm"){ + if(cuvetteSizeSP == "10mm"){ inRange10mmLed1 = led1Average in min10mmLed1..max10mmLed1 inRange10mmLed2 = led2Average in min10mmLed2..max10mmLed2 if(!inRange10mmLed1 || !inRange10mmLed2){ - hemoCubeViewModel.messages.postValue("Absorbance out-of-Range - Repeat test with adequate blood volume and Incubation time") + trueHemeTestViewModel.messages.postValue("Absorbance out-of-Range - Repeat test with adequate blood volume and Incubation time") this.testStatusCode = TestStatus.BUFFER_PRINT_COMPLETED.code binding.testing.visibility = View.GONE binding.btnPlaceRefreshbuffer.visibility = View.GONE @@ -1211,11 +1182,11 @@ class HemoCubeFragment : Fragment() { binding.btnSamplestart.isEnabled = true return } - }else if(cuvetteSize == "2mm"){ + }else if(cuvetteSizeSP == "2mm"){ inRange2mmLed1 = led1Average in min2mmLed1..max2mmLed1 inRange2mmLed2 = led2Average in min2mmLed2..max2mmLed2 if(!inRange2mmLed1 || !inRange2mmLed2){ - hemoCubeViewModel.messages.postValue("Absorbance out-of-Range - Repeat test with adequate blood volume and Incubation time") + trueHemeTestViewModel.messages.postValue("Absorbance out-of-Range - Repeat test with adequate blood volume and Incubation time") this.testStatusCode = TestStatus.BUFFER_PRINT_COMPLETED.code binding.testing.visibility = View.GONE binding.btnPlaceRefreshbuffer.visibility = View.GONE @@ -1375,16 +1346,17 @@ class HemoCubeFragment : Fragment() { this.coefficients = currentDeviceData?.coefficients?.get(0) .toString() + ", " + currentDeviceData?.coefficients?.get(1).toString() this.prdClassification = absorbanceBasedClassification(predictedDenovixRatio) - this.deviceRatioClass = deviceRatioClassification(deviceRatio) + this.deviceRatioClass = deviceRatioClassification(cuvetteSizeSP,deviceRatio) this.borderlineMethod2Class = reclassifyWithBorderlineMethod2(deviceRatio, deviceRatioBorderlineThresholds(deviceRatio), led2Average) this.slopeRatioClass = slopeClass this.classificationResult = findResultWithAdditionalMethods( + cuvetteSizeSP, deviceRatio, deviceRatioClass, borderlineMetric ) Log.d("HemoCubeFragment",this.classificationResult) - hemoCubeViewModel.messages.postValue( + trueHemeTestViewModel.messages.postValue( "${this.classificationResult} \n Device Ratio: ${ "%.3f".format( this.deviceRatio @@ -1396,17 +1368,17 @@ class HemoCubeFragment : Fragment() { }" ) if (DataHolder.hemoCubeTestData?.testType == "HB") - hemoCubeViewModel.messages.postValue("Hb: $calculatedHb4") + trueHemeTestViewModel.messages.postValue("Hb: $calculatedHb4") this.errorMessages = testState.allErrorMessages this.resultData = deviceLog - this.batteryLevel = hemoCubeViewModel.getBatteryLevel().toString() + this.batteryLevel = trueHemeTestViewModel.getBatteryLevel().toString() this.batteryCapacity = - hemoCubeViewModel.getBatteryCapacity(requireContext()).toString() + trueHemeTestViewModel.getBatteryCapacity(requireContext()).toString() this.batteryMaxCapacity = - hemoCubeViewModel.getBatteryMaxCapacity(requireContext()).toString() - this.batteryTemperature = hemoCubeViewModel.getBatteryTemperature().toString() + trueHemeTestViewModel.getBatteryMaxCapacity(requireContext()).toString() + this.batteryTemperature = trueHemeTestViewModel.getBatteryTemperature().toString() this.batteryVoltage = - hemoCubeViewModel.getBatteryVoltage(requireContext()).toString() + trueHemeTestViewModel.getBatteryVoltage(requireContext()).toString() } if (!isUsingExistingBuffer) { @@ -1459,6 +1431,7 @@ class HemoCubeFragment : Fragment() { } fun findResultWithAdditionalMethods( + cuvetteSizeSP: String, deviceRatio: Double?, deviceRatioClass: String?, borderlineMetric: Double?, @@ -1466,7 +1439,7 @@ class HemoCubeFragment : Fragment() { try { // hemoCubeViewModel.messages.postValue("post classification checks") if (deviceRatio != null && borderlineMetric != null) { - if(cuvetteSize == "10mm"){ + if(cuvetteSizeSP == "10mm"){ if (deviceRatioClass == "Negative Borderline") { if (borderlineMetric < negativeBoderLine10mm1){//2.0 return "Sickle Cell Trait" @@ -1485,7 +1458,7 @@ class HemoCubeFragment : Fragment() { return "Sickle Cell Disease"//"Positive for Sickle Cell. Confirm with HPLC" } } - }else if(cuvetteSize == "2mm"){ + }else if(cuvetteSizeSP == "2mm"){ if (deviceRatioClass == "Negative Borderline") { if (borderlineMetric < negativeBoderLine2mm1){//1.34 return "Sickle Cell Trait" @@ -1539,12 +1512,11 @@ class HemoCubeFragment : Fragment() { return "Invalid" } - fun deviceRatioClassification(ratio: Double?): String { + fun deviceRatioClassification(cuvetteSize : String,ratio: Double?): String { try { if (ratio != null) { if(cuvetteSize == "10mm"){ if (ratio in normalMin10mm..normalMax10mm) { -// setSubtitleTextColor(R.color.green_2) return "Normal" } if (ratio in negativeBorderlineMin10mm..negativeBorderlineMax10mm){ @@ -1561,7 +1533,6 @@ class HemoCubeFragment : Fragment() { } }else if(cuvetteSize == "2mm"){ if (ratio in normalMin2mm..normalMax2mm) { -// setSubtitleTextColor(R.color.green_2) return "Normal" } if (ratio in negativeBorderlineMin2mm..negativeBorderlineMax2mm){ @@ -1602,7 +1573,7 @@ class HemoCubeFragment : Fragment() { fun slopeRatioClassification(ratio: Double?): String { try { - hemoCubeViewModel.messages.postValue("result classification") + trueHemeTestViewModel.messages.postValue("result classification") if (ratio != null) { if (ratio in 0.0..30.0) return getString(R.string.normal) @@ -1627,7 +1598,7 @@ class HemoCubeFragment : Fragment() { private fun absorbanceBasedClassification(predictedDenovixRatio: Double?): String { try { - hemoCubeViewModel.messages.postValue("result classification") + trueHemeTestViewModel.messages.postValue("result classification") if (predictedDenovixRatio != null) { if (predictedDenovixRatio in 0.0..0.16) { // activity?.runOnUiThread { @@ -1670,118 +1641,118 @@ class HemoCubeFragment : Fragment() { binding.btnRetryCheckCuvette.visibility = View.GONE } - hemoCubeViewModel.progressBar.postValue(true) + trueHemeTestViewModel.progressBar.postValue(true) - (activity as HemocubeActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.CHECK_CUVETTE_COMMAND, + (activity as TrueHemeTestActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.CHECK_CUVETTE_COMMAND, object : UsbServiceListener { override fun onUsbRead(data: ByteArray?) {} override fun onUsbError(e: Exception?) { - hemoCubeViewModel.progressBar.postValue(false) + trueHemeTestViewModel.progressBar.postValue(false) } }) } private fun startBufferProcess() { - hemoCubeViewModel.progressBar.postValue(true) + trueHemeTestViewModel.progressBar.postValue(true) // activity?.runOnUiThread { // binding.btnPlacebuffer.visibility = View.GONE // } - (activity as HemocubeActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.START_BUFFER_COMMAND, + (activity as TrueHemeTestActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.START_BUFFER_COMMAND, object : UsbServiceListener { override fun onUsbRead(data: ByteArray?) {} override fun onUsbError(e: Exception?) { - hemoCubeViewModel.progressBar.postValue(false) + trueHemeTestViewModel.progressBar.postValue(false) } }) } private fun startSampleProcess() { - hemoCubeViewModel.progressBar.postValue(true) + trueHemeTestViewModel.progressBar.postValue(true) - (activity as HemocubeActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.START_SAMPLE, + (activity as TrueHemeTestActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.START_SAMPLE, object : UsbServiceListener { override fun onUsbRead(data: ByteArray?) {} override fun onUsbError(e: Exception?) { - hemoCubeViewModel.progressBar.postValue(false) + trueHemeTestViewModel.progressBar.postValue(false) } }) } private fun sendFirstGainCommand() { - hemoCubeViewModel.progressBar.postValue(true) + trueHemeTestViewModel.progressBar.postValue(true) - (activity as HemocubeActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.FIRST_GAIN_COMMAND, + (activity as TrueHemeTestActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.FIRST_GAIN_COMMAND, object : UsbServiceListener { override fun onUsbRead(data: ByteArray?) {} override fun onUsbError(e: Exception?) { - hemoCubeViewModel.progressBar.postValue(false) + trueHemeTestViewModel.progressBar.postValue(false) } }) } private fun sendSecondGainCommand() { - hemoCubeViewModel.progressBar.postValue(true) + trueHemeTestViewModel.progressBar.postValue(true) - (activity as HemocubeActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.SECOND_GAIN_COMMAND, + (activity as TrueHemeTestActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.SECOND_GAIN_COMMAND, object : UsbServiceListener { override fun onUsbRead(data: ByteArray?) {} override fun onUsbError(e: Exception?) { - hemoCubeViewModel.progressBar.postValue(false) + trueHemeTestViewModel.progressBar.postValue(false) } }) } private fun sendThirdGainCommand() { - hemoCubeViewModel.progressBar.postValue(true) + trueHemeTestViewModel.progressBar.postValue(true) - (activity as HemocubeActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.THIRD_GAIN_COMMAND, + (activity as TrueHemeTestActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.THIRD_GAIN_COMMAND, object : UsbServiceListener { override fun onUsbRead(data: ByteArray?) {} override fun onUsbError(e: Exception?) { - hemoCubeViewModel.progressBar.postValue(false) + trueHemeTestViewModel.progressBar.postValue(false) } }) } private fun sendForthGainCommand() { - hemoCubeViewModel.progressBar.postValue(true) + trueHemeTestViewModel.progressBar.postValue(true) - (activity as HemocubeActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.FORTH_GAIN_COMMAND, + (activity as TrueHemeTestActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.FORTH_GAIN_COMMAND, object : UsbServiceListener { override fun onUsbRead(data: ByteArray?) {} override fun onUsbError(e: Exception?) { - hemoCubeViewModel.progressBar.postValue(false) + trueHemeTestViewModel.progressBar.postValue(false) } }) } private fun getTemp() { - hemoCubeViewModel.progressBar.postValue(true) + trueHemeTestViewModel.progressBar.postValue(true) - (activity as HemocubeActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.CHECK_TEMP_COMMAND, + (activity as TrueHemeTestActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.CHECK_TEMP_COMMAND, object : UsbServiceListener { override fun onUsbRead(data: ByteArray?) {} override fun onUsbError(e: Exception?) { - hemoCubeViewModel.progressBar.postValue(false) + trueHemeTestViewModel.progressBar.postValue(false) } }) } private fun fetchResult() { - hemoCubeViewModel.progressBar.postValue(true) + trueHemeTestViewModel.progressBar.postValue(true) - (activity as HemocubeActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.PRINT_COMMAND, + (activity as TrueHemeTestActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.PRINT_COMMAND, object : UsbServiceListener { override fun onUsbRead(data: ByteArray?) {} override fun onUsbError(e: Exception?) { - hemoCubeViewModel.progressBar.postValue(false) + trueHemeTestViewModel.progressBar.postValue(false) } }) } diff --git a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeViewModel.kt b/app/src/main/java/com/example/hpostesting/presentation/trueheme_test/TrueHemeTestViewModel.kt similarity index 99% rename from app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeViewModel.kt rename to app/src/main/java/com/example/hpostesting/presentation/trueheme_test/TrueHemeTestViewModel.kt index b7e44a3..4dd5a34 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeViewModel.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/trueheme_test/TrueHemeTestViewModel.kt @@ -11,7 +11,7 @@ * // from ShanMukha Innovations Pvt. Ltd. */ -package com.example.hpostesting.presentation.hemocube +package com.example.hpostesting.presentation.trueheme_test import android.content.Context import android.content.Intent @@ -66,7 +66,7 @@ import javax.inject.Inject @Suppress("MemberVisibilityCanBePrivate") @HiltViewModel -class HemoCubeViewModel @Inject constructor( +class TrueHemeTestViewModel @Inject constructor( val hemoCubeDao: HemoCubeDao, private val hemoCubeBufferDao: HemoCubeBufferDao, private val repository: Repository, @@ -496,7 +496,6 @@ class HemoCubeViewModel @Inject constructor( testDetails?.centerName = sharedPreference.getString(Constants.CENTER_NAME, "").toString() testDetails?.district = sharedPreference.getString(Constants.DISTRICT, "").toString() testDetails?.ipAddress = sharedPreference.getString(Constants.IP_ADDRESS, "").toString() - testDetails?.configUpdatedRecent = sharedPreference.getString(Constants.LAST_UPDATED, "NA").toString() } private fun addResultTestToDb(quickCapture: Boolean) { diff --git a/app/src/main/java/com/example/hpostesting/presentation/utils/NatsManager.kt b/app/src/main/java/com/example/hpostesting/presentation/utils/NatsManager.kt index e294693..1699a76 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/utils/NatsManager.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/utils/NatsManager.kt @@ -18,7 +18,7 @@ import android.os.Build import android.util.Log import androidx.annotation.RequiresApi import com.example.hpostesting.data.constant.Constants -import com.example.hpostesting.presentation.dashboard.DashboardActivity +import com.example.hpostesting.presentation.main_base.DashboardActivity import io.nats.client.AuthHandler import io.nats.client.Connection import io.nats.client.Message diff --git a/app/src/main/res/layout/fragment_digital_card.xml b/app/src/main/res/layout/fragment_digital_card.xml index 7bb3c5c..bd0b381 100644 --- a/app/src/main/res/layout/fragment_digital_card.xml +++ b/app/src/main/res/layout/fragment_digital_card.xml @@ -19,7 +19,7 @@ xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" - tools:context="com.example.hpostesting.presentation.hemocube.DigitalCardFragment"> + tools:context="com.example.hpostesting.presentation.trueheme_test.DigitalCardFragment"> + tools:context="com.example.hpostesting.presentation.main_base.PanelFragment"> + tools:context="com.example.hpostesting.presentation.trueheme_test.TrueHemeTestFragment"> + tools:context="com.example.hpostesting.presentation.main_base.ui.LoginFragment"> + tools:context="com.example.hpostesting.presentation.main_base.SlideshowFragment"> - diff --git a/app/src/main/res/navigation/dashboard_navigation.xml b/app/src/main/res/navigation/dashboard_navigation.xml index c840904..1a64dbf 100644 --- a/app/src/main/res/navigation/dashboard_navigation.xml +++ b/app/src/main/res/navigation/dashboard_navigation.xml @@ -20,7 +20,7 @@ \ No newline at end of file diff --git a/app/src/main/res/xml/remote_config_defaults.xml b/app/src/main/res/xml/remote_config_defaults.xml deleted file mode 100644 index a731919..0000000 --- a/app/src/main/res/xml/remote_config_defaults.xml +++ /dev/null @@ -1,146 +0,0 @@ - - - - BUFFER_FLAGS_ENABLED - true - - - positiveBoderLine10mm1 - 1.3 - - - positiveBoderLine10mm2 - 1.66 - - - negativeBoderLine10mm1 - 2.0 - - - negativeBoderLine10mm2 - 2.4 - - - normalMin10mm - 0.07 - - - normalMax10mm - 0.23 - - - negativeBorderlineMin10mm - 0.23 - - - negativeBorderlineMax10mm - 0.27 - - - sickleCellTraitMin10mm - 0.27 - - - sickleCellTraitMax10mm - 0.31 - - - positiveForSickleCellMin10mm - 0.31 - - - positiveForSickleCellMax10mm - 0.39 - - - sickleCellDiseaseMin10mm - 0.39 - - - sickleCellDiseaseMax10mm - 0.7 - - - positiveBoderLine2mm1 - 0.8 - - - positiveBoderLine2mm2 - 1.1 - - - negativeBoderLine2mm1 - 1.5 - - - negativeBoderLine2mm2 - 1.9 - - - normalMin2mm - 0.1 - - - normalMax2mm - 0.23 - - - negativeBorderlineMin2mm - 0.23 - - - negativeBorderlineMax2mm - 0.25 - - - sickleCellTraitMin2mm - 0.25 - - - sickleCellTraitMax2mm - 0.31 - - - positiveForSickleCellMin2mm - 0.31 - - - positiveForSickleCellMax2mm - 0.45 - - - sickleCellDiseaseMin2mm - 0.45 - - - sickleCellDiseaseMax2mm - 0.7 - - - bufferMinLed1 - 21000.00 - - - bufferMaxLed1 - 23000.00 - - - bufferMinLed2 - 17000.00 - - - bufferMaxLed2 - 19000.00 - - \ No newline at end of file diff --git a/app/src/test/java/com/example/hpostesting/HemocubeViewModelTest.kt b/app/src/test/java/com/example/hpostesting/HemocubeViewModelTest.kt index 6d4c960..67c7940 100644 --- a/app/src/test/java/com/example/hpostesting/HemocubeViewModelTest.kt +++ b/app/src/test/java/com/example/hpostesting/HemocubeViewModelTest.kt @@ -20,7 +20,7 @@ import com.example.hpostesting.util.Result import com.example.hpostesting.data.model.login.LoginResponse import com.example.hpostesting.data.repository.Repository import com.example.hpostesting.domain.LogFileManager -import com.example.hpostesting.presentation.hemocube.HemoCubeViewModel +import com.example.hpostesting.presentation.trueheme_test.TrueHemeTestViewModel import com.example.hpostesting.util.TestCoroutineRule import io.mockk.every import io.mockk.impl.annotations.MockK @@ -59,7 +59,7 @@ class HemocubeViewModelTest { @MockK(relaxed = true) lateinit var observer: Observer> - private lateinit var viewModel: HemoCubeViewModel + private lateinit var viewModel: TrueHemeTestViewModel @Before fun setup() { diff --git a/app/src/test/java/com/example/hpostesting/HemoCubeFragmentTest.kt b/app/src/test/java/com/example/hpostesting/TrueHemeTestFragmentTest.kt similarity index 75% rename from app/src/test/java/com/example/hpostesting/HemoCubeFragmentTest.kt rename to app/src/test/java/com/example/hpostesting/TrueHemeTestFragmentTest.kt index b1545d0..643098a 100644 --- a/app/src/test/java/com/example/hpostesting/HemoCubeFragmentTest.kt +++ b/app/src/test/java/com/example/hpostesting/TrueHemeTestFragmentTest.kt @@ -14,7 +14,7 @@ package com.example.hpostesting import android.content.SharedPreferences -import com.example.hpostesting.presentation.hemocube.HemoCubeFragment +import com.example.hpostesting.presentation.trueheme_test.TrueHemeTestFragment import junit.framework.TestCase.assertEquals import junit.framework.TestCase.assertNull import org.junit.Before @@ -24,17 +24,17 @@ import org.mockito.Mock import org.mockito.Mockito import org.mockito.MockitoAnnotations -class HemoCubeFragmentTest { +class TrueHemeTestFragmentTest { @Mock private lateinit var mockSharedPreferences: SharedPreferences - private lateinit var hemoCubeFragment: HemoCubeFragment + private lateinit var trueHemeTestFragment: TrueHemeTestFragment @Before fun setUp() { MockitoAnnotations.initMocks(this) - hemoCubeFragment = HemoCubeFragment() + trueHemeTestFragment = TrueHemeTestFragment() } @Test @@ -48,7 +48,7 @@ class HemoCubeFragmentTest { ).thenReturn("dummy_value") // Act - val deviceId = hemoCubeFragment.extractV2HardwareId("SNS HPP1-9000 SNE") + val deviceId = trueHemeTestFragment.extractV2HardwareId("SNS HPP1-9000 SNE") // Assert assertEquals("HPP1-9000", deviceId) @@ -81,11 +81,11 @@ class HemoCubeFragmentTest { val readingsPerSample = 1 // Act - val result = hemoCubeFragment.allReadingsComplete(repeatReadingCount, readingsPerSample) + val result = trueHemeTestFragment.allReadingsComplete(repeatReadingCount, readingsPerSample) // Assert assertEquals(true, result) - assertEquals(hemoCubeFragment.allReadingsComplete(0, 1), false) + assertEquals(trueHemeTestFragment.allReadingsComplete(0, 1), false) } @Test @@ -94,7 +94,7 @@ class HemoCubeFragmentTest { val input = "Some text SN ABC123 some more text" // Act - val result = hemoCubeFragment.extractV1HardwareId(input) + val result = trueHemeTestFragment.extractV1HardwareId(input) // Assert assertEquals("ABC123", result) @@ -106,7 +106,7 @@ class HemoCubeFragmentTest { val input = "Some text without SN" // Act - val result = hemoCubeFragment.extractV1HardwareId(input) + val result = trueHemeTestFragment.extractV1HardwareId(input) // Assert assertNull(result) @@ -118,7 +118,7 @@ class HemoCubeFragmentTest { val input = "" // Act - val result = hemoCubeFragment.extractV1HardwareId(input) + val result = trueHemeTestFragment.extractV1HardwareId(input) // Assert assertNull(result) @@ -130,7 +130,7 @@ class HemoCubeFragmentTest { val input: String? = null // Act - val result = input?.let { hemoCubeFragment.extractV1HardwareId(it) } + val result = input?.let { trueHemeTestFragment.extractV1HardwareId(it) } // Assert assertNull(result) @@ -158,7 +158,7 @@ class HemoCubeFragmentTest { """.trimIndent() // Act - val result = hemoCubeFragment.extractV1HardwareId(input) + val result = trueHemeTestFragment.extractV1HardwareId(input) // Assert assertEquals("HCV-000-3001", result) @@ -170,7 +170,7 @@ class HemoCubeFragmentTest { val input = "SNS ABC123 SNE" // Act - val result = hemoCubeFragment.extractV2HardwareId(input) + val result = trueHemeTestFragment.extractV2HardwareId(input) // Assert assertEquals("ABC123", result) @@ -182,7 +182,7 @@ class HemoCubeFragmentTest { val input = "No hardware ID in this input" // Act - val result = hemoCubeFragment.extractV2HardwareId(input) + val result = trueHemeTestFragment.extractV2HardwareId(input) // Assert assertNull(result) @@ -194,7 +194,7 @@ class HemoCubeFragmentTest { val input = "SNS XYZ789 SNE" // Act - val result = hemoCubeFragment.extractV2HardwareId(input) + val result = trueHemeTestFragment.extractV2HardwareId(input) // Assert assertEquals("XYZ789", result) @@ -218,7 +218,7 @@ class HemoCubeFragmentTest { "REND\n" // Act - val result = hemoCubeFragment.extractV2HardwareId(input) + val result = trueHemeTestFragment.extractV2HardwareId(input) // Assert assertEquals("HCV-000-3013", result) @@ -241,7 +241,7 @@ class HemoCubeFragmentTest { "REND\n" // Act - val result = hemoCubeFragment.extractV2HardwareId(input) + val result = trueHemeTestFragment.extractV2HardwareId(input) // Assert assertEquals("HPP1-4001", result) @@ -264,7 +264,7 @@ class HemoCubeFragmentTest { "REND\n" // Act - val result = hemoCubeFragment.extractV2HardwareId(input) + val result = trueHemeTestFragment.extractV2HardwareId(input) // Assert assertEquals("HPP1-000-4001", result) @@ -287,7 +287,7 @@ class HemoCubeFragmentTest { "REND\n" // Act - val result = hemoCubeFragment.extractV2HardwareId(input) + val result = trueHemeTestFragment.extractV2HardwareId(input) // Assert assertEquals("HPP-000-4001", result) @@ -310,7 +310,7 @@ class HemoCubeFragmentTest { "REND\n" // Act - val result = hemoCubeFragment.extractV2HardwareId(input) + val result = trueHemeTestFragment.extractV2HardwareId(input) // Assert assertEquals("HPP-000-5001", result) @@ -318,85 +318,97 @@ class HemoCubeFragmentTest { @Test fun testDeviceRatioClassificationNormalWithStartRange() { - val ratio = 0.16 - val result = hemoCubeFragment.deviceRatioClassification(ratio) + val ratio = 0.08 + val result = trueHemeTestFragment.deviceRatioClassification("10mm",ratio) assertEquals("Normal", result) } @Test fun testDeviceRatioClassificationNormal() { val ratio = 0.22 - val result = hemoCubeFragment.deviceRatioClassification(ratio) + val result = trueHemeTestFragment.deviceRatioClassification("10mm",ratio) assertEquals("Normal", result) } @Test fun testDeviceRatioClassificationNegativeBorderline() { val ratio = 0.235 - val result = hemoCubeFragment.deviceRatioClassification(ratio) + val result = trueHemeTestFragment.deviceRatioClassification("10mm",ratio) + assertEquals("Negative Borderline", result) + } + @Test + fun testDeviceRatioClassificationNegativeBorderlineUpperBound() { + val ratio = 0.265 + val result = trueHemeTestFragment.deviceRatioClassification("10mm",ratio) assertEquals("Negative Borderline", result) } @Test fun testDeviceRatioClassificationSickleCellTraitLowerBound() { - val ratio = 0.251 - val result = hemoCubeFragment.deviceRatioClassification(ratio) - assertEquals("Negative Borderline", result) + val ratio = 0.271 + val result = trueHemeTestFragment.deviceRatioClassification("10mm",ratio) + assertEquals("Sickle Cell Trait", result) } @Test fun testDeviceRatioClassificationSickleCellTraitUpperBound() { val ratio = 0.309 - val result = hemoCubeFragment.deviceRatioClassification(ratio) + val result = trueHemeTestFragment.deviceRatioClassification("10mm",ratio) assertEquals("Sickle Cell Trait", result) } @Test fun testDeviceRatioClassificationPositiveForSickleCell() { + val ratio = 0.312 + val result = trueHemeTestFragment.deviceRatioClassification("10mm",ratio) + assertEquals("Positive for Sickle Cell. HPLC for Confirmation", result) + } + @Test + fun testDeviceRatioClassificationPositiveForSickleCellUpperBound() { val ratio = 0.39 - val result = hemoCubeFragment.deviceRatioClassification(ratio) + val result = trueHemeTestFragment.deviceRatioClassification("10mm",ratio) assertEquals("Positive for Sickle Cell. HPLC for Confirmation", result) } @Test fun testDeviceRatioClassificationSickleCellDiseaseLowerBound() { val ratio = 0.391 - val result = hemoCubeFragment.deviceRatioClassification(ratio) + val result = trueHemeTestFragment.deviceRatioClassification("10mm",ratio) assertEquals("Sickle Cell Disease", result) } @Test fun testDeviceRatioClassificationSickleCellDisease() { - val ratio = 0.45 - val result = hemoCubeFragment.deviceRatioClassification(ratio) + val ratio = 0.691 + val result = trueHemeTestFragment.deviceRatioClassification("10mm",ratio) assertEquals("Sickle Cell Disease", result) } @Test fun testDeviceRatioClassificationInvalid() { val ratio: Double? = null - val result = hemoCubeFragment.deviceRatioClassification(ratio) + val result = trueHemeTestFragment.deviceRatioClassification("10mm",ratio) assertEquals("Invalid", result) } @Test fun findResultWithAdditionalMethods_ValidInput_ReturnsBorderlineNormal() { val result = - hemoCubeFragment.findResultWithAdditionalMethods(0.5, "Negative Borderline", 2.5) + trueHemeTestFragment.findResultWithAdditionalMethods("10mm",0.5, "Negative Borderline", 2.5) assertEquals("Normal", result) } @Test fun findResultWithAdditionalMethods_ValidInput_ReturnsBorderlineSickleCellTrait1() { val result = - hemoCubeFragment.findResultWithAdditionalMethods(0.5, "Negative Borderline", 2.2) + trueHemeTestFragment.findResultWithAdditionalMethods("10mm",0.5, "Negative Borderline", 2.2) assertEquals("Normal", result) } @Test fun findResultWithAdditionalMethods_ValidInput_ReturnsBorderlineSickleCellTrait2() { - val result = hemoCubeFragment.findResultWithAdditionalMethods( - 0.5, + val result = trueHemeTestFragment.findResultWithAdditionalMethods( + "10mm",0.5, "Positive for Sickle Cell. HPLC for Confirmation", 1.4 ) @@ -405,8 +417,8 @@ class HemoCubeFragmentTest { @Test fun findResultWithAdditionalMethods_ValidInput_ReturnsBorderlineSickleCellDisease() { - val result = hemoCubeFragment.findResultWithAdditionalMethods( - 0.5, + val result = trueHemeTestFragment.findResultWithAdditionalMethods( + "10mm",0.5, "Positive for Sickle Cell. HPLC for Confirmation", 1.33 ) @@ -415,14 +427,14 @@ class HemoCubeFragmentTest { @Test fun findResultWithAdditionalMethods_NormalDeviceRatio_ReturnsNormalBelowSlopeRatioThreshold() { - val result = hemoCubeFragment.findResultWithAdditionalMethods(0.5, "Normal", 30.0) + val result = trueHemeTestFragment.findResultWithAdditionalMethods("10mm",0.5, "Normal", 30.0) assertEquals("Normal", result) } @Test fun findResultWithAdditionalMethods_NBL_ReturnsNBL() { - val result = hemoCubeFragment.findResultWithAdditionalMethods( - 0.5, + val result = trueHemeTestFragment.findResultWithAdditionalMethods( + "10mm",0.5, "Negative Borderline, Repeat Test", 70.0 ) @@ -432,14 +444,14 @@ class HemoCubeFragmentTest { @Test fun findResultWithAdditionalMethods_SCT_ReturnsSCT() { val result = - hemoCubeFragment.findResultWithAdditionalMethods(0.5, "Sickle Cell Trait", 70.0) + trueHemeTestFragment.findResultWithAdditionalMethods("10mm",0.5, "Sickle Cell Trait", 70.0) assertEquals("Sickle Cell Trait", result) } @Test fun findResultWithAdditionalMethods_PBL_ReturnsPBL() { - val result = hemoCubeFragment.findResultWithAdditionalMethods( - 0.5, + val result = trueHemeTestFragment.findResultWithAdditionalMethods( + "10mm",0.5, "Positive for Sickle Cell. HPLC for Confirmation", 1.67 ) @@ -449,7 +461,7 @@ class HemoCubeFragmentTest { @Test fun findResultWithAdditionalMethods_SCD_ReturnsSCD() { val result = - hemoCubeFragment.findResultWithAdditionalMethods(0.5, "Sickle Cell Disease", 70.0) + trueHemeTestFragment.findResultWithAdditionalMethods("10mm",0.5, "Sickle Cell Disease", 70.0) assertEquals("Sickle Cell Disease", result) } @@ -461,7 +473,7 @@ class HemoCubeFragmentTest { val led2Average = 0.2 // Act - val result = hemoCubeFragment.reclassifyWithBorderlineMethod2( + val result = trueHemeTestFragment.reclassifyWithBorderlineMethod2( deviceRatio, deviceRatioClass, led2Average @@ -479,7 +491,7 @@ class HemoCubeFragmentTest { val led2Average = 0.14 // Act - val result = hemoCubeFragment.reclassifyWithBorderlineMethod2( + val result = trueHemeTestFragment.reclassifyWithBorderlineMethod2( deviceRatio, deviceRatioClass, led2Average @@ -497,7 +509,7 @@ class HemoCubeFragmentTest { val led2Average = 0.18 // Act - val result = hemoCubeFragment.reclassifyWithBorderlineMethod2( + val result = trueHemeTestFragment.reclassifyWithBorderlineMethod2( deviceRatio, deviceRatioClass, led2Average @@ -515,7 +527,7 @@ class HemoCubeFragmentTest { val led2Average = 0.195 // Act - val result = hemoCubeFragment.reclassifyWithBorderlineMethod2( + val result = trueHemeTestFragment.reclassifyWithBorderlineMethod2( deviceRatio, deviceRatioClass, led2Average @@ -533,7 +545,7 @@ class HemoCubeFragmentTest { val led2Average = 0.189 // Act - val result = hemoCubeFragment.reclassifyWithBorderlineMethod2( + val result = trueHemeTestFragment.reclassifyWithBorderlineMethod2( deviceRatio, deviceRatioClass, led2Average