fix msg fragmentation in app and add log dsiplay for admin
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -40,6 +40,7 @@ object Constants {
|
||||
const val USER_ID = "usernameId"
|
||||
|
||||
val STATICID = listOf(
|
||||
"ADMIN",
|
||||
"VIZ-1000-0004",
|
||||
"VIZ-1000-0005",
|
||||
"VIZ-1000-0006",
|
||||
@@ -80,6 +81,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<String, List<List<Double>>> = mapOf<String, List<List<Double>>>(
|
||||
"HCV-000-3001" to listOf(
|
||||
listOf(1.313, -0.89), // LED1, 435nm
|
||||
|
||||
@@ -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)
|
||||
)
|
||||
|
||||
@@ -51,6 +51,7 @@ class HemoCubeViewModel @Inject constructor(
|
||||
val deviceData = MutableLiveData<DeviceData?>()
|
||||
val networkStatusLiveData: LiveData<Boolean>
|
||||
get() = _networkStatusLiveData
|
||||
val deviceMessages = MutableLiveData<String?>()
|
||||
val fireBaseUpload = MutableLiveData<String>()
|
||||
val fireBaseBulkUpload = MutableLiveData<String>()
|
||||
|
||||
|
||||
@@ -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" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_device_messages"
|
||||
style="@style/title1_1"
|
||||
android:visibility="gone"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="180dp"
|
||||
android:layout_marginHorizontal="24dp"
|
||||
android:layout_marginTop="72dp"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="11sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/error_message" />
|
||||
|
||||
<Button
|
||||
android:visibility="gone"
|
||||
android:id="@+id/btn_digitalCard"
|
||||
|
||||
Reference in New Issue
Block a user