Fixed Navigation, Location, and updated user card and gitignore file

This commit is contained in:
mohamedkaif356
2023-08-07 15:02:16 +05:30
parent e5390df0f4
commit 85d9c6306d
7 changed files with 112 additions and 122 deletions

8
.gitignore vendored
View File

@@ -1,13 +1,7 @@
*.iml *.iml
.gradle .gradle
/local.properties /local.properties
/.idea/misc.xml /.idea
/.idea/caches
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
/.idea/navEditor.xml
/.idea/assetWizardSettings.xml
.DS_Store .DS_Store
/build /build
/captures /captures

2
.idea/gradle.xml generated
View File

@@ -7,7 +7,7 @@
<option name="testRunner" value="GRADLE" /> <option name="testRunner" value="GRADLE" />
<option name="distributionType" value="DEFAULT_WRAPPED" /> <option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" /> <option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="Embedded JDK" /> <option name="gradleJvm" value="jbr-17" />
<option name="modules"> <option name="modules">
<set> <set>
<option value="$PROJECT_DIR$" /> <option value="$PROJECT_DIR$" />

View File

@@ -56,6 +56,8 @@ class MainActivity : AppCompatActivity() {
locationResult.lastLocation?.let { location -> locationResult.lastLocation?.let { location ->
DataHolder.location = DataHolder.location =
UserData.Location(location.latitude, location.longitude) UserData.Location(location.latitude, location.longitude)
DataHolder.selectedTest?.location =
UserData.Location(location.latitude, location.longitude)
Log.i("Location", DataHolder.location.toString()) Log.i("Location", DataHolder.location.toString())
} }
} }

View File

