From d9221a3bb6257327390a344d859a67bcaa9a19af Mon Sep 17 00:00:00 2001 From: chandrashekhar reddy Date: Wed, 9 Oct 2024 15:06:05 +0530 Subject: [PATCH] Submit button check in HemoCubeFragment --- .../hpostesting/data/constant/TestStatus.kt | 2 + .../hpostesting/presentation/MainActivity.kt | 9 ++- .../presentation/dashboard/HomeFragment.kt | 4 +- .../dashboard/SlideshowFragment.kt | 2 +- .../presentation/hb_test/HBTestFragment.kt | 13 +++- .../presentation/hemocube/HemoCubeFragment.kt | 71 ++++++++++++++----- app/src/main/res/values-hi/strings.xml | 3 + app/src/main/res/values-kn/strings.xml | 3 + app/src/main/res/values/strings.xml | 3 + 9 files changed, 89 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/com/example/hpostesting/data/constant/TestStatus.kt b/app/src/main/java/com/example/hpostesting/data/constant/TestStatus.kt index 70de794..b30ab76 100644 --- a/app/src/main/java/com/example/hpostesting/data/constant/TestStatus.kt +++ b/app/src/main/java/com/example/hpostesting/data/constant/TestStatus.kt @@ -35,6 +35,8 @@ enum class TestStatus(val code: Double) { BUFFER_PRINT_STARTED(6.0), BUFFER_PRINT_COMPLETED(7.0), SAMPLE_STARTED(8.0), + CUVETTE_ABSENTT(30.2), + CUVETTE_PRESENTT(30.1), SAMPLE_COMPLETED(9.0), SAMPLE_PRINT_STARTED(10.0), SAMPLE_PRINT_COMPLETED(11.0), 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 dbda545..dd4d298 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/MainActivity.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/MainActivity.kt @@ -18,6 +18,7 @@ import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.content.IntentFilter +import android.content.SharedPreferences import android.content.pm.PackageManager import android.hardware.usb.UsbManager import android.location.Location @@ -52,6 +53,7 @@ class MainActivity : AppCompatActivity() { private val TAG = "MainActivity" private lateinit var fusedLocationClient: FusedLocationProviderClient private lateinit var locationCallback: LocationCallback + private lateinit var sharedPreference: SharedPreferences private val usbReceiver = object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent) { @@ -71,12 +73,17 @@ class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + sharedPreference = getSharedPreferences("HEMOCUBE", Context.MODE_PRIVATE) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) binding.myToolbar.title = "Test Type" setSupportActionBar(binding.myToolbar) - + if ((sharedPreference.getString(Constants.USER_ID, "").toString() == "ADMIN")) { + binding.cvItem3.visibility = View.VISIBLE + }else{ + binding.cvItem3.visibility = View.GONE + } setupListeners() fusedLocationClient = LocationServices.getFusedLocationProviderClient(this) getLocation() diff --git a/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt index 9e24a50..ed6afd6 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt @@ -862,7 +862,9 @@ class HomeFragment : Fragment() { // ) Toast.makeText(requireContext(), "Successfully added- $userId", Toast.LENGTH_SHORT).show() binding.userId.setText("") - binding.etBloodGroup.clearListSelection() + binding.age.setText("") + binding.etBloodGroup.setText("") + // val userData = UserData(_id = userId) // DataHolder.selectedTest = userData // findNavController().navigate(R.id.action_nav_home_to_mainActivity) diff --git a/app/src/main/java/com/example/hpostesting/presentation/dashboard/SlideshowFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/dashboard/SlideshowFragment.kt index 28e54ee..01c9cd7 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/dashboard/SlideshowFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/dashboard/SlideshowFragment.kt @@ -235,7 +235,7 @@ class PrefsFragment : PreferenceFragmentCompat(){ private fun switchFirebaseServer(firebaseConfig: FirebaseConfig) { firebaseManager.switchServer(firebaseConfig) - Toast.makeText(requireContext(), "Switched to ${firebaseConfig.serverName}", Toast.LENGTH_SHORT).show() + Toast.makeText(requireContext(), "Switched to ${firebaseConfig.serverName}, Please wait for few seconds", Toast.LENGTH_SHORT).show() Toast.makeText(requireContext(), "Restart needed restarting the app", Toast.LENGTH_SHORT).show() firebaseManager.restartApp() currentServerPreference.summary = "Current Server: ${firebaseConfig.serverName}" diff --git a/app/src/main/java/com/example/hpostesting/presentation/hb_test/HBTestFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/hb_test/HBTestFragment.kt index 7c579cf..dec381c 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/hb_test/HBTestFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/hb_test/HBTestFragment.kt @@ -121,6 +121,8 @@ class HBTestFragment : Fragment() { } binding.btnBuffer.setOnClickListener { binding.btnBuffer.visibility = View.GONE + binding.btnSample.isEnabled = false + binding.btnSample.isClickable = false hBTestViewModel.messages.postValue("Buffer Started") runBCommand() } @@ -174,7 +176,7 @@ class HBTestFragment : Fragment() { override fun onUsbRead(data: ByteArray?) { data?.let { val stringData = String(it) - deviceId = stringData + //deviceId = stringData hBTestViewModel.messages.postValue(stringData) binding.tvSubtitle4.text = stringData } @@ -224,6 +226,12 @@ class HBTestFragment : Fragment() { } }) } + fun extractV2HardwareId(input: String): String? { + val pattern = Regex("SNS\\s*(.*?)\\s*SNE") + val matchResult: MatchResult? = pattern.find(input) + + return matchResult?.groups?.get(1)?.value + } private fun listenToHemoCube() { @@ -240,10 +248,11 @@ class HBTestFragment : Fragment() { resultData += stringData hBTestViewModel.messages.postValue(resultData) // binding.tvSubtitle4.text = resultData - if (stringData.contains("SN")) { + if (stringData.contains("SNE")) { val slData = stringData.split(" ") if (slData.size > 1) { val hardwareId = slData[1].trim() + deviceId = extractV2HardwareId(resultData).toString() hBTestViewModel.messages.postValue("Place buffer and click below button to start test") // with(sharedPreferences.edit()) { // putString(Constants.DEVICE_ID, hardwareId) diff --git a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeFragment.kt index bd56d32..61b9449 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeFragment.kt @@ -87,6 +87,8 @@ class HemoCubeFragment : Fragment() { private var checkCuvette = false private var checkRefreshCuvette = false private var checkCuvetteSam = false + private var checkSubmit = false + private var submitClick = false private var sampleClick = false private var refreshClick = false private lateinit var binding: FragmentHemoCubeReferenceBinding @@ -182,23 +184,44 @@ class HemoCubeFragment : Fragment() { binding.tvSubtitle4.movementMethod = ScrollingMovementMethod() binding.tvDeviceMessages.movementMethod = ScrollingMovementMethod() binding.btnSubmit.setOnClickListener { - with(sharedPreferences.edit()) { - putBoolean(Constants.QUICK_CAPTURE, false) - apply() +// with(sharedPreferences.edit()) { +// putBoolean(Constants.QUICK_CAPTURE, false) +// apply() +// } +// if(DataHolder.hemoCubeTestData!!.classificationResult != "Invalid"){ +// DataHolder.sampleReadCounter++ +// } +// binding.btnSubmit.isEnabled = false +// binding.btnSubmit.isClickable = false +// activity?.runOnUiThread { +// Log.d("HemoCubeFragment","Test Process completed, result saved") +// binding.progressBar.visibility = View.VISIBLE +// binding.btnSubmit.visibility = View.GONE +// } + submitClick = true + if(checkSubmit){ + with(sharedPreferences.edit()) { + putBoolean(Constants.QUICK_CAPTURE, false) + apply() + } + if(DataHolder.hemoCubeTestData!!.classificationResult != "Invalid"){ + DataHolder.sampleReadCounter++ + } + binding.btnSubmit.isEnabled = false + binding.btnSubmit.isClickable = false + activity?.runOnUiThread { + Log.d("HemoCubeFragment","Test Process completed, result saved") + binding.progressBar.visibility = View.VISIBLE + binding.btnSubmit.visibility = View.GONE + } + hemoCubeViewModel.uploadHemoCubeResultToDatabase( + isOnline, true, sharedPreferences.getString(Constants.KIT_NUMBER, ""),quickCapture + ) + }else{ + checkCuvettePresence() + binding.btnSubmit.isEnabled = true + binding.btnSubmit.isClickable = true } - if(DataHolder.hemoCubeTestData!!.classificationResult != "Invalid"){ - DataHolder.sampleReadCounter++ - } - binding.btnSubmit.isEnabled = false - binding.btnSubmit.isClickable = false - activity?.runOnUiThread { - Log.d("HemoCubeFragment","Test Process completed, result saved") - binding.progressBar.visibility = View.VISIBLE - binding.btnSubmit.visibility = View.GONE - } - hemoCubeViewModel.uploadHemoCubeResultToDatabase( - isOnline, true, sharedPreferences.getString(Constants.KIT_NUMBER, ""),quickCapture - ) } binding.tvTitle2.visibility = View.GONE @@ -664,6 +687,22 @@ class HemoCubeFragment : Fragment() { } showRetryButtonForCuvette() } + resultData.contains("#CIN") && this.submitClick && this.testStatusCode < TestStatus.CUVETTE_PRESENTT.code -> { + hemoCubeViewModel.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)) + this.testStatusCode = TestStatus.CUVETTE_ABSENTT.code + activity?.runOnUiThread { + checkSubmit = true + binding.testing.visibility = View.GONE + } + } + resultData.contains("#BS") && this.testStatusCode < TestStatus.BUFFER_STARTED.code -> { hemoCubeViewModel.messages.postValue(getString(R.string.buffer_started)) this.testStatusCode = TestStatus.BUFFER_STARTED.code diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml index 86786a8..6eecf46 100644 --- a/app/src/main/res/values-hi/strings.xml +++ b/app/src/main/res/values-hi/strings.xml @@ -305,4 +305,7 @@ Quick Capture Reset password for this device Calibrate the device + Cuvette Present , Please Remove Cuvette And Try Again + Cuvette Absent,Now You Can Submit + \ No newline at end of file diff --git a/app/src/main/res/values-kn/strings.xml b/app/src/main/res/values-kn/strings.xml index 4a28eb9..c44b312 100644 --- a/app/src/main/res/values-kn/strings.xml +++ b/app/src/main/res/values-kn/strings.xml @@ -304,6 +304,9 @@ ತ್ವರಿತ ಕ್ಯಾಪ್ಚರ್ ಈ ಸಾಧನಕ್ಕಾಗಿ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಮರುಹೊಂದಿಸಿ ಸಾಧನವನ್ನು ಮಾಪನಾಂಕ ಮಾಡಿ + Cuvette Present , Please Remove Cuvette And Try Again + Cuvette Absent,Now You Can Submit + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e0b11a0..1b1ce43 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -305,4 +305,7 @@ Quick Capture Reset password for this device Calibrate Device + Cuvette Present , Please Remove Cuvette And Try Again + Cuvette Absent,Now You Can Submit + \ No newline at end of file