From d1b5ca32bf5eeda9dcbcd6c4b7f4ff48a6e9ce4e Mon Sep 17 00:00:00 2001 From: Pritimay Sarkar Date: Mon, 18 Dec 2023 12:48:07 +0530 Subject: [PATCH] fix msg fragmentation in app and add log dsiplay for admin --- app/build.gradle | 2 +- .../hpostesting/data/constant/Constants.kt | 14 ++++++++ .../presentation/hemocube/HemoCubeFragment.kt | 33 ++++++++++++++----- .../hemocube/HemoCubeViewModel.kt | 1 + .../layout/fragment_hemo_cube_reference.xml | 21 ++++++++++-- 5 files changed, 59 insertions(+), 12 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 1943d1d..0a45e20 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -14,7 +14,7 @@ android { compileSdk 34 namespace 'in.sminnovations.hpostesting' - // prod - production, preprod - preproduction, quality - qc, + // prod - production, preprod - preproduction, quality - qc defaultConfig { applicationId "in.sminnovations.hpostesting" minSdk 21 diff --git a/app/src/main/java/com/example/hpostesting/data/constant/Constants.kt b/app/src/main/java/com/example/hpostesting/data/constant/Constants.kt index f26147b..891c3a5 100644 --- a/app/src/main/java/com/example/hpostesting/data/constant/Constants.kt +++ b/app/src/main/java/com/example/hpostesting/data/constant/Constants.kt @@ -40,6 +40,7 @@ object Constants { const val USER_ID = "usernameId" val STATICID = listOf( + "ADMIN", "VIZ-1000-0004", "VIZ-1000-0005", "VIZ-1000-0006", @@ -88,6 +89,19 @@ object Constants { const val BUFFER_LED_LOWER_BOUND = 21000 const val BUFFER_LED_UPPER_BOUND = 24500 + const val TEST_STATUS_CODE_TEST_STARTED = 1.0 + const val TEST_STATUS_CODE_CONFIG_STARTED = 2.0 + const val TEST_STATUS_CODE_CONFIG_COMPLETED = 3.0 + const val TEST_STATUS_CODE_BUFFER_STARTED = 4.0 + const val TEST_STATUS_CODE_BUFFER_COMPLETED = 5.0 + const val TEST_STATUS_CODE_BUFFER_PRINT_STARTED = 6.0 + const val TEST_STATUS_CODE_BUFFER_PRINT_COMPLETED = 7.0 + const val TEST_STATUS_CODE_SAMPLE_STARTED = 8.0 + const val TEST_STATUS_CODE_SAMPLE_COMPLETED = 9.0 + const val TEST_STATUS_CODE_SAMPLE_PRINT_STARTED = 10.0 + const val TEST_STATUS_CODE_SAMPLE_PRINT_COMPLETED = 11.0 + const val TEST_STATUS_CODE_TEST_COMPLETED = 12.0 + val DEVICE_CONFIGURATION: Map>> = mapOf>>( "HCV-000-3001" to listOf( listOf(1.313, -0.89), // LED1, 435nm 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 f7ffeb0..7128812 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 @@ -57,6 +57,7 @@ class HemoCubeFragment : Fragment() { private var validationError = false private var deviceHardwareId = "" private var allErrorMessages = "" + private var testStatusCode = 0.0 override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?, @@ -121,6 +122,11 @@ class HemoCubeFragment : Fragment() { } + if (sharedPreferences.getString(Constants.USER_ID, "").toString() == "ADMIN") { + activity?.runOnUiThread { + binding.tvDeviceMessages.visibility = View.VISIBLE + } + } } private fun observeViewModel() { @@ -171,6 +177,10 @@ class HemoCubeFragment : Fragment() { hemoCubeViewModel.messages.observe(viewLifecycleOwner) { binding.tvSubtitle4.text = it } + + hemoCubeViewModel.deviceMessages.observe(viewLifecycleOwner) { + binding.tvDeviceMessages.text = it + } } private fun checkAndStartProcess() { @@ -251,7 +261,7 @@ class HemoCubeFragment : Fragment() { data?.let { val stringData = String(it) fullReadOutput.append(stringData) - handleUsbData(stringData, fullReadOutput) + handleUsbData(stringData, testStatusCode) } } @@ -284,15 +294,16 @@ class HemoCubeFragment : Fragment() { }) } - private fun handleUsbData(stringData: String, fullReadOutput: StringBuilder) { + private fun handleUsbData(stringData: String, testStatusCode: Double) { if (stringData.contains("#")) { isTestOngoing = true } resultData += stringData + hemoCubeViewModel.deviceMessages.postValue(resultData) when { - resultData.contains("SNE") -> { + resultData.contains("SNE") && this.testStatusCode < Constants.TEST_STATUS_CODE_CONFIG_COMPLETED -> { val pattern = Regex("HCV-\\d{3}-\\d{4}") val matchResult = pattern.find(resultData) val hardwareId = matchResult?.value @@ -303,6 +314,7 @@ class HemoCubeFragment : Fragment() { putString(Constants.DEVICE_ID, deviceHardwareId) apply() } + this.testStatusCode = Constants.TEST_STATUS_CODE_CONFIG_COMPLETED } else { hemoCubeViewModel.messages.postValue("Config error") } @@ -312,32 +324,37 @@ class HemoCubeFragment : Fragment() { hemoCubeViewModel.messages.postValue(getString(R.string.start)) } - stringData.contains("#BS") -> { + resultData.contains("#BS") && this.testStatusCode < Constants.TEST_STATUS_CODE_BUFFER_STARTED -> { hemoCubeViewModel.messages.postValue(getString(R.string.buffer_started)) + this.testStatusCode = Constants.TEST_STATUS_CODE_BUFFER_STARTED } - stringData.contains("#BC") -> { + resultData.contains("#BC") && this.testStatusCode < Constants.TEST_STATUS_CODE_BUFFER_COMPLETED -> { + this.testStatusCode = Constants.TEST_STATUS_CODE_BUFFER_COMPLETED activity?.runOnUiThread { binding.tvSubtitle4.text = getString(R.string.buffer_completed) binding.btnSamplestart.visibility = View.VISIBLE } } - stringData.contains("#SS") -> { + resultData.contains("#SS") && this.testStatusCode < Constants.TEST_STATUS_CODE_SAMPLE_STARTED -> { + this.testStatusCode = Constants.TEST_STATUS_CODE_SAMPLE_STARTED activity?.runOnUiThread { binding.tvSubtitle4.text = getString(R.string.sample_started) binding.btnSamplestart.visibility = View.GONE } } - stringData.contains("#SC") -> { + resultData.contains("#SC") && this.testStatusCode < Constants.TEST_STATUS_CODE_SAMPLE_COMPLETED -> { + this.testStatusCode = Constants.TEST_STATUS_CODE_SAMPLE_COMPLETED hemoCubeViewModel.messages.postValue( getString(R.string.sample_completed) + "\n" + getString(R.string.gathering_data)) fetchResult() testingTrace.stop() } - resultData.contains("REND") -> { + resultData.contains("REND") && this.testStatusCode < Constants.TEST_STATUS_CODE_SAMPLE_PRINT_COMPLETED -> { + this.testStatusCode = Constants.TEST_STATUS_CODE_SAMPLE_PRINT_COMPLETED hemoCubeViewModel.messages.postValue( getString(R.string.data_collected_processing_data) ) diff --git a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeViewModel.kt b/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeViewModel.kt index b9af079..f32fa04 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeViewModel.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeViewModel.kt @@ -51,6 +51,7 @@ class HemoCubeViewModel @Inject constructor( val deviceData = MutableLiveData() val networkStatusLiveData: LiveData get() = _networkStatusLiveData + val deviceMessages = MutableLiveData() val fireBaseUpload = MutableLiveData() val fireBaseBulkUpload = MutableLiveData() diff --git a/app/src/main/res/layout/fragment_hemo_cube_reference.xml b/app/src/main/res/layout/fragment_hemo_cube_reference.xml index a9aa2dd..9b166f9 100644 --- a/app/src/main/res/layout/fragment_hemo_cube_reference.xml +++ b/app/src/main/res/layout/fragment_hemo_cube_reference.xml @@ -195,16 +195,31 @@ style="@style/title1_1" android:visibility="gone" android:layout_width="match_parent" - android:layout_height="80dp" + android:layout_height="40dp" android:layout_marginHorizontal="24dp" - android:layout_marginTop="172dp" + android:layout_marginTop="72dp" android:gravity="center" android:textColor="@color/red" - android:textSize="18sp" + android:textSize="12sp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/btn_submit" /> + +