Updted the string, added the sutosmbt button in settings

This commit is contained in:
Sathwik
2025-07-28 16:50:44 +05:30
parent 669cf00d60
commit 7a0064a0d3
6 changed files with 99 additions and 22 deletions

View File

@@ -22,7 +22,7 @@ android {
minSdk 30
targetSdk 34
versionCode 138
versionName "2.1.133.3"
versionName "2.1.133"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
externalNativeBuild {
cmake {

View File

@@ -24,6 +24,7 @@ import android.widget.AdapterView
import android.widget.ArrayAdapter
import android.widget.Toast
import androidx.core.content.ContextCompat
import androidx.core.content.edit
import androidx.fragment.app.Fragment
import androidx.preference.ListPreference
import androidx.preference.Preference
@@ -58,7 +59,6 @@ class SlideshowFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.nameEditText.setText(sharedPreferences.getString(Constants.LABNAME, ""))
selectedItem = sharedPreferences.getString(Constants.CUVETTE_SIZE, "10mm").toString()
binding.btnGo.setOnClickListener {
@@ -120,6 +120,7 @@ class PrefsFragment : PreferenceFragmentCompat() {
private lateinit var serverPreference: Preference
private lateinit var currentServerPreference: Preference
lateinit var firebaseManager: FirebaseManager
var autoSmbtValue = false
private var topDevMode = false
lateinit var databaseRepository: DatabaseRepository
@@ -130,6 +131,7 @@ class PrefsFragment : PreferenceFragmentCompat() {
topDevMode = firebaseManager.getDevMode()
val sharedPreference =
requireContext().getSharedPreferences("HEMOCUBE", Context.MODE_PRIVATE)
autoSmbtValue = sharedPreference.getBoolean("AutSmbt", false)
val preferenceScreen = preferenceManager.createPreferenceScreen(requireContext())
val currentServer = firebaseManager.getLastSelectedServer().serverName
@@ -200,6 +202,24 @@ class PrefsFragment : PreferenceFragmentCompat() {
}
}
val autosmbt = SwitchPreferenceCompat(requireContext()).apply {
title = "Auto submit"
summary = "Enable or disable Auto submit"
icon =
ContextCompat.getDrawable(requireContext(), R.drawable.baseline_developer_mode_24)
key = "auto_submit_key" // Unique key for SharedPreferences
// Load toggle state from SharedPreferences
isChecked = autoSmbtValue
setOnPreferenceChangeListener { _, newValue ->
val isEnabled = newValue as Boolean
sharedPreference.edit {
putBoolean("AutSmbt",isEnabled)
}
true
}
}
val appVersionPreference = Preference(requireContext()).apply {
title = "App Version"
summary =
@@ -218,6 +238,8 @@ class PrefsFragment : PreferenceFragmentCompat() {
if (preferenceScreen.findPreference<SwitchPreferenceCompat>("developer_options") == null) {
preferenceScreen.addPreference(developerToggle)
preferenceScreen.addPreference(autosmbt)
}
if (preferenceScreen.findPreference<ListPreference>("server_preference") == null) {
preferenceScreen.addPreference(serverSelectorPreference)
@@ -234,6 +256,7 @@ class PrefsFragment : PreferenceFragmentCompat() {
if (firebaseManager.getDevMode()) {
developerToggle.isChecked = true // Ensure it's checked
preferenceScreen.addPreference(developerToggle)
preferenceScreen.addPreference(autosmbt)
preferenceScreen.addPreference(serverSelectorPreference)
}

View File

@@ -55,8 +55,11 @@ 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 TrueHemeTestFragment : Fragment() {
private var doWeNeedAutoSmbt = false
private var positiveBoderLine10mm1=Constants.positiveBoderLineMetricCheck10mmMin
private var positiveBoderLine10mm2=Constants.positiveBoderLineMetricCheck10mmMax
private var negativeBoderLine10mm1=Constants.negativeBoderLineMetricCheck10mmMin
@@ -90,6 +93,7 @@ class TrueHemeTestFragment : Fragment() {
private var temperature=""
private var cuvetteSizeSP = "10mm"
private var checkCuvette = false
private var checkCuvettePresent = false
private var checkRefreshCuvette = false
private var checkCuvetteSam = false
private var checkSubmit = false
@@ -137,7 +141,7 @@ class TrueHemeTestFragment : Fragment() {
binding = FragmentHemoCubeReferenceBinding.inflate(inflater, container, false)
sharedPreferences =
requireContext().getSharedPreferences("HEMOCUBE", Context.MODE_PRIVATE)
doWeNeedAutoSmbt = sharedPreferences.getBoolean("AutSmbt", false)
cuvetteSizeSP = sharedPreferences.getString(Constants.CUVETTE_SIZE,"10mm").toString()
testState = TestState(
@@ -163,9 +167,11 @@ class TrueHemeTestFragment : Fragment() {
lifecycleScope.launch {
delay(100)
}
checkCuvettePresence()
lifecycleScope.launch {
delay(3000)
}
activity?.runOnUiThread {
if (checkSubmit) {
with(sharedPreferences.edit()) {
putBoolean(Constants.QUICK_CAPTURE, false)
apply()
@@ -186,15 +192,9 @@ class TrueHemeTestFragment : Fragment() {
sharedPreferences.getString(Constants.KIT_NUMBER, ""),
quickCapture
)
Toast.makeText(requireContext(), "Auto Sumbitted", Toast.LENGTH_SHORT).show()
} else {
checkCuvettePresence()
binding.btnSubmit.isEnabled = true
binding.btnSubmit.isClickable = true
Toast.makeText(requireContext(), "Auto Sumbit Failed ", Toast.LENGTH_SHORT).show()
binding.btnSubmit.visibility = View.VISIBLE
}
Toast.makeText(requireContext(), "Auto Submitted", Toast.LENGTH_SHORT).show()
}
}
@SuppressLint("SetTextI18n")
@@ -394,11 +394,32 @@ class TrueHemeTestFragment : Fragment() {
}
if (result == "Local") {
showToast(R.string.internt_not_local)
startActivity(Intent(requireActivity(), DashboardActivity::class.java))
//got it
if (doWeNeedAutoSmbt) {
if (!checkCuvettePresent) {
Toast.makeText(context, "Gooing back 2", Toast.LENGTH_SHORT).show()
startActivity(Intent(requireActivity(), DashboardActivity::class.java))
}else{
Toast.makeText(context, "Remove Cuvette", Toast.LENGTH_SHORT).show()
}
}else{
startActivity(Intent(requireActivity(), DashboardActivity::class.java))
}
}
if (result == "Error") {
showToast(R.string.error_local)
startActivity(Intent(requireActivity(), DashboardActivity::class.java))
//got it
if (doWeNeedAutoSmbt) {
if (!checkCuvettePresent) {
Toast.makeText(context, "Gooing back", Toast.LENGTH_SHORT).show()
startActivity(Intent(requireActivity(), DashboardActivity::class.java))
}else{
Toast.makeText(context, "Remove Cuvette", Toast.LENGTH_SHORT).show()
}
}else{
startActivity(Intent(requireActivity(), DashboardActivity::class.java))
}
}
binding.progressBar.visibility = View.GONE
@@ -443,7 +464,17 @@ class TrueHemeTestFragment : Fragment() {
val i = Intent(
requireContext().applicationContext, DashboardActivity::class.java
)
startActivity(i)
//got it
if (doWeNeedAutoSmbt){
if (!checkCuvettePresent){
Toast.makeText(context, "Gooing back 3", Toast.LENGTH_SHORT).show()
startActivity(i)
}else{
Toast.makeText(context, "Remove Cuvette", Toast.LENGTH_SHORT).show()
}
}else {
startActivity(i)
}
}
} else {
trueHemeTestViewModel.messages.postValue("Reading $repeatReadingCount completed")
@@ -652,6 +683,7 @@ class TrueHemeTestFragment : Fragment() {
}
}
resultData.contains("#AIN") && sampleClick && this.testStatusCode <= TestStatus.CUVETTE_ABSENTS.code -> {
checkCuvettePresent = false
trueHemeTestViewModel.messages.postValue(getString(R.string.cuvette_absent))
this.testStatusCode = TestStatus.CUVETTE_ABSENTS.code
activity?.runOnUiThread {
@@ -664,6 +696,7 @@ class TrueHemeTestFragment : Fragment() {
this.testStatusCode = TestStatus.CUVETTE_PRESENTR.code
activity?.runOnUiThread {
checkRefreshCuvette = true
checkCuvettePresent =true
binding.testing.visibility = View.GONE
binding.btnRetryCheckCuvette.visibility = View.GONE
binding.btnPlaceRefreshbuffer.visibility = View.VISIBLE
@@ -674,6 +707,7 @@ class TrueHemeTestFragment : Fragment() {
}
}
resultData.contains("#AIN") && refreshClick && this.testStatusCode <= TestStatus.CUVETTE_ABSENTR.code -> {
checkCuvettePresent = false
trueHemeTestViewModel.messages.postValue(getString(R.string.cuvette_absent))
this.testStatusCode = TestStatus.CUVETTE_ABSENTR.code
activity?.runOnUiThread {
@@ -684,6 +718,7 @@ class TrueHemeTestFragment : Fragment() {
showRetryButtonForCuvette()
}
resultData.contains("#CIN") && this.testStatusCode < TestStatus.CUVETTE_PRESENT.code -> {
checkCuvettePresent = true
trueHemeTestViewModel.messages.postValue(getString(R.string.cuvette_present))
this.testStatusCode = TestStatus.CUVETTE_PRESENT.code
activity?.runOnUiThread {
@@ -697,6 +732,7 @@ class TrueHemeTestFragment : Fragment() {
}
}
resultData.contains("#AIN") && this.testStatusCode <= TestStatus.CUVETTE_ABSENT.code -> {
checkCuvettePresent = false
trueHemeTestViewModel.messages.postValue(getString(R.string.cuvette_absent))
this.testStatusCode = TestStatus.CUVETTE_ABSENT.code
activity?.runOnUiThread {
@@ -709,7 +745,12 @@ class TrueHemeTestFragment : Fragment() {
//need to change where check submit
resultData.contains("#CIN") && this.submitClick && this.testStatusCode < TestStatus.CUVETTE_PRESENTT.code -> {
trueHemeTestViewModel.messages.postValue(getString(R.string.cuvette_presentt))
checkCuvettePresent = true
if (doWeNeedAutoSmbt){
trueHemeTestViewModel.messages.postValue(getString(R.string.cuvette_presentnt))
}else {
trueHemeTestViewModel.messages.postValue(getString(R.string.cuvette_presentt))
}
this.testStatusCode = TestStatus.CUVETTE_PRESENTT.code
activity?.runOnUiThread {
binding.testing.visibility = View.GONE
@@ -718,6 +759,7 @@ class TrueHemeTestFragment : Fragment() {
resultData.contains("#AIN") && this.submitClick && this.testStatusCode <= TestStatus.CUVETTE_ABSENTT.code -> {
checkCuvettePresent = false
trueHemeTestViewModel.messages.postValue(getString(R.string.cuvette_absentt))
this.testStatusCode = TestStatus.CUVETTE_ABSENTT.code
activity?.runOnUiThread {
@@ -1011,11 +1053,14 @@ class TrueHemeTestFragment : Fragment() {
activity?.runOnUiThread {
//changing to invisible
binding.btnSubmit.visibility = View.GONE
binding.btnSubmit.visibility = View.VISIBLE
// binding.btnSubmit.isEnabled = true
// binding.btnSubmit.isClickable = true
// binding.clParent.setBackgroundColor(Color.parseColor("#edfffd"))
autoSmbt(true)
if (doWeNeedAutoSmbt) {
binding.btnSubmit.visibility = View.GONE
autoSmbt(doWeNeedAutoSmbt)
}
binding.ivCheck.visibility = View.VISIBLE
}
@@ -1703,7 +1748,6 @@ class TrueHemeTestFragment : Fragment() {
(activity as TrueHemeTestActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.CHECK_CUVETTE_COMMAND,
object : UsbServiceListener {
override fun onUsbRead(data: ByteArray?) {}
override fun onUsbError(e: Exception?) {
trueHemeTestViewModel.progressBar.postValue(false)
}
@@ -1723,7 +1767,15 @@ class TrueHemeTestFragment : Fragment() {
}
})
}
fun goback(){
checkCuvettePresence()
lifecycleScope.launch {
delay(4000)
}
if (!checkCuvettePresent) {
startActivity(Intent(requireActivity(), DashboardActivity::class.java))
}
}
private fun startSampleProcess() {
trueHemeTestViewModel.progressBar.postValue(true)

View File

@@ -307,5 +307,6 @@
<string name="calibrate_device">Calibrate the device</string>
<string name="cuvette_presentt">Cuvette Present , Please Remove Cuvette And Try Again</string>
<string name="cuvette_absentt">Cuvette Absent,Now You Can Submit</string>
<string name="cuvette_presentnt">Test Done, Cuvette Present, Please Remove Cuvette And Goback</string>
</resources>

View File

@@ -306,7 +306,7 @@
<string name="calibrate_device">ಸಾಧನವನ್ನು ಮಾಪನಾಂಕ ಮಾಡಿ</string>
<string name="cuvette_presentt">Cuvette Present , Please Remove Cuvette And Try Again</string>
<string name="cuvette_absentt">Cuvette Absent,Now You Can Submit</string>
<string name="cuvette_presentnt">Test Done, Cuvette Present, Please Remove Cuvette And Goback</string>
<!-- Add translations for other strings -->
</resources>

View File

@@ -306,6 +306,7 @@
<string name="reset_password_for_this_device">Reset password for this device</string>
<string name="calibrate_device">Calibrate Device</string>
<string name="cuvette_presentt">Cuvette Present , Please Remove Cuvette And Try Again</string>
<string name="cuvette_presentnt">Test Done, Cuvette Present, Please Remove Cuvette And Goback</string>
<string name="cuvette_absentt">Cuvette Absent,Now You Can Submit</string>
</resources>