diff --git a/app/build.gradle b/app/build.gradle
index 41f092e..494a6b9 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -16,7 +16,7 @@ android {
// prod - production, preprod - preproduction, quality - qc, dev - development
defaultConfig {
- applicationId "in.sminnovations.hpostesting.preprod"
+ applicationId "in.sminnovations.hpostesting.dev"
minSdk 21
targetSdk 34
versionCode 91
diff --git a/app/src/main/java/com/example/hpostesting/data/dao/MyDataBase.kt b/app/src/main/java/com/example/hpostesting/data/dao/MyDataBase.kt
index 86ad9cb..b380365 100644
--- a/app/src/main/java/com/example/hpostesting/data/dao/MyDataBase.kt
+++ b/app/src/main/java/com/example/hpostesting/data/dao/MyDataBase.kt
@@ -8,7 +8,7 @@ import com.example.hpostesting.data.model.patient.DeviceData
import com.example.hpostesting.data.model.patient.HemoCubeTestData
import com.example.hpostesting.data.model.patient.UserData
-@Database(entities = [UserData::class, HemoCubeTestData::class, DeviceData::class, BufferCheckData::class], version = 20, exportSchema = false)
+@Database(entities = [UserData::class, HemoCubeTestData::class, DeviceData::class, BufferCheckData::class], version = 21, exportSchema = false)
@TypeConverters(Converters::class)
abstract class MyDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
diff --git a/app/src/main/java/com/example/hpostesting/data/model/patient/HemoCubeTestData.kt b/app/src/main/java/com/example/hpostesting/data/model/patient/HemoCubeTestData.kt
index 4a200d4..52c7a5f 100644
--- a/app/src/main/java/com/example/hpostesting/data/model/patient/HemoCubeTestData.kt
+++ b/app/src/main/java/com/example/hpostesting/data/model/patient/HemoCubeTestData.kt
@@ -76,5 +76,9 @@ data class HemoCubeTestData(
var batteryMaxCapacity: String = "",
var batteryTemperature: String = "",
var batteryVoltage: String = "",
- var molbioFlag: Boolean = false
+ var molbioFlag: Boolean = false,
+ var quickCapture: Boolean = false,
+ var solution: String? = "",
+ var concentration: String? = "",
+ var volume: String? = "",
)
diff --git a/app/src/main/java/com/example/hpostesting/presentation/assurance/AssuranceControlsActivity.kt b/app/src/main/java/com/example/hpostesting/presentation/assurance/AssuranceControlsActivity.kt
index 687baf6..1774a02 100644
--- a/app/src/main/java/com/example/hpostesting/presentation/assurance/AssuranceControlsActivity.kt
+++ b/app/src/main/java/com/example/hpostesting/presentation/assurance/AssuranceControlsActivity.kt
@@ -1,5 +1,8 @@
package com.example.hpostesting.presentation.assurance
+import android.content.Context
+import android.content.SharedPreferences
+import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import dagger.hilt.android.AndroidEntryPoint
import `in`.sminnovations.hpostesting.databinding.ActivityAssuranceControlsBinding
@@ -7,6 +10,19 @@ import `in`.sminnovations.hpostesting.databinding.ActivityAssuranceControlsBindi
@AndroidEntryPoint
class AssuranceControlsActivity: AppCompatActivity() {
private lateinit var binding: ActivityAssuranceControlsBinding
+ private lateinit var sharedPreference: SharedPreferences
-
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ binding = ActivityAssuranceControlsBinding.inflate(layoutInflater)
+ sharedPreference = this.getSharedPreferences("HEMOCUBE", Context.MODE_PRIVATE)
+ setContentView(binding.root)
+
+ if (savedInstanceState == null) {
+ supportFragmentManager.beginTransaction()
+ .replace(binding.fgAssuranceControls.id, AssuranceControlsFragment())
+ .commit()
+ }
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/hpostesting/presentation/assurance/AssuranceControlsFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/assurance/AssuranceControlsFragment.kt
index a3937e1..9239671 100644
--- a/app/src/main/java/com/example/hpostesting/presentation/assurance/AssuranceControlsFragment.kt
+++ b/app/src/main/java/com/example/hpostesting/presentation/assurance/AssuranceControlsFragment.kt
@@ -1,13 +1,24 @@
package com.example.hpostesting.presentation.assurance
+import android.R
import android.content.Context
+import android.content.Intent
import android.content.SharedPreferences
+import android.os.Build
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import android.widget.AdapterView
+import android.widget.ArrayAdapter
+import android.widget.Spinner
+import androidx.annotation.RequiresApi
import androidx.fragment.app.Fragment
+import com.example.hpostesting.data.DataHolder
+import com.example.hpostesting.data.model.patient.UserData
+import com.example.hpostesting.presentation.hemocube.HemocubeActivity
import `in`.sminnovations.hpostesting.databinding.FragmentAssuranceControlsBinding
+import java.time.Instant
class AssuranceControlsFragment: Fragment() {
private lateinit var binding: FragmentAssuranceControlsBinding
@@ -21,4 +32,97 @@ class AssuranceControlsFragment: Fragment() {
requireContext().getSharedPreferences("HEMOCUBE", Context.MODE_PRIVATE)
return binding.root
}
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ initViews()
+ }
+
+ private fun initViews() {
+// binding.btnSubmit.visibility = View.GONE
+
+ val solutionSpinner: Spinner = binding.spinnerSolutions
+ val solutionOptions = arrayOf("Select solution", "KMnO4", "Tartrazine", "AR", "HB", "Blood")
+ val solutionAdapter = ArrayAdapter(requireContext(), R.layout.simple_spinner_item, solutionOptions)
+ solutionAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
+ solutionSpinner.adapter = solutionAdapter
+ solutionSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
+ override fun onItemSelected(
+ parent: AdapterView<*>?,
+ view: View?,
+ position: Int,
+ id: Long
+ ) {
+ val selectedValue: String = solutionOptions[position]
+ if (!selectedValue.equals("Select solution")) {
+ DataHolder.hemoCubeTestData!!.solution = selectedValue
+ }
+ }
+
+ override fun onNothingSelected(parent: AdapterView<*>?) {
+ }
+ }
+
+ val concentrationSpinner: Spinner = binding.spinnerConcentration
+ val concentrationOptions = arrayOf("Select concentration", "250umol", "350umol", "450umol", "550umol", "650umol")
+ val concentrationAdapter = ArrayAdapter(requireContext(), R.layout.simple_spinner_item, concentrationOptions)
+ concentrationAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
+ concentrationSpinner.adapter = concentrationAdapter
+ concentrationSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
+ override fun onItemSelected(
+ parent: AdapterView<*>?,
+ view: View?,
+ position: Int,
+ id: Long
+ ) {
+ val selectedValue: String = concentrationOptions[position]
+ if (!selectedValue.equals("Select concentration")) {
+ DataHolder.hemoCubeTestData!!.concentration = selectedValue
+ }
+ }
+
+ override fun onNothingSelected(parent: AdapterView<*>?) {
+ }
+ }
+
+ val volumeSpinner: Spinner = binding.spinnerVolume
+ val volumeOptions = arrayOf("Select volume", "1uml", "2uml", "4uml", "4.5uml", "5uml")
+ val volumeAdapter = ArrayAdapter(requireContext(), R.layout.simple_spinner_item, volumeOptions)
+ volumeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
+ volumeSpinner.adapter = volumeAdapter
+ volumeSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
+ override fun onItemSelected(
+ parent: AdapterView<*>?,
+ view: View?,
+ position: Int,
+ id: Long
+ ) {
+ val selectedValue: String = volumeOptions[position]
+ if (!selectedValue.equals("Select volume")) {
+ DataHolder.hemoCubeTestData!!.volume = selectedValue
+ }
+ }
+
+ override fun onNothingSelected(parent: AdapterView<*>?) {
+ }
+ }
+
+ binding.btnSubmit.setOnClickListener {
+ DataHolder.hemoCubeTestData!!.quickCapture = true
+ val currentUnixTime = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ Instant.now().epochSecond
+ } else {
+ ""
+ }
+ DataHolder.hemoCubeTestData!!._id = currentUnixTime.toString() + "SMI"
+ DataHolder.hemoCubeTestData!!.name = "${DataHolder.hemoCubeTestData!!.solution} ${DataHolder.hemoCubeTestData!!.concentration} ${DataHolder.hemoCubeTestData!!.volume}"
+
+ DataHolder.selectedTest = UserData()
+ DataHolder.selectedTest?._id = DataHolder.hemoCubeTestData!!._id
+ DataHolder.selectedTest?.name = DataHolder.hemoCubeTestData!!.name
+
+ val i = Intent(requireContext(), HemocubeActivity::class.java)
+ startActivity(i)
+ }
+ }
}
\ No newline at end of file
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 3793c62..231fb0e 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
@@ -28,6 +28,7 @@ import com.example.hpostesting.data.model.updates.DeviceUpdateRequest
import com.example.hpostesting.presentation.KitScanActivity
import com.example.hpostesting.presentation.adapter.OfflineUserListAdapter
import com.example.hpostesting.presentation.adapter.UserListAdapter
+import com.example.hpostesting.presentation.assurance.AssuranceControlsActivity
import com.example.hpostesting.presentation.hemocube.HemoCubeViewModel
import com.example.hpostesting.presentation.testRight.TestRightViewModel
import com.firebase.ui.firestore.FirestoreRecyclerOptions
@@ -72,6 +73,7 @@ class HomeFragment : Fragment() {
sharedPreference = requireContext().getSharedPreferences("HEMOCUBE", Context.MODE_PRIVATE)
DataHolder.selectedTest = null
+ DataHolder.hemoCubeTestData = HemoCubeTestData()
return binding.root
}
@@ -138,6 +140,12 @@ class HomeFragment : Fragment() {
startActivity(Intent(requireContext(), KitScanActivity::class.java))
requireActivity().finish()
}
+ binding.btnQuickCapture.setOnClickListener {
+ val i = Intent(
+ requireContext().applicationContext, AssuranceControlsActivity::class.java
+ )
+ startActivity(i)
+ }
}
private fun checkForTokenAndUpdate() {
diff --git a/app/src/main/res/drawable/flask.png b/app/src/main/res/drawable/flask.png
new file mode 100644
index 0000000..22cd4b5
Binary files /dev/null and b/app/src/main/res/drawable/flask.png differ
diff --git a/app/src/main/res/drawable/spinner_border.xml b/app/src/main/res/drawable/spinner_border.xml
new file mode 100644
index 0000000..3d3e511
--- /dev/null
+++ b/app/src/main/res/drawable/spinner_border.xml
@@ -0,0 +1,10 @@
+
+
+ -
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_assurance_controls.xml b/app/src/main/res/layout/fragment_assurance_controls.xml
index dcde211..279c80e 100644
--- a/app/src/main/res/layout/fragment_assurance_controls.xml
+++ b/app/src/main/res/layout/fragment_assurance_controls.xml
@@ -20,29 +20,64 @@
app:layout_constraintTop_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent" />
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+