@@ -10,7 +10,6 @@ import android.view.ViewGroup
import android.widget.Toast import android.widget.Toast
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels import androidx.fragment.app.activityViewModels
import androidx.navigation.fragment.findNavController
import com.example.hpostesting.data.DataHolder import com.example.hpostesting.data.DataHolder
import com.example.hpostesting.data.constant.Constants import com.example.hpostesting.data.constant.Constants
import com.example.hpostesting.data.constant.HemoCubeCommands import com.example.hpostesting.data.constant.HemoCubeCommands
@@ -18,6 +17,7 @@ import com.example.hpostesting.data.model.patient.DeviceData
import com.example.hpostesting.data.model.patient.toHemoCubeTestData import com.example.hpostesting.data.model.patient.toHemoCubeTestData
import com.example.hpostesting.presentation.KitScanActivity import com.example.hpostesting.presentation.KitScanActivity
import com.example.hpostesting.presentation.UsbServiceListener import com.example.hpostesting.presentation.UsbServiceListener
import com.example.hpostesting.presentation.dashboard.DashboardActivity
import com.example.hpostesting.presentation.utils.MyDialogListener import com.example.hpostesting.presentation.utils.MyDialogListener
import com.example.hpostesting.presentation.utils.UIUtils import com.example.hpostesting.presentation.utils.UIUtils
import `in`.sminnovations.hpostesting.R import `in`.sminnovations.hpostesting.R
@@ -61,12 +61,14 @@ class HemoCubeFragment : Fragment() {
Toast.makeText( Toast.makeText(
requireContext(), "Test Results Uploaded Successfully", Toast.LENGTH_SHORT requireContext(), "Test Results Uploaded Successfully", Toast.LENGTH_SHORT
).show() ).show()
findNavController().navigate(R.id.action_hemocubeFragment_to_homeFragment) startActivity(Intent(requireActivity(), DashboardActivity::class.java))
} }
binding.progressBar.visibility = View.GONE binding.progressBar.visibility = View.GONE
} }
hemoCubeViewModel.getDeviceData(sharedPreference.getString(Constants.USER_ID, "").toString()) hemoCubeViewModel.getDeviceData(
sharedPreference.getString(Constants.USER_ID, "").toString()
)
hemoCubeViewModel.deviceData.observe(viewLifecycleOwner) { hemoCubeViewModel.deviceData.observe(viewLifecycleOwner) {
deviceData = it deviceData = it
@@ -99,8 +101,7 @@ class HemoCubeFragment : Fragment() {
listenToHemoCube() listenToHemoCube()
startSample() startSample()
} }
} })
)
} else { } else {
listenToHemoCube() listenToHemoCube()
startBuffer() startBuffer()
@@ -108,8 +109,10 @@ class HemoCubeFragment : Fragment() {
} }
private fun checkBufferValue(): Boolean { private fun checkBufferValue(): Boolean {
return if (sharedPreference.getString(Constants.BUFFER_VALUE_1, "") != "" return if (sharedPreference.getString(
&& sharedPreference.getString(Constants.BUFFER_VALUE_2, "") != "" Constants.BUFFER_VALUE_1,
""
) != "" && sharedPreference.getString(Constants.BUFFER_VALUE_2, "") != ""
) { ) {
sharedPreference.getString(Constants.BUFFER_VALUE_1, "") sharedPreference.getString(Constants.BUFFER_VALUE_1, "")
?.toDouble()!! > 0.0 && sharedPreference.getString(Constants.BUFFER_VALUE_2, "") ?.toDouble()!! > 0.0 && sharedPreference.getString(Constants.BUFFER_VALUE_2, "")
@@ -176,8 +179,7 @@ class HemoCubeFragment : Fragment() {
listenToHemoCube() listenToHemoCube()
startBuffer() startBuffer()
} }
} })
)
} }
if (stringData.contains("ERROR 501")) { if (stringData.contains("ERROR 501")) {
@@ -195,8 +197,7 @@ class HemoCubeFragment : Fragment() {
listenToHemoCube() listenToHemoCube()
startSample() startSample()
} }
} })
)
} }
@@ -217,8 +218,7 @@ class HemoCubeFragment : Fragment() {
listenToHemoCube() listenToHemoCube()
startSample() startSample()
} }
} })
)
} }
} }
@@ -233,11 +233,11 @@ class HemoCubeFragment : Fragment() {
if (stringData.contains("RESULT") || resultData.contains("REND")) { if (stringData.contains("RESULT") || resultData.contains("REND")) {
// DEVICE RESPONSE FORMAT: RESULT SN <DEVICE_SERIAL_NUMBER> <GREEN_BUFFER_INTENSITY> <BLUE_BUFFER_INTENSITY> <GREEN_SAMPLE_INTENSITY> <BLUE_SAMPLE_INTENSITY> REND // DEVICE RESPONSE FORMAT: RESULT SN <DEVICE_SERIAL_NUMBER> <GREEN_BUFFER_INTENSITY> <BLUE_BUFFER_INTENSITY> <GREEN_SAMPLE_INTENSITY> <BLUE_SAMPLE_INTENSITY> REND
// // For example, "RESULT SN 18291 1937.23 2828.11 28211.20 121829.12 REND" // // For example, "RESULT SN 18291 1937.23 2828.11 28211.20 121829.12 REND"
var validString = "" var validString: String
var results: List<String> val results: List<String>
if (stringData.contains("RESULT")) { if (stringData.contains("RESULT")) {
validString = isValidResult(stringData) validString = isValidResult(stringData)
if (validString.isNullOrEmpty()) { if (validString.isEmpty()) {
results = resultData.split("\n") results = resultData.split("\n")
validString = parseResult(results) validString = parseResult(results)
} }
@@ -246,7 +246,8 @@ class HemoCubeFragment : Fragment() {
validString = parseResult(results) validString = parseResult(results)
} }
if (!validString.isNullOrEmpty()) {
if (validString.isNotEmpty()) {
val result = validString.split(" ") val result = validString.split(" ")
if (result.size == 8) { if (result.size == 8) {
val deviceSerialNo = result[2] val deviceSerialNo = result[2]
@@ -258,15 +259,21 @@ class HemoCubeFragment : Fragment() {
val led2Average = log10(led2Buffer?.div(led2Sample!!) ?: 0.0) val led2Average = log10(led2Buffer?.div(led2Sample!!) ?: 0.0)
val deviceRatio = led1Average / led2Average val deviceRatio = led1Average / led2Average
DataHolder.hemoCubeTestData?.deviceSerialNumber = deviceSerialNo DataHolder.hemoCubeTestData?.deviceSerialNumber = deviceSerialNo
val kitCount = sharedPreference.getInt(Constants.KIT_COUNT, 0)?.toInt() val kitCount = sharedPreference.getInt(Constants.KIT_COUNT, 0)
if (kitCount != null && kitCount < 35 && sharedPreference.getString(Constants.BUFFER_VALUE_1, "").isNullOrEmpty()) if (kitCount < 35 && sharedPreference.getString(
DataHolder.hemoCubeTestData?.led1Buffer = led1Buffer Constants.BUFFER_VALUE_1, ""
else ).isNullOrEmpty()
DataHolder.hemoCubeTestData?.led1Buffer = sharedPreference.getString(Constants.BUFFER_VALUE_1, "")?.toDoubleOrNull() ) DataHolder.hemoCubeTestData?.led1Buffer = led1Buffer
if (kitCount != null && kitCount < 35 && sharedPreference.getString(Constants.BUFFER_VALUE_2, "").isNullOrEmpty()) else DataHolder.hemoCubeTestData?.led1Buffer =
DataHolder.hemoCubeTestData?.led2Buffer = led2Buffer sharedPreference.getString(Constants.BUFFER_VALUE_1, "")
else ?.toDoubleOrNull()
DataHolder.hemoCubeTestData?.led2Buffer = sharedPreference.getString(Constants.BUFFER_VALUE_2, "")?.toDoubleOrNull() if (kitCount < 35 && sharedPreference.getString(
Constants.BUFFER_VALUE_2, ""
).isNullOrEmpty()
) DataHolder.hemoCubeTestData?.led2Buffer = led2Buffer
else DataHolder.hemoCubeTestData?.led2Buffer =
sharedPreference.getString(Constants.BUFFER_VALUE_2, "")
?.toDoubleOrNull()
DataHolder.hemoCubeTestData?.led1Sample = led1Sample DataHolder.hemoCubeTestData?.led1Sample = led1Sample
DataHolder.hemoCubeTestData?.led2Sample = led2Sample DataHolder.hemoCubeTestData?.led2Sample = led2Sample
DataHolder.hemoCubeTestData?.led1Average = led1Average DataHolder.hemoCubeTestData?.led1Average = led1Average
@@ -276,7 +283,7 @@ class HemoCubeFragment : Fragment() {
calculateRatio(deviceRatio) calculateRatio(deviceRatio)
DataHolder.hemoCubeTestData?.resultData = resultData DataHolder.hemoCubeTestData?.resultData = resultData
resultRatio = deviceRatio?.toString() resultRatio = deviceRatio.toString()
if (!checkBufferValue()) { if (!checkBufferValue()) {
with(sharedPreference.edit()) { with(sharedPreference.edit()) {
putString(Constants.BUFFER_VALUE_1, led1Buffer.toString()) putString(Constants.BUFFER_VALUE_1, led1Buffer.toString())
@@ -317,7 +324,6 @@ class HemoCubeFragment : Fragment() {
} }
} }
} }
hemoCubeViewModel.progressBar.postValue(false)
} }
} }
} }
@@ -331,41 +337,39 @@ class HemoCubeFragment : Fragment() {
private fun startBuffer() { private fun startBuffer() {
hemoCubeViewModel.progressBar.postValue(true) hemoCubeViewModel.progressBar.postValue(true)
(activity as HemocubeActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.startBuffer, (activity as HemocubeActivity).mService.sendAndListenToHemoCube(
HemoCubeCommands.startBuffer,
object : UsbServiceListener { object : UsbServiceListener {
override fun onUsbRead(data: ByteArray?) {} override fun onUsbRead(data: ByteArray?) {}
override fun onUsbError(e: Exception?) { override fun onUsbError(e: Exception?) {
hemoCubeViewModel.progressBar.postValue(false) hemoCubeViewModel.progressBar.postValue(false)
} }
} })
)
} }
private fun startSample() { private fun startSample() {
hemoCubeViewModel.progressBar.postValue(true) hemoCubeViewModel.progressBar.postValue(true)
val fullReadOutput = StringBuilder() (activity as HemocubeActivity).mService.sendAndListenToHemoCube(
HemoCubeCommands.startSample,
(activity as HemocubeActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.startSample,
object : UsbServiceListener { object : UsbServiceListener {
override fun onUsbRead(data: ByteArray?) {} override fun onUsbRead(data: ByteArray?) {}
override fun onUsbError(e: Exception?) { override fun onUsbError(e: Exception?) {
hemoCubeViewModel.progressBar.postValue(false) hemoCubeViewModel.progressBar.postValue(false)
} }
} })
)
} }
private fun getResult() { private fun getResult() {
hemoCubeViewModel.progressBar.postValue(true) hemoCubeViewModel.progressBar.postValue(true)
(activity as HemocubeActivity).mService.sendAndListenToHemoCube(HemoCubeCommands.getSample, (activity as HemocubeActivity).mService.sendAndListenToHemoCube(
HemoCubeCommands.getSample,
object : UsbServiceListener { object : UsbServiceListener {
override fun onUsbRead(data: ByteArray?) {} override fun onUsbRead(data: ByteArray?) {}
override fun onUsbError(e: Exception?) { override fun onUsbError(e: Exception?) {
hemoCubeViewModel.progressBar.postValue(false) hemoCubeViewModel.progressBar.postValue(false)
} }
} })
)
} }
private fun calculateRatio(ratio: Double): Double { private fun calculateRatio(ratio: Double): Double {
@@ -377,8 +381,7 @@ class HemoCubeFragment : Fragment() {
private fun parseResult(frames: List<String>): String { private fun parseResult(frames: List<String>): String {
val lines = mutableListOf<String>() val lines = mutableListOf<String>()
for (frame in frames.reversed()) { for (frame in frames.reversed()) {
if (frame.contains("REND") || frame.contains("RESULT")) if (frame.contains("REND") || frame.contains("RESULT")) lines += frame
lines += frame
if (frame.contains("RESULT")) { if (frame.contains("RESULT")) {
break break
} }

View File

@@ -70,7 +70,6 @@
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/internetAvailableCL" android:id="@+id/internetAvailableCL"
android:layout_width="match_parent" android:layout_width="match_parent"

View File

@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
xmlns:app="http://schemas.android.com/apk/res-auto">
<androidx.cardview.widget.CardView <androidx.cardview.widget.CardView
android:id="@+id/userCard" android:id="@+id/userCard"
@@ -24,52 +24,57 @@
android:id="@+id/userImage" android:id="@+id/userImage"
android:layout_width="100dp" android:layout_width="100dp"
android:layout_height="100dp" android:layout_height="100dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent"
tools:src="@drawable/ic_launcher_foreground" />
<TextView <TextView
android:id="@+id/userName" android:id="@+id/userName"
style="@style/title1_1"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/poppins_bold" android:layout_marginStart="16dp"
android:layout_marginTop="16dp" android:gravity="start"
android:gravity="center"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="16sp" android:textSize="16sp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toEndOf="@+id/userImage"
app:layout_constraintTop_toBottomOf="@id/userImage" /> app:layout_constraintTop_toTopOf="@+id/userImage"
tools:text="Name: MohamedKaif" />
<TextView <TextView
android:id="@+id/userId" android:id="@+id/userId"
style="@style/title1_1"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/poppins_bold" android:layout_marginStart="16dp"
android:layout_marginTop="16dp" android:layout_marginTop="8dp"
android:gravity="center" android:gravity="start"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="16sp" android:textSize="16sp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toEndOf="@+id/userImage"
app:layout_constraintTop_toBottomOf="@id/userName" /> app:layout_constraintTop_toBottomOf="@id/userName"
tools:text="UserID: MohamedKaif" />
<TextView <TextView
android:id="@+id/teststatus" android:id="@+id/teststatus"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/poppins_bold" style="@style/title1_1"
android:layout_marginTop="16dp" android:layout_marginTop="8dp"
android:gravity="center" android:layout_marginStart="16dp"
android:gravity="start"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="16sp" android:textSize="16sp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toEndOf="@+id/userImage"
app:layout_constraintTop_toBottomOf="@id/userId" /> app:layout_constraintTop_toBottomOf="@id/userId"
tools:text="Test Status: Completed"/>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView> </androidx.cardview.widget.CardView>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -47,18 +47,5 @@
app:popUpTo="@id/mobile_navigation" app:popUpTo="@id/mobile_navigation"
app:popUpToInclusive="true"/> app:popUpToInclusive="true"/>
</fragment> </fragment>
<fragment
android:id="@+id/hemocubeFragment"
android:name="com.example.hpostesting.presentation.hemocube.HemoCubeFragment"
android:label="fragment_hemocube"
tools:layout="@layout/fragment_hemo_cube_reference" >
<action
android:id="@+id/action_hemocubeFragment_to_homeFragment"
app:destination="@id/nav_home"
app:popUpTo="@id/mobile_navigation"
app:popUpToInclusive="true"/>
</fragment>
</navigation> </navigation>