fix diagnostics reading

- show and hide start button
	- show toast message after db upload
	- fix deviceid blank
This commit is contained in:
Pritimay Sarkar
2023-10-31 01:57:49 +05:30
parent 044c5db161
commit 51f3e31f27

View File

@@ -7,6 +7,7 @@ import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import androidx.lifecycle.MutableLiveData
@@ -49,6 +50,7 @@ class DiagnosticsFragment : Fragment() {
private fun initViews() {
binding.btnSubmit.visibility = View.GONE
listenToHemoCube()
getDeviceId()
binding.btnSubmit.setOnClickListener {
@@ -68,6 +70,17 @@ class DiagnosticsFragment : Fragment() {
binding.tvSubtitle4.text = it
Log.e("diagnostics",binding.tvSubtitle4.text.toString())
}
diagnosticsViewModel.fireBaseUpload.observe(viewLifecycleOwner) { result ->
if (result == "Success") {
showToast("Diagnostics data uploaded successfully")
}
if (result == "Local") {
showToast("Diagnostics uploading failed, note it down manually")
}
binding.progressBar.visibility = View.GONE
}
}
private fun getDeviceId() {
@@ -79,15 +92,6 @@ class DiagnosticsFragment : Fragment() {
data?.let {
val stringData = String(it)
diagnosticsViewModel.messages.postValue(stringData)
val pattern = Regex("([A-Z]+)\\s(\\d+)")
val matchResult = pattern.find(stringData)
if (matchResult != null) {
val (sn, hardwareId) = matchResult.destructured
with(sharedPreferences.edit()) {
putString(Constants.DEVICE_ID, hardwareId)
apply()
}
}
binding.tvSubtitle4.text = stringData
}
}
@@ -112,8 +116,6 @@ class DiagnosticsFragment : Fragment() {
})
}
private fun listenToHemoCube() {
val fullReadOutput = StringBuilder()
@@ -128,6 +130,19 @@ class DiagnosticsFragment : Fragment() {
fullReadOutput.append(stringData)
resultData += stringData
binding.tvSubtitle4.text = resultData
if (stringData.contains("SN")) {
val slData = stringData.split(" ")
if (slData.size > 1) {
val hardwareId = slData[1].trim()
with(sharedPreferences.edit()) {
putString(Constants.DEVICE_ID, hardwareId)
apply()
}
}
activity?.runOnUiThread {
binding.btnSubmit.visibility = View.VISIBLE
}
}
}
if (resultData.contains("END") || fullReadOutput.contains("END")) {
@@ -176,5 +191,7 @@ class DiagnosticsFragment : Fragment() {
return parsedData
}
private fun showToast(message: String) {
Toast.makeText(requireContext(), message, Toast.LENGTH_SHORT).show()
}
